跨两列的多页表格

跨两列的多页表格

我可以使用 table* 以双列模式在两列上创建表格,并使用 longtable 或 supertabular 创建多页表,但我无法将两者结合起来。

\documentclass[twocolumn]{article}
\usepackage{supertabular}
\usepackage{longtable}

\begin{document}
\begin{supertabular*}{\linewidth}{llllll}
column1 &column2    &column3    &column4    &column5    &column6\\                                                                                                                            
\end{supertabular*}
\end{document}
  • longtable 在双列模式下根本不起作用(“longtable 不在单列模式下”)
  • supertabular* 编译(使用\begin{supertabular*}{\linewidth}{...},如另一个问题中所建议的),但仍然使用一列,如果该空间不足则重叠(参见上面的 MWE)

答案1

supertabular我建议你不要使用已知存在某些弱点的软件包,而是使用表格包及其xtabular环境xtabular*

我知道您希望长表也相当宽,因此需要跨越两列。要实现此行为,您需要发出指令\onecolumn \begin{xtabular*}{\textwidth}...},你需要发出指令\twocolumn \end{xtabular*}。为了避免 LaTeX 遇到该\onecolumn指令时出现糟糕的页面中间分页符,我建议您也加载该afterpage包并将所有xtabular*相关内容装入指令中\afterpage{...}。例如:

\documentclass[twocolumn]{article}
\usepackage{xtab,afterpage}
\usepackage{lipsum}  % for filler text

\begin{document}
\lipsum[1-5]  % filler text

--- here's the call to start an xtabular* environment. 
Execution is deferred until the start of the next page ---

\afterpage{\onecolumn
\begin{xtabular*}{\textwidth}{l@{\extracolsep{\fill}}lllll}
\hline
column1 &column2    &column3    &column4    &column5    &column6\\
%....
column1 &column2    &column3    &column4    &column5    &column6\\
\hline
\end{xtabular*}
\twocolumn
} % end of scope of "\afterpage" directive

\lipsum[6-10] % more filler text
\end{document}

根据表格的长度,表格最后一页的底部可能仍会有一些空白空间;但是,与表格开头之前立即出现坏页相比,这个问题通常要小得多。

相关内容