PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Wrapper über newenvironment oder newcommand



Mat
15-04-2014, 22:21
Hallo,

ich versuche vergeblich in Latex (pdflatex) einen wrapper für z.B. listings zu setzen. Siehe minimalbeispiel was nicht kompiliert.

Was ich gerne hätte wäre ein command mit 2 argumenten in das ich einfach den inhalt reinsetze. Ziel wäre es 2 Listings untereinander zu haben wo ich in der wrapper-umgebung nur die 2 inhalte angeben muss.

Danke euch



\documentclass[12pt]{article}
\usepackage{listings}

\newenvironment{wrapper}[2]{\begin{lstlisting}#1\end{lstlisting}#2}{}

\begin{document}

test

\begin{wrapper}{aaa}{bbbb}\end{wrapper}

\end{document

cgnieder
15-04-2014, 23:35
Sowas funktioniert nie für Umgebungen und Befehle, die Kategorie-Codes ändern. Also vor allem nicht mit Verbatim-Umgebungen wie lstlisting. Das liegt daran, dass sich die Kategoriecodes von Tokens nicht mehr ändern lassen, nachdem sie als Argument gelesen wurden.

Hier würde sich vielleicht anbieten, listings' \lstnewenvironment zu verwenden:


\documentclass[12pt]{article}
\usepackage{listings}

\lstnewenvironment{wrapper}[1]{}{#1}

\begin{document}

test

\begin{wrapper}{bbbb}
&%$aa
\end{wrapper}

\end{document}

Grüße