在禁忌表中对齐 siunitx 数字

在禁忌表中对齐 siunitx 数字

下面的最小示例给出了指数数字中奇怪的偏移。我认为 tabu 和 siunitx 互相干扰。有人知道解决方法吗?

\documentclass[parskip=half]{scrartcl}

\usepackage{siunitx}
\usepackage{tabu,booktabs}

\begin{document}

\newcolumntype Z{X[c,m]{%
S[%
tight-spacing = true,
round-mode=places,
round-precision=2,
]
}}
\tabucolumn Z
\begin{tabu} to \linewidth {X[l,m,1.2]ZZZZZ}
\hline
Water vapour* & 18.01534 & -2.418379e+8 & 1.886964e+5 &
2.605& 572.4\\
\hline
\end{tabu}

\end{document}

在此处输入图片描述

答案1

comp.text.tex 上的开发人员回答了这个问题,我想在这里分享它来回答这个问题:

好吧。在下一个版本中,感谢 Bruno Le Floch 重写了该过程,不再有 \tabucolumn 命令:

\newcolumntype Z{ XS[m,
 tight-spacing=true,round-mode=places,
                          round-precision=2] }

X[options]{S[option]} 实现为 XS[ X option , S option] 但两者仍然有效。

\tabucolumn 确实没有任何意义:我把它放在那里是因为禁忌序言可能存在一些解析问题。感谢 B Le Floch,这些问题不再存在。

XS(或 X[..]{S[...]} )始终居中:没有必要为 S 和 s 列设置水平对齐方式:无法选择对齐方式。

\begin{tabu} to \linewidth {X[l,m,1.2]ZZZZZ}

避免使用 X[l,m,1.2] -> 对于 XS 列,逗号是“保留的”,用于将 X 的选项与 S 的选项分隔开。因此,最好不要对 X 选项使用任何分隔符:X [1.2 lm](在我看来更具可读性)

\hline
 Water vapour*&  18.01534&  -2.418379e+8&  1.886964e+5&
 2.605&  572.4\\
 \hline
\end{tabu}

现在的垂直对齐问题:;-)

问题不在于 tabu,而在于 siunitx(抱歉 ;-( )):siunitx 在数字前留了太多固定空间,因为 S 列机制采用“固定宽度”。为了能够调整间距,S 列应该读取整个表格,然后根据每列中每个排版数字的“自然长度”选择间距。

这是在 tabu X 内部所做的事情,但是 tabu 无法调整 siunitx 所造成的间距:间距位于一个框内,而 tabu 无法破坏这个框(然后重新对齐数字!)

如果您尝试:

 \newcolumntype Z{X[-1
 m]{S[tight-spacing =
 true,round-mode=places,
round-precision=2]}}


 \begin{tabu} to \linewidth {X[lm] |
 *5{Z|}} \hline Water vapour* & 18.01534 & -2.418379e+8 & 1.886964e+5 &
 2.605& 572.4\\ \hline \end{tabu} 

不再存在对齐问题。但列宽不一样。您可以通过以下方式了解问题:

 \newcolumntype Z{S[tight-spacing =
 true,round-mode=places,
 round-precision=2]}

\begin{tabu} to \linewidth {X[-1 lm] |
*5{Z|}} \hline Water \par vapour* & 18.01534 & -2.418379e+8 & 1.886964e+5 &
2.605& 572.4\\ \hline \end{tabu}

这表明 siunitx 需要的空间比 X 系数允许的要多。因此在 X[m](即 m )列内有换行符。

因此:更改边距,或人为地提高禁忌宽度:

 \newcolumntype Z{X[m]{S[tight-spacing
 = true,round-mode=places,
 round-precision=2]}}
 \hskip-10mm \begin{tabu} to 500pt
 {X[-1 lm] | *5{Z|}} \hline Water \par
 vapour* & 18.01534 & -2.418379e+8 &
 1.886964e+5 &
 2.605& 572.4\\ \hline \end{tabu}

这里不再存在问题。(至少对于未来版本 2.9 而言)

相关内容