这张包含一些大数字的表格中,小数点上方居中的列标题在我看来很奇怪。而且,列似乎也有点太宽了。
我在这里尝试了其他答案和软件包文档,但收效甚微。也许我看得不够仔细 - 所以寻求帮助。
这是MWE:
\documentclass{article}
\usepackage{booktabs}
\usepackage{siunitx}
\sisetup{input-ignore={,},input-decimal-markers={.},group-separator={,}}
\begin{document}
\begin{tabular}{lSSS}
\toprule
& & & \multicolumn{1}{c}{Natural} \\
Time unit & \multicolumn{1}{c}{Births} & \multicolumn{1}{c}{Deaths} & \multicolumn{1}{c}{increase} \\
\midrule
Year & 134,176,254 & 56,605,700 & 77,570,553 \\
Month & 11,181,355 & 4,717,142 & 6,464,213 \\
Day & 367,606 & 155,084 & 212,522 \\
Minute& 255 & 108 & 148 \\
Second& 4.3 & 1.8 & 2.5 \\
\bottomrule
\end{tabular}
\end{document}
答案1
您需要知道siunitx
小数点分隔符(对齐点)左右各有多少位数字。 键table-format
可以解决问题。
还要注意的是,这里用一个括号组就足以转义标题文本。\multicolumn
只有在特殊情况下才需要此解决方案。
\documentclass{article}
\usepackage{booktabs}
\usepackage{siunitx}
\sisetup{input-ignore={,},input-decimal-markers={.},group-separator={,}}
\begin{document}
\begin{tabular}{lS[table-format=9.1]*2{S[table-format=8.1]}}
\toprule
& & & {Natural} \\
Time unit & {Births} & {Deaths} & {increase} \\
\midrule
Year & 134,176,254 & 56,605,700 & 77,570,553 \\
Month & 11,181,355 & 4,717,142 & 6,464,213 \\
Day & 367,606 & 155,084 & 212,522 \\
Minute & 255 & 108 & 148 \\
Second & 4.3 & 1.8 & 2.5 \\
\bottomrule
\end{tabular}
\end{document}
该设置table-format=9.1
表示对齐点前有 9 位数字,对齐点后有 1 位数字。其他列也类似。我还*<num>{<col-spec>}
对重复的公共列使用了符号来减少重复。