我知道在 之后的第一行和 之前的最后一行添加“struts”的表格技巧\hline
。我在我的整个文档中都使用它,这样看起来不错。
longtable
但是,现在我在/环境中工作supertabular
。如果到达分页符,这些环境会添加一个运行头,在我的情况下,运行头以 结尾\hline
。
现在我遇到了一个问题。虽然longtable
/supertabular
环境知道分页符发生在哪里,并添加了新的页眉,我不知道。我无法在适当的位置添加“上方”支柱。
我看到的唯一选项是在头部添加一个“下方”支柱\hline
。但我不知道该怎么做……?!?
答案1
\hline
\noalign{\vskip 3in}
在行后留出一些空格。
答案2
以下是不是直接回答您的问题,而是建议考虑采取不同的、(在我看来)最终更简单的方法来解决您的问题。
和您现在一样,我也曾经将 strut 放置在各种\hline
指令的上方和下方,以改善环境的整体外观tabular
(或tabular*
、supertabular
等)。我想我是在阅读 Claudio Beccari 的一篇题为“表格和数组的正确间距”的文章后开始以这种方式使用 strut 的,该文章发表于TeX 和 TUG 新闻,第 2 卷,第 3 期,1993 年。(本文可在线查阅;参见第 10-11 页,例如,http://mirror.utexas.edu/ctan/info/digests/ttn/ttn2n3.pdf。我觉得还是值得一读的。)
然后,就在几年前,我“发现”了书签包,它采用对面的解决在表格中水平线周围获得适当间距的问题的方法。该包无需更改 之前/之后文本行的深度/高度(通过插入适当的支柱)\hline
,而是提供命令\toprule
、\bottomrule
、\midrule
和\cmidrule
:这些命令会自动在相应的水平线下方和/或上方插入适当数量的垂直空白。(此外,这些水平线往往看起来更专业,因为它们的宽度并不相同,但这是另一个问题。)
那么,假设您需要创建一个包含三列的超长表格,并且假设您将使用环境xtabular
- 通过加载表格包——创建此表。然后您可以设置如下内容:
\tablefirsthead{% % for table header on first page
\toprule
Col 1 header & Col 2 header & Col 3 header \\
\midrule
}
\tablehead{% % for table headers except on first page
\multicolumn{3}{l}{\small\emph{Continued from previous page}} \\
\midrule[\heavyrulewidth] % line with same width as \toprule but with more spacing
Col 1 header & Col 2 header & Col 3 header \\
\midrule
}
\tabletail{% % for table tails except on very last page
\midrule[\heavyrulewidth] %line with same width as \bottomrule but with more spacing
\multicolumn{3}{r}{\small\emph{Continued on next page}} \\
}
\tablelasttail{\bottomrule} % table tail on very last page
\tablecaption{A very long table} \label{tab:verylong}
\begin{xtabular}{lcc}
% various lines
\midrule
% various lines
\midrule
% various lines
% ...
\end{xtabular}
我认为这种方法之所以如此吸引人,是因为您将booktabs
所有与在各个水平线周围设置适当的垂直空白相关的工作委托给了 LaTeX,尤其是包的宏。您(作者)无需弄清楚在哪里插入 struts。