我正在使用 Overleaf 编译我的 LaTeX 代码,并尝试使用S
列类型,但该table-number-alignment
选项似乎没有任何作用。以下是直接来自文档的示例siunitx
:
\documentclass{article}
\usepackage{siunitx}
\usepackage{booktabs}
\begin{document}
\begin{table}
\caption{Aligning the \texttt{S} column.}
\label{tab:S:align}
\centering
\sisetup{
table-figures-integer = 2,
}
\begin{tabular}{
S
S[table-number-alignment = center]
S[table-number-alignment = left]
S[table-number-alignment = right]
}
\toprule
{Some Values} & {Some Values} & {Some Values} & {Some Values} \\
\midrule
2.3456 & 2.3456 & 2.3456 & 2.3456 \\
34.2345 & 34.2345 & 34.2345 & 34.2345 \\
56.7835 & 56.7835 & 56.7835 & 56.7835 \\
90.473 & 90.473 & 90.473 & 90.473 \\
\bottomrule
\end{tabular}
\end{table}
\end{document}
这是我得到的输出(请注意,尽管table-number-alignment
选项不同,但所有列的对齐都是相同的):
以下是siunitx
文档中显示的内容(请注意,每列的对齐方式不同):
我如何让它table-number-alignment
正常工作(就像文档中显示的那样)?
[编辑]:我发现如果我明确地table-format = 2.4
向每列添加一个,我就会得到预期的行为。但是,从文档来看,MWE 代码中并没有要求这样做,那么问题出在哪里呢?
答案1
根据手册,有两个选项:table-alignment-mode
和table-number-alignment
。默认情况下,table-alignment-mode
设置为marker
,它只是将数字居中,使得所有小数点都在中间,而忽略来自的信息table-number-alignment
。
另一方面,当table-alignment-mode
设置为时format
,table-number-alignment
会被考虑(见希尼奇,第 44 和 45 页)。
以下 MWE 似乎可以实现您想要的功能:
\documentclass{article}
\usepackage{siunitx}
\usepackage{booktabs}
\sisetup{
table-format = 2.4,
table-alignment-mode = format,
}
\begin{document}
\begin{table}[tbh]
\centering
\begin{tabular}{
S
S[table-number-alignment = center]
S[table-number-alignment = left]
S[table-number-alignment = right]
}
\toprule
{Some Values} & {Some Values} & {Some Values} & {Some Values} \\
\midrule
2.3456 & 2.3456 & 2.3456 & 2.3456 \\
34.2345 & 34.2345 & 34.2345 & 34.2345 \\
56.7835 & 56.7835 & 56.7835 & 56.7835 \\
90.473 & 90.473 & 90.473 & 90.473 \\
\bottomrule
\end{tabular}
\end{table}
\end{document}