![命令中的 \verb 不起作用](https://linux22.com/image/465000/%E5%91%BD%E4%BB%A4%E4%B8%AD%E7%9A%84%20%5Cverb%20%E4%B8%8D%E8%B5%B7%E4%BD%9C%E7%94%A8.png)
我有一些选项可以排版带有注释的命令行选项
\verb|-interaction=nonstopmode -recorder -s prologues=2 -s outputtemplate="%j.mps"|
因为我在很多地方都需要(其实还有其他原因),所以我使用一个命令来代替:
\newcommand{\metapostOptions}{\verb|-interaction=nonstopmode -recorder -s prologues=2-s outputtemplate="%j.mps"|}
有一个原因,解释起来很复杂,这使得我无法像这样逃避百分比:\%
;事实上命令中的文本是生成的。
只有将其包含在 catcode 更改中,我才能定义该命令。
\catcode`\%=12
\newcommand{\metapostOptions}{\verb|-interaction=nonstopmode -recorder -s prologues=2-s outputtemplate="%j.mps"|}
\catcode`\%=14
我仍然不能使用,因为
(./test.out) (./test-1.cpt
! LaTeX Error: \verb ended by end of line.
我真的不明白发生了什么,也无法控制自己。
非常感谢您的帮助。
答案1
您可以定义自己的宏,以逐字逐句的方式读取替换文本并将其存储在\metapostOptions
:
\documentclass{article}
\NewDocumentCommand \newverbcontent { m v }
{\newcommand#1{\texttt{#2}}}
\newverbcontent\metapostOptions
|-interaction=nonstopmode -recorder -s prologues=2-s outputtemplate="%j.mps"|
\begin{document}
Use the following command line options: \metapostOptions.
\end{document}
答案2
您不能\verb
在命令的参数中使用它。
使用
\newcommand{\metapostOptions}{%
\textt{-interaction=nonstopmode -recorder -s prologues=2-s outputtemplate="\%j.mps"}}