如何将源代码放入 LaTeX 表中?

如何将源代码放入 LaTeX 表中?

我正在比较一篇论文中的源代码,我想把它们放在一个表格中,这样就能很容易地发现差异。我使用了以下 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} 

产量

enter image description here

而如果没有这个选项,输出是

enter image description here

答案2

l是设置为其自然宽度的单行单元格。您希望每个单元格都是 parbox,因此请使用 p{5cm}或其他合适的长度,然后单元格可以包含显示材料(例如列表)。

相关内容