\recomm
Um eine Box mit einem separaten Textkörper und einem Titel auszudrucken, habe ich den folgenden Befehl definiert :
\newcommand{\recomm}[3]{
\vspace{0.5cm}
\noindent
\begin{tikzpicture}
\node [rectangle, inner sep=10pt] (box){%
\begin{minipage}{\dimexpr\linewidth-20pt-\pgflinewidth\relax}
#2
\end{minipage}
};
\node [rectangle, inner sep=10pt, fill=black!15, below right] (box2) at (box.south west){%
\begin{minipage}{\dimexpr\linewidth-20pt-\pgflinewidth\relax}
#3
\end{minipage}
};
\draw[draw=blue!75!black, very thick]
-- (box2.south west)
-- (box.north west)
-- (box.north east)
-- (box2.south east)
-- (box2.south west);
\node[above right, fill=blue!75!black, text=white, font=\bfseries] at (box.north west) {#1};
\end{tikzpicture}%
}
Dies funktioniert gut und druckt ein schönes Feld aus, wenn es mit einfachen Eingaben verwendet wird:
\recomm{Title}{%
Some content in the first part
}{%
Some content in the second part
}
Wenn ich jedoch versuche, mithilfe der Umgebung eine Codeliste einzufügen lstlisting
, werden mir alle möglichen Fehler angezeigt:
\recomm{Title}{%
Some content in the first part
}{%
Some content in the second part
\begin{lstlisting}
a=b
\end{lstlisting}
}
Argument of \lst@next has an extra }.
<inserted text>
\par
l.185 }
Ich habe versucht, zu verwenden \newenvironment
, aber das ermöglicht nur eine einzige Umgebung, wo ich zwei brauche (den ersten und zweiten Teil des Bildes). Was ist die empfohlene Methode, um dieses Problem gut zu lösen?
(Ich möchte tcolorbox vermeiden, da ich mit einer sehr unvollständigen Texlive-Umgebung arbeiten muss, in der dieses Paket und viele seiner Abhängigkeiten nicht enthalten sind.)
Minimales, nicht funktionierendes Beispiel:
\documentclass{article}
\usepackage{listings}
\usepackage{tikz}
\newcommand{\recomm}[2]{
\begin{tikzpicture}
\node [rectangle, inner sep=10pt] (box){%
\begin{minipage}{\dimexpr\linewidth-20pt-\pgflinewidth\relax}
#1
\end{minipage}
};
\node [rectangle, inner sep=10pt, fill=black!15, below right] (box2) at (box.south west){%
\begin{minipage}{\dimexpr\linewidth-20pt-\pgflinewidth\relax}
#2
\end{minipage}
};
}
\begin{document}
\recomm{%
Some content in the first part
}{%
Some content in the second part
\begin{lstlisting}
a=b
\end{lstlisting}
}
\end{document}