带有 siunitx 和百分号的表格环境中的虚假空格

带有 siunitx 和百分号的表格环境中的虚假空格

当我在表格环境中使用 siunitx 时,如果存在百分号 (%),就会出现虚假空格。我尝试在小数点处对齐。

我的代码是:

\begin{tabular}{lS}
    One   & 0.1234\percent \tabularnewline
    Two   & 1.234\percent  \tabularnewline
    Three & 12.34\percent  \tabularnewline
    Four  & 123.4\percent  \tabularnewline
    Five  & 1234\percent   \tabularnewline
    Six   & 1234.0\percent \tabularnewline
\end{tabular}

输出结果为:

结果

小数点对齐正常,但随着数字的整数部分的增加,百分号的空格数也会增加。

有没有办法轻松删除这些空格,以便百分号出现在数字后面?我可以通过让百分号作为一个单位出现在单独的列中来解决这个问题,即

\begin{tabular}{lSs}
    One & 0.1234 & \percent \tabularnewline

但有没有办法让百分号紧挨着数字出现,就像上面的“一”、“二”和“三”那样,例如

   0.1234%
1234%

谢谢你!

答案1

S列用于数字仅有的:这与同时使用两个参数不同\SI。通常,我建议使用两个单独的列,并使用删除列间填充@{}

\documentclass{article}
\usepackage{siunitx}
\begin{document}

\begin{tabular}{lS[table-format=4.4]@{}s}
    One   &    0.1234 & \percent \\
    Two   &    1.234  & \percent \\
    Three &   12.34   & \percent \\
    Four  &  123.4    & \percent \\
    Five  & 1234      & \percent \\
    Six   & 1234.0    & \percent \\
\end{tabular}

\end{document}

或者更好的是,将此信息添加到标题中

\documentclass{article}
\usepackage{booktabs,siunitx}
\begin{document}

\begin{tabular}{lS[table-format=4.4]}
  \toprule
    & {Value/\si{\percent}} \\
  \midrule
    One   &    0.1234 \\
    Two   &    1.234  \\
    Three &   12.34   \\
    Four  &  123.4    \\
    Five  & 1234      \\
    Six   & 1234.0    \\
  \bottomrule
\end{tabular}

\end{document}

如果你确实想要给定的输入,你需要free-standing-units,改变定义\percent并稍微调整一下对齐设置

\documentclass{article}
\usepackage{siunitx}
\sisetup{free-standing-units}
\DeclareSIUnit[number-unit-product={}]{\percent}{\%}
\begin{document}

\begin{tabular}{lS[table-format=4.4,table-align-text-post=false]}
    One   &    0.1234\percent \\
    Two   &    1.234 \percent \\
    Three &   12.34  \percent \\
    Four  &  123.4   \percent \\
    Five  & 1234     \percent \\
    Six   & 1234.0   \percent \\
\end{tabular}

\end{document}

相关内容