这是一个最小工作示例(MWE):
\documentclass{scrartcl}
\usepackage{listings}
\begin{document}
\noindent\minipage[t]{0.45\linewidth}
\lstlisting
foo
\endlstlisting
\endminipage \qquad \minipage[t]{0.45\linewidth}
\lstlisting
bar
\endlstlisting
\endminipage
\end{document}
由于我经常使用这种模式(左边的代码转换为右边的代码),所以像一个优秀的程序员一样,我将其封装在一个宏中:
\newcommand{\twocol}[2]{
\noindent\minipage[t]{0.45\linewidth}
#1
\endminipage \qquad \minipage[t]{0.45\linewidth}
#2
\endminipage
}
然后在我的文档中尝试一下:
\twocol{
\lstlisting
foo
\endlstlisting
}{
\lstlisting
bar
\endlstlisting
} %% line 33, see below
此时 LaTeX 就会不高兴:
! Missing number, treated as zero.
<to be read again>
\let
l.33 }
第 33 行是 的结束括号twocol
。这只是一个简单的文本替换(我复制粘贴了列表命令),那么出了什么问题,我该如何修复它?
注意:\begin{} ... \end{}
到处使用表格并没有帮助。
答案1
那么按照如下方式逐一构建它怎么样:
\documentclass{scrartcl}
\usepackage{listings}
\newenvironment{twocol}{\noindent\minipage[t]{0.45\linewidth}}{\endminipage}
\newcommand{\twcbr}{\endminipage\qquad\minipage[t]{0.45\linewidth}}
\begin{document}
\begin{twocol}
\lstlisting
foo
\endlstlisting
\twcbr
\lstlisting
bar
\endlstlisting
\end{twocol}
\end{document}