如何正确使用 siunitx 将带序言的数字对齐到表格中心

如何正确使用 siunitx 将带序言的数字对齐到表格中心

我希望我的数字在表格中左对齐但居中,就像这样解决方案,我也尝试应用。现在我的数字是 的形式~24%。为了正确对齐,我尝试通过将其写为 来保护非数字部分{$\sim$}24{ \%}%远远落后于数字,但是~位于列中央并与数字重叠。使用类似 时也会发生同样的事情,{xx}60{ \%}现在xx和 数字重叠。如何保护~保持在数字左侧?

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

\begin{document}

  \begin{tabular}{lS[table-format=2.0]S[table-format=2.0]}
     \toprule
      & {Before treatment} & {After treatment} \\
      \midrule
     component1 & {$\sim$}60{ \%} & {$\sim$}15{ \%} \\
     component2 & {$\sim$}14{ \%} & {$\sim$}4{ \%} \\
     component3 & {$\sim$}26{ \%} & {$\sim$}81{ \%} \\
     \bottomrule
   \end{tabular}


\end{document}

答案1

正如评论中所说,该table-space-text-post选项有助于节省数字后的右侧空格。为了保持siunitx默认设置,将使用细空格\,而不是全空格。

\sim宏已经是允许输入的宏之一siunitx,并用作比较器。这允许您\sim在列中使用而不进行任何保护。它的空间由开关分配table-comparator,或者,对于特殊选项,在整数部分前面table-format有一个<(或或...?)。>

代码

\documentclass{article}
\usepackage{booktabs,siunitx}
\begin{document}
\begin{tabular}{l *2{S[table-format=<2.0, table-space-text-post=\,\%]}}
    \toprule
               & {Before treatment} & {After treatment} \\ \midrule
    component1 & \sim 60 \,\%       & \sim 15 \,\%      \\
    component2 & \sim 14 \,\%       & \sim 4  \,\%      \\
    component3 & \sim 26 \,\%       & \sim 81 \,\%      \\ \bottomrule
\end{tabular}
\end{document}

输出

在此处输入图片描述

相关内容