如何定义带有 \verb 等参数的命令?

如何定义带有 \verb 等参数的命令?

我想定义一个新命令,该命令接受一个必需参数,但不是像平常一样使用传递该参数{...},而是像命令一样使用不同的参数描述\verb符(例如\mycmd|args|)。尝试使用正常\newcommand定义执行此操作似乎会表现得很奇怪。

答案1

如果你不想进行 catcode 清理:

\newcommand\myverb[1]%
    {\def\domyverb##1#1{ the argument was `##1'}%
     \domyverb}

然后按如下方式使用它。

\myverb|test|

\myverb+test+

\myverb!test!

答案2

这主要取决于你想做什么。如果你只需要“按原样”使用参数,那么

\def\mycmd|#1|{...#1...}

就可以了。这并不检查是否\mycmd已定义;如果您需要检查,请使用

\makeatletter
\@ifdefinable\mycmd{%
  \def\mycmd|#1|{...#1...}%
}
\makeatother

如果您需要它来做“逐字”的事情,那么定义必须更加复杂。

相关内容