Go to the first, previous, next, last question, table of contents.

Why doesn't \verb work within...?

The LaTeX verbatim commands work by changing category codes. Knuth says of this sort of thing ``Some care is needed to get the timing right...'', since once the category code has been assigned to a character, it doesn't change. So \verb has to assume that it is getting the first look at its parameter text; if it isn't, TeX has already assigned category codes so that \verb doesn't have a chance. For example:

    \verb+\error+

will work (typesetting `\error'), but

    \newcommand{\unbrace}[1]{#1}
    \unbrace{\verb+\error+}

will not (it will attempt to execute \error). Other errors one may encounter are `\verb ended by end of line', or even `\verb illegal in command argument'.

This is why the LaTeX book insists that verbatim commands must not appear in the argument of any other command; they aren't just fragile, they're quite unusable in any command parameter, regardless of \protection.


Go to the first, previous, next, last question, table of contents.