我在将列表(使用包)放入表格中时遇到问题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}