我想使用 Revtex 4-2 进行出版。这意味着我无法对文档进行太多更改或重新编程。但我偶然发现了一些让我非常困扰的有关规则表环境的事情。
在 Revtex 中,此环境定义为:
\def\toprule{\hline\hline}%
\def\colrule{\hline}%
\def\botrule{\hline\hline}%
\newenvironment{ruledtabular}{%
\def\array@default{v}%
\appdef\tabular@hook{\def\@halignto{to\hsize}}%
\let\tableft@skip@default\tableft@skip
\let\tableft@skip\tableft@skip@float
\let\tabmid@skip@default\tabmid@skip
\let\tabmid@skip\tabmid@skip@float
\let\tabright@skip@default\tabright@skip
\let\tabright@skip\tabright@skip@float
\let\array@row@pre@default\array@row@pre
\let\array@row@pre\array@row@pre@float
\let\array@row@pst@default\array@row@pst
\let\array@row@pst\array@row@pst@float
\appdef\array@row@rst{%
\let\array@row@pre\array@row@pre@default
\let\array@row@pst\array@row@pst@default
\let\tableft@skip\tableft@skip@default
\let\tabmid@skip\tabmid@skip@default
\let\tabright@skip\tabright@skip@default
\appdef\tabular@hook{\let\@halignto\@empty}%
}%
}
因此它在顶部和底部添加了两个 \hline,并将其宽度与文本宽度对齐。但使用它之后,你会看到它还在顶部和底部添加了空间。如果我们将它与顶部和底部有两个 \hline 的普通表格进行比较,这一点就变得很清楚了:
\begin{table}[!h]
\centering
\begin{ruledtabular}
\begin{tabular}{ccc}
test & test & test \\
\hline
test & test & test \\
\hline
test & test & test \\
test & test & test \\
\end{tabular}
\end{ruledtabular}
\end{table}
和。。比较
\begin{table}[!h]
\centering
\begin{tabular}{ccc}
\hline \hline
test & test & test \\
\hline
test & test & test \\
\hline
test & test & test \\
test & test & test \\
\hline \hline
\end{tabular}
\end{table}
我现在想知道在ruledtabular的定义中顶部和底部的额外空间来自哪里,这是一个错误还是一个功能?revtex是否打算将顶部和底部的栏与其余部分特别分开?因为我觉得它很丑陋,而且在过去的出版物中,第一行的文本是居中的。
答案1
就出版物而言,revtex 是 APS 的首选提交格式,但它不用于排版出版物。虽然 revtex 通常具有代表性,但确切的排版会有所不同,并且更能代表最近的出版物。
在我看来,表 1 中顶部规则后面的空间增加了https://journals.aps.org/prl/abstract/10.1103/PhysRevLett.123.231108,仅比 revtex 略微不明显,但这可以通过标题行单个规则周围更好(更均匀)的间距来弥补。底部规则前的间距不如 revtex 明显,可能与单个规则前的间距相同。
规则和间距通过\array@row@pre@float
和输入,\array@row@pst@float
定义为
\def\array@row@pre@float{\hline\hline\noalign{\vskip\doublerulesep}}%
\def\array@row@pst@float{\noalign{\vskip\doublerulesep}\hline\hline}%
对于预印本或类似文件,您可以通过添加
\makeatletter
\def\array@row@pre@float{\hline\hline}%
\def\array@row@pst@float{\hline\hline}%
\makeatother
添加到您的文档中。这不太可能在提交时造成任何问题,并且应该被生产部门忽略,他们将采用自己的风格。