In this particular case the problem is a typical one: You can't pass verbatim
content as an argument to another macro. This is indeed the case with using environ
, since content is accumulated in the macro \BODY
for processing later.
From the looks of your minimal example, it seems like you're after printing verbatim
content using a specific colour (say red). For this I'd suggest defining a new verbatim environment with this specific quality/attribute. As such, fancyvrb
can come in handy. Here's a MWE that illustrates this concept (taken, virtually verbatim, from the fancyvrb
documentation (section 4.1.3 Customization of formatting, p 5 and 4.2.4 Personalized environments, p 18)):

\documentclass{article}
\usepackage{fancyvrb,xcolor}% http://ctan.org/pkg/{fancyvrb,xcolor}
\DefineVerbatimEnvironment%
{MyVerbatim}{Verbatim}
{formatcom=\color{red}}
\begin{document}
\begin{MyVerbatim}
First verbatim line.
Second verbatim line.
\end{MyVerbatim}
\end{document}
verbatim
content as a macro argument, which requires special treatment. Perhaps you could elaborate on what you're after really. – Werner Apr 23 '13 at 19:12listings
:\lstnewenvironment{vred}{<something before the verbatim part>}{<something after>}
. This command also allows to add arguments the same way\newenvironment
does. – cgnieder Apr 23 '13 at 21:04