# wrap listings package - Problem with verbatim argument

I would like to define a command that wraps a lstlisting environment in some other environments (esp. a minipage). I understand that working with verbatim arguments is a difficult task. I tried the xparse package which provides the argument type v, but code like

\DeclareDocumentCommand{\prog}{v}{\begin{lstlisting}#1\end{lstlisting}}


does not work. Can anybody give me advice on that?

Is it any easier if I use an environment instead of a command?

• The lstlisting environment cannot go in the argument of a command. It can go in a minipage without any problem. – egreg Mar 24 '13 at 17:33
• There isn't any way to circumvent this? Maybe I have to find out how lstlisting handles the "verbatim problem" and try to mimick it... – JF Meier Mar 24 '13 at 17:41
• No, there isn't. Moreover, when you put some tokens in the argument to a command you lose the line endings. – egreg Mar 24 '13 at 17:46

You can use lstlisting environment with minipage using \lstnewenvironment:
\lstnewenvironment{wrappedlisting}{\noindent\minipage{\linewidth}}{\endminipage}

\begin{wrappedlisting}