将大数和小数按逗号和小数点对齐

将大数和小数按逗号和小数点对齐

我正在尝试对齐表格中多个列中的值。

有一列包含非常大的数字和小数,有一列包含逗号,有一列故意不包含逗号,还有一列包含单位(%)(如果它起作用),还有一列包含非常大的数字但没有小数。最后,还有一列是混合的,其中点应该与逗号对齐(可选,我相信这很难!)。

可以用 来完成吗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}

相关内容