我可以使用 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}
根据表格的长度,表格最后一页的底部可能仍会有一些空白空间;但是,与表格开头之前立即出现坏页相比,这个问题通常要小得多。