![使用 xtab 跨越两列的长表](https://linux22.com/image/364909/%E4%BD%BF%E7%94%A8%20xtab%20%E8%B7%A8%E8%B6%8A%E4%B8%A4%E5%88%97%E7%9A%84%E9%95%BF%E8%A1%A8.png)
我想要文档中一张页面宽度的表格,该表格有两列 - 但该表格的长度也会超过一页。
我最初尝试了 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.cls
internally,取消定义\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}