The following works:
\documentclass{article}
\usepackage{fancyvrb}
\usepackage{color}
\begin{document}
\begin{Verbatim}[commandchars=\\\{\}]
test\textcolor{red}{foo}test
\end{Verbatim}
\end{document}
but the following does not:
\documentclass{article}
\usepackage{fancyvrb}
\usepackage{color}
\begin{document}
\begin{Verbatim}[commandchars=&<>]
test&textcolor<red><foo>test
\end{Verbatim}
\end{document}
I get this error message:
ERROR: Argument of \textcolor has an extra }.
--- TeX said ---
<inserted text>
\par
l.7 test&textcolor<red><foo>test
--- HELP ---
From the .log file...
I've run across a `}' that doesn't seem to match anything.
For example, `\def\a#1{...}' and `\a}' would produce
this error. If you simply proceed now, the `\par' that
I've just inserted will cause me to report a runaway
argument that might be the root of the problem. But if
your `}' was spurious, just type `2' and it will go away.
I've tried all combinations of backslash-escaping the command chars but no luck. How can I use &
, <
, and >
as the command characters? (Or if it's not possible, why?)
Best Answer
The problem is that
\textcolor
expects an actual brace after it, not just a "group open" token: its definition is(here
#1
would be the possible "color model" allowed by the syntax). You can do with another command defined in terms of\textcolor
:This should work:
Not with
<>
, I'm afraid: these two characters can't be used as delimiters in fancyvrbcommandchars
(I've already been bitten by this "feature").