在 longtable 中拆分代码列表

在 longtable 中拆分代码列表

有没有办法将代码列表拆分到多个页面中,当它们包含在 longtable 中时?例如,以下代码:

\documentclass{article}

\usepackage{listings}
\usepackage{longtable}

\begin{document}
\begin{longtable}{ll}
\textbf{Language} & \textbf{Code}\\\hline
C++ & 
\begin{lstlisting}[language=C++]
int a0;
int a1;
int a2;
int a3;
int a4;
int a5;
int a6;
int a7;
int a8;
int a9;
int a0;
int a1;
int a2;
int a3;
int a4;
int a5;
int a6;
int a7;
int a8;
int a9;
int a0;
int a1;
int a2;
int a3;
int a4;
int a5;
int a6;
int a7;
int a8;
int a9;
int a0;
int a1;
int a2;
int a3;
int a4;
int a5;
int a6;
int a7;
int a8;
int a9;
int a0;
int a1;
int a2;
int a3;
int a4;
int a5;
int a6;
int a7;
int a8;
int a9;
\end{lstlisting}
\end{longtable}
\end{document}

第一页大部分空白。当然,listings 可以将代码拆分到多个页面,longtable 也可以拆分到多个页面。这是两者结合的情况。

答案1

在此处输入图片描述

\documentclass{article}

\usepackage{listings}

\newenvironment{codes}
      {\list{}{\labelwidth0pt
       \leftmargin2cm
        \itemindent-\leftmargin
       \renewcommand\makelabel[1]{%
            \makebox[0pt][r]{\textbf{##1} }}}}
               {\endlist}

\begin{document}

\begin{codes}

\item[C++]
\begin{lstlisting}[language=C++]
int a0;
int a1;
int a2;
int a3;
int a4;
int a5;
int a6;
int a7;
int a8;
int a9;
int a0;
int a1;
int a2;
int a3;
int a4;
int a5;
int a6;
int a7;
int a8;
int a9;
int a0;
int a1;
int a2;
int a3;
int a4;
int a5;
int a6;
int a7;
int a8;
int a9;
int a0;
int a1;
int a2;
int a3;
int a4;
int a5;
int a6;
int a7;
int a8;
int a9;
int a0;
int a1;
int a2;
int a3;
int a4;
int a5;
int a6;
int a7;
int a8;
int a9;
\end{lstlisting}
\end{codes}
\end{document}

相关内容