提问于:
浏览数:
1370
## 编译环境
操作系统
* [ ] Windows 7/8/10
* [x ] macOS
* [ ] Linux
`若需勾选,请把[ ]改成[x]`
Tex发行版
* [x ] TexLive `2020`
* [ ] MikTeX `版本号`
* [ ] CTeX
`若需勾选,请把[ ]改成[x]`
## 我的问题
由于在写一个文档,需要在一个盒子内抄录代码,且由于需要用的这种模式比较多,所以希望自定义一个命令,但是这个命令通不过目前尝试了3 种办法, 一种是用 `savebox` 和` usebox` 来实现,但是定义起来比较麻烦,另一种我希望把整个`\verb|` 作为一个变量 `#1` 放入 `\newcommand` 中,但是也不行,大概率是 `verb` 里面的内容没法作为变量放入。第三种是看到工作室定义了一个新的环境,但是定义的这个新的环境在我的文档中加入不了。
![](https://wenda.latexstudio.net/data/attach/210104/3Twd0hOh.png)
总的就是希望能够定义一个新的命令能够输入内容可以直接实现放入 `fbox` 的代码抄录。谢谢!
```markdown
\documentclass[UTF8]{ctexart}
\usepackage{cprotect}
\usepackage{shortvrb}
\MakeShortVerb|
%\newcommand{\mcodebox}[1]{
% \noindent
% \cprotect \fbox{#1}
%}
\def\gobble#1{}
\def\cs#1{\expandafter\gobble\string\\#1}
\makeatletter
\newenvironment{desc}
{\if@nobreak
\vskip-\lastskip
\vspace*{-2.5ex}%
\fi
\decl}
{\enddecl}
\makeatother
\begin{document}
\noindent \cprotect \fbox{|\setlength|}
%\mcodebox{|\setlength|}
%
%\begin{desc}
% \setlength
%\end{desc}
\end{document}
```
1 回答
0
提供一个基于 `minted` 宏包的方法(`texdoc minted`)
```tex
\documentclass{article}
\usepackage{minted}
\catcode`\|=12
\gdef\pgfmanualnormalbar{|}
\catcode`\|=13
\def\mintinlineprefix{\mintinline{tex}|}
\AtBeginDocument{\gdef|{\ifmmode\pgfmanualnormalbar\else\expandafter\mintinlineprefix\fi}}
\def\cl#1{\fbox{|#1|}}
\begin{document}
\cl{1}
|\alpha + some|
$|\alpha + some|$
\end{document}
```
你的回答
请登录后回答
你的回答将会帮助更多人,请务必认真回答问题。