我正在比较一篇论文中的源代码,我想把它们放在一个表格中,这样就能很容易地发现差异。我使用了以下 LaTeX 代码:
\begin{tabular}{ | l | l | l |}
Option 1 & Option 2 & Option 3 \\
\begin{lstlisting}
Code A
\end{lstlisting} &
\begin{lstlisting}
Code B
\end{lstlisting} &
\begin{lstlisting}
Code C
\end{lstlisting} \\
\end{tabular}
编译后,这会变得一团糟,所以这就是为什么我想知道我可以做些什么来改善结果。
答案1
除了 David 在回答中所说的内容之外,您还需要进行设置,breaklines=true
否则如果您的队伍很长,整个事情可能会变得一团糟。
例如,以下 MWE(设置了该选项)
\documentclass{article}
\usepackage{listings}
\lstset{
language=C,
basicstyle=\small,
breaklines=true
}
\begin{document}
\noindent
\begin{tabular}{|p{3.6cm}|p{3.6cm}|p{3.6cm}|}
Option 1 & Option 2 & Option 3 \\
\begin{lstlisting}
#include <stdio.h>
int main()
{
printf("Hello world\n");
}
\end{lstlisting}&
\begin{lstlisting}
#include <stdio.h>
int main()
{
printf("Hello world\n");
}
\end{lstlisting}&
\begin{lstlisting}
#include <stdio.h>
int main()
{
printf("Hello world\n");
}
\end{lstlisting}
\end{tabular}
\end{document}
产量
而如果没有这个选项,输出是
答案2
l
是设置为其自然宽度的单行单元格。您希望每个单元格都是 parbox,因此请使用
p{5cm}
或其他合适的长度,然后单元格可以包含显示材料(例如列表)。