我正在使用 siunitx 来对齐列中的数字。问题是我故意在开头一行得到一个大数字,每 1,000 个用“,”表示。请参见以下示例。
我想要实现的目标:
1)将小数点对齐到小数点“。”这是第2、3和4行。
2) 将大数字居中,即本例中的第 1 行和第 5 行。当我测试不同的选项时,大数字总是要么太靠左,要么太靠右。如果可能的话,它们应该居中。我相信从格式方面来说这是最合理的。
是否可以?
\documentclass{article}
\usepackage{siunitx}
\sisetup{%
input-ignore={,},
input-decimal-markers = {.},
table-format = 2.2,
table-number-alignment = center,
}%
\begin{document}
\begin{tabular}{SS}
row & alignToDec \\
row1: & 19,000,000.0 \\
row2: & 12.38 \\
row3: & 1.97 \\
row4: & 91.01 \\
row5: & 87,000,000.0 \\
\end{tabular}
\end{document}
答案1
由于某种原因,您的代码可以编译,但是:
1)您不应该(至少您没有理由这样做)S
对不包含数学的列使用列类型。
2) 如果“S”列内单元格的内容是文本,请将其放在花括号内。(这样,内容将从 siunitx 默认居中,因为它将被视为文本)。[如果在括号外,请查看第二列中“损坏的”alignToDec,如果在括号内,请查看差异]
3)对于大数字,使用与上述相同的方法......
4)您可以table-format
在列中将其指定为可选参数S
。(siunitx
一般来说,这样做效果会更好)
\documentclass{article}
\usepackage{siunitx}
\sisetup{%
input-ignore={,},
input-decimal-markers = {.},
table-number-alignment = center,
}%
\begin{document}
\begin{tabular}{cS[table-format=2.2]}
row & {alignToDec} \\
row1: & {19,000,000.0} \\
row2: & 12.38 \\
row3: & 1.97 \\
row4: & 91.01 \\
row5: & {87,000,000.0} \\
\end{tabular}
\end{document}
PS:删除luatex
标签。