下面的最小示例给出了指数数字中奇怪的偏移。我认为 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 而言)