使用 xtab 跨越两列的长表

使用 xtab 跨越两列的长表

我想要文档中一张页面宽度的表格,该表格有两列 - 但该表格的长度也会超过一页。

我最初尝试了 longtable,但后来发现 longtable 在双列文档中不起作用。

我找到了类似的答案和解决方案这里,其中给出了如何使用 xtab 包执行此操作的示例:

\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}

我可以让这个例子正常工作。但是不要使用:

\documentclass[twocolumn]{article}

我需要使用:

\documentclass{emulateapj}

当我执行此操作时,我收到以下错误消息:

l.74   \noalign{\global\let\\=\@savcr}}}

我想要的是一个可以跨越两列的页面宽度表格模拟apj类并且长度超过一页。

非常感谢您的帮助!

答案1

有几个问题。

首先,emulateapj定义\tablehead,它也在 中定义xtabs,并会产生错误。

其次,emulateapj使用revtex4-1.clsinternally,取消定义\onecolumn\twocolumn。而是使用\onecolumngrid\twocolumngrid

您说您尝试过longtable,但它在双列模式下不起作用。但是,如果我们先将其更改为一列,然后再将其改回两列,它似乎可以正常工作。

考虑这个例子:

\documentclass{emulateapj}
\usepackage{lipsum}
\begin{document}
\lipsum[1-9]

\onecolumngrid
\begin{longtable}{llllll}
  \tablecaption{A long table}
  \tablehead{column1 & column2 & column3 & column4 & column5 & column6}
  column1 & column2 & column3 & column4 & column5 & column6 \\
  column1 & column2 & column3 & column4 & column5 & column6 \\
  column1 & column2 & column3 & column4 & column5 & column6 \\
  column1 & column2 & column3 & column4 & column5 & column6 \\
  column1 & column2 & column3 & column4 & column5 & column6 \\
  \hline
\end{longtable}
\twocolumngrid

\lipsum[10-12]
\end{document}

在此处输入图片描述

相关内容