我想定义一个新命令,该命令接受一个必需参数,但不是像平常一样使用传递该参数{...}
,而是像命令一样使用不同的参数描述\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
如果您需要它来做“逐字”的事情,那么定义必须更加复杂。