多列行内的多行列表

多列行内的多行列表

我在将列表(使用包)放入表格中时遇到问题lstlisting。问题是我想将多行列出一行,占据两列。

以下最小示例显示了我想要实现的目标。但是,multicolumn列表会换行到一行。

\documentclass{article}
\usepackage{listings}
\lstset{basicstyle=\ttfamily}
\begin{document}

\begin{table}[h]
\begin{center}
\begin{tabular}{ |l|l| }
\hline
\multicolumn{2}{|l|}{
  \begin{lstlisting}^^J
    1st line
    2nd line
  ^^J\end{lstlisting}
} \\ \hline
some text & some text \\ \hline
\end{tabular}
\end{center}
\end{table}

\end{document}

我试图将列表包装在vbox或中minipage,但没有帮助。

有没有其他替代方案multicolumn,或者其他方法可以在这样的表格中获取多行列表?

答案1

l列就像\mbox和是用于单行材料,通常你只需要在你的中更改l为,但是列表像大多数逐字的东西一样不能在另一个命令的参数中,所以需要采取一些措施来避免把它放在参数中。p{5cm}\multicolumn\multicolumn

我还将其改为begin{center}避免\centering多余的空白,并将其改为[h][h]请将所有浮点数带到文档末尾,这通常不是所需的行为。

在此处输入图片描述

\documentclass{article}
\usepackage{listings}
\lstset{basicstyle=\ttfamily}
\begin{document}

\begin{table}[htbp]
\centering
\begin{tabular}{ |l|l| }
\hline
\multicolumn{2}{|}{}
  \begin{minipage}{5cm}
  \begin{lstlisting}
    1st line
    2nd line
  \end{lstlisting}
  \end{minipage}\hfill\vline\kern-\arrayrulewidth
 \\ \hline
some text & some text \\ \hline
\end{tabular}

\end{table}

\end{document}

答案2

\documentclass{article}
\usepackage{listings,array,varwidth}
\lstset{basicstyle=\ttfamily}
\begin{document}

\begin{table}[htbp]
\centering
\begin{tabular}{ |l|l| } \hline
\multicolumn{2}{|}{}
  \varwidth{\linewidth}
  \begin{lstlisting}
    1st line
    2nd line
  \end{lstlisting}
  \endvarwidth\hfill\vline
 \\ \hline
some text & some text \\ \hline
\end{tabular}

\end{table}

\end{document}

在此处输入图片描述

相关内容