我正在尝试对齐表格中多个列中的值。
有一列包含非常大的数字和小数,有一列包含逗号,有一列故意不包含逗号,还有一列包含单位(%)(如果它起作用),还有一列包含非常大的数字但没有小数。最后,还有一列是混合的,其中点应该与逗号对齐(可选,我相信这很难!)。
可以用 来完成吗siunitx
?我尝试了各种选项,但大多数情况下我都会得到错误,我不知道如何调试。任何提示都值得赞赏。我真的对第 2 列到第 5 列的解决方案很满意;第 6 列(混合)实际上是可选的。我只是添加了它,因为我很好奇它是否可行。
根据评论进行编辑:如果我的请求只有部分可以在 siunitx 中实现,那也会非常有帮助。谢谢!
\documentclass{article}
\usepackage{siunitx}
\begin{document}
\begin{tabular}{lccccc}
row & alignToDec & alignToComma & alignWithUnit & AlignLargeNumbers & alignMixedOptional \\
row1: & 19,000,000.0 & 19,000 & 12.31\% & 12,222,222 & 12.31 \\
row2: & 7,000,434.12 & 7,000 & 11.31\% & 13,222,222 & 12,31 \\
row3: & 900,342.12 & 900 & 10.98\% & 142,222,222 & 12.31 \\
row4: & 90.0 & 90 & 12.21\% & 1,531,222,222 & 12,31 \\
\end{tabular}
\end{document}
\end{document}
答案1
您的目标并不完全明确。我将其解释如下:
第 1 栏:只有“。”才应被视为输入小数点标记,而逗号应作为千位分隔符。输出。
第 2 栏:“,”符号应被视为输入小数点标记和输出小数点标记。(“。” 是包的默认输出小数点标记
siunitx
。)第三栏:将“。”视为输入小数点标记,并留出足够的空间来排版“单位”——这里是符号
%
。第 4 列:没有明确小数点标记的大数;在输入和输出时将逗号视为千位分隔符。
第 5 栏:将“.”和“,”都视为输入小数点标记;在输出中,使用“。”作为小数点标记。另外:我认为如果将“。”和“,”都用作输出小数点标记,您的读者会感到非常困惑——尤其是如果将“,”也用作千位分隔符。
如以下代码所示,这些目标可以通过以下方式实现:(a) 通过指令全局修改一些默认设置\sisetup
,(b) 为 5 列中的每个列提供附加选项作为参数S
。请注意,每S
列都有自己的table-format=...
选项来指定数字材料的整体宽度。
\documentclass{article}
\usepackage{booktabs} % for "\midrule" macro
\usepackage{siunitx}
\sisetup{group-separator = {,}, % default: \, ("thinspace")
group-minimum-digits = 4, % default: 5
input-decimal-markers = {.}} % default: "{.,}"
\begin{document}
\centering % optional
\begin{tabular}{@{}
S[table-format=8.2,
input-ignore={,}]
S[table-format=3.3,
input-decimal-markers={,},
output-decimal-marker={,}] % default: . ("dot")
S[table-format=3.2,
table-space-text-post={\%}] % set aside space for "%" symbol
S[table-format=10.0,
input-ignore={,}]
S[table-format=2.2,
input-decimal-markers={.,}] % treat both "." and "," as decimal markers
@{}}
{To Dec} & {To Comma} & {With Unit} & {Large Numbers} & {Mixed Optional} \\
\midrule
19,000,000.0 & 19,000 & 2.31\% & 12,222,222 & 2.31 \\
7,000,434.12 & 7,000 & 11.31\% & 13,222,222 & 12,31 \\
900,342.12 & 900 & 10.98\% & 142,222,222 & 2.31 \\
90.0 & 90 & 312.21\% & 1,531,222,222 & 12,31 \\
\end{tabular}
\end{document}