我有一些lstlisting
块,我正在将它们排版为彩色文本框。其中一些块包含空行;其中一些块被手动拆分成跨页边界\tcbbreak
。我想用\tcbbreak
另一个发出命令的命令替换该命令\tcbbreak
,然后删除所有后续空行(更好的方法是删除所有仅由空格组成的后续行,但我可以预处理我的文件以确保所有仅由空格组成的行都是空的)。
\documentclass{article}
\usepackage{listings}
\lstset{escapeinside=!!}
\usepackage[breakable,listings]{tcolorbox}
\renewtcblisting{lstlisting}{breakable,listing only}
\begin{document}
\begin{lstlisting}
Lines of text
Inside a TColorBox
Burma Shave
\end{lstlisting}
\begin{lstlisting}
Lines of text
Inside a TColorBox !\tcbbreak!
Burma Shave
\end{lstlisting}
\end{document}
在有人提出显而易见的建议(“放入时只需从源中删除空文件\tcbbreak
”)之前,对于我的实际用例,我需要对分页输出(其中应该有换行符并且应该吞噬后续的空行)和非分页输出(其中不应该有换行符并且空行应该保持完整)使用相同的源。