\recomm
본문과 제목이 구분된 상자를 인쇄하기 위해 다음 명령을 정의했습니다 .
\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}%
}
이것은 잘 작동하며 간단한 입력과 함께 사용하면 멋진 상자를 인쇄합니다.
\recomm{Title}{%
Some content in the first part
}{%
Some content in the second part
}
그러나 환경을 사용하여 코드 목록을 삽입하려고 하면 lstlisting
온갖 종류의 오류가 발생합니다.
\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 }
을 사용해 보았지만 \newenvironment
이는 두 개가 필요한 단일 환경(그림의 첫 번째와 두 번째 부분)에만 허용됩니다. 이 문제를 잘 해결하기 위해 권장되는 방법은 무엇입니까?
(나는 해당 패키지와 많은 종속성이 포함되지 않은 매우 불완전한 texlive 환경에서 작업해야 하기 때문에 tcolorbox를 피하고 싶습니다.)
최소한 작동하지 않는 예:
\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}