# How do define a command that takes parameters like \verb?


If you do not want catcode sanitization:

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


and then use it as follows.

\myverb|test|

\myverb+test+

\myverb!test!


It mostly depends on what you want to do. If all you need is to use the argument "as is", then

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


will do. This doesn't check whether \mycmd is defined; if you need the check, then use

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


If you need this to do "verbatim" things, the definition must be quite more complicated.

• what about defining a command whose argument can be placed between a pair of arbitrary symbols? How is \verb defined so that \verb|spleen|, \verb+spleen+`, etc. work? – Ian Thompson Jun 29 '11 at 23:39