我正在使用 REVTeX4.1 类,我想让一些数字在表格上与小数点对齐。按照 REVTeX 4 作者指南第 13 页,我正在使用 dcolumn 包。但是,当我包含它时,表格中的垂直间距会减小,在我看来,减小太多了。我想知道是否有一个过程既可以对齐小数位,又可以保持表格上的垂直间距。
这是添加 dcolumn 包之前的代码,具有良好的垂直间距,但没有小数点对齐。
\documentclass[aps,pra,reprint]{revtex4-1}
\begin{document}
\begin{table}
\begin{ruledtabular}
\begin{tabular}{ccc}
Property & Value & Unit\\
\colrule
$\epsilon_{\text{w}}$ & $7.2\times 10^{-5}$ & g cm/V$^2$s$^2$ \\
$\eta$ & $1.33\times10^{-2}$ & g/cm s\\
\end{tabular}
\end{ruledtabular}
\end{table}
\end{document}
这是添加 dcolumn 间距之后的结果,表格似乎丢失了行之间的垂直空间,但数字与小数点对齐。
\documentclass[aps,pra,reprint]{revtex4-1}
\usepackage{dcolumn}
\begin{document}
\begin{table}
\begin{ruledtabular}
\begin{tabular}{cdc}
Property & \text{Value} & Unit\\
\colrule
$\epsilon_{\text{w}}$ & 7.2\times 10^{-5} & g cm/V$^2$s$^2$ \\
$\eta$ & 1.33\times10^{-2} & g/cm s\\
\end{tabular}
\end{ruledtabular}
\end{table}
\end{document}
答案1
该ruledtabular
环境除了插入双水平线外,还修改了相当多与表格相关的参数,请参阅@Mico 回答和@DavidCarlisle 回答。您可以使用这些答案中的解决方案,或者设计自己的解决方案,例如基于 包Xhline
中定义的使用makecell
和包S
中定义的列的使用siunitx
,这也可以实现单位的一致书写:
% considered
% https://tex.stackexchange.com/questions/267868/
% does-ruledtabular-environment-from-revtex4-1-break-the-s-column-in-siunitx
\documentclass[aps,pra,reprint]{revtex4-1}
\usepackage{siunitx}
\usepackage{makecell}
\usepackage{lipsum}
\begin{document}
\lipsum[1]
\begin{table}[ht]
\sisetup{per-mode=symbol,
bracket-unit-denominator=false,
table-align-exponent=false,
table-format=1.2e+1,
table-align-text-post=false}
\renewcommand\arraystretch{1.3}
\begin{tabular*}{0.9\linewidth}{@{\extracolsep{\fill}} c S l}
\Xhline{0.8pt}
Property & {Value} & Unit \\
\Xhline{0.4pt}
$\epsilon_\mathrm{w}$ & 7.2e-5 & \si{\gram\centi\meter\per\squared\volt\per\squared\second} \\
$\eta$ & 1.33e-2 & \si{\gram\per\centi\meter\per\second} \\
\Xhline{0.8pt}
\end{tabular*}
\end{table}
\lipsum[2-4]
\end{document}
这使:
答案2
我找到了答案这里运行正常。不好的是,需要在每个表的每一行上手动添加一条额外的规则。在我看来,包 array(dcloumn 和 siunitx 都包含该包)以一种糟糕的方式更改了 revtex 文档中表的间距参数。