使用 siunitx 对齐表格中的无尾数数字

使用 siunitx 对齐表格中的无尾数数字

表格内容可以很好地对齐,但我无法获得没有尾数(以科学计数法表示)与其余部分对齐的数字:

\documentclass{article}
\usepackage{booktabs,siunitx}
\sisetup{print-unity-mantissa=false}
\begin{document}

~\vfill

\begin{tabular}{SS[table-alignment=right,table-alignment-mode=none] r@{}c@{}l}
\multicolumn{1}{c}{centered in column but not aligned} &
\multicolumn{1}{c}{aligned\footnotemark[1], but not centered} &
\multicolumn{3}{c}{desired} \\
\toprule
10   & 10   & 10 &              &           \\
1e-4 & 1e-4 &    &              & $10^{-4}$ \\
5e-5 & 5e-5 &  5 & ${}\times{}$ & $10^{-5}$ \\
1e-5 & 1e-5 &    &              & $10^{-5}$ \\
\bottomrule
\end{tabular}

\footnotetext[1]{First row is not correct, though.}

\end{document}

有没有什么方法可以得到“期望的”结果,而不需要如此手动摸索?

在此处输入图片描述

答案1

您想要设置table-align-exponent;这在 v2 中有效,但 v3 中有一个错误,这意味着您看不到效果。我刚刚发布了 v3.1.11 来解决这个问题,目前我还在此处包含补丁:

\documentclass{article}
\usepackage{booktabs}
\usepackage{siunitx}%[=v2]
\ExplSyntaxOn
\cs_gset_protected:Npn \__siunitx_table_print_format_auxvii:w
  #1 \q_nil #2 \q_mark #3 \q_nil #4 \q_stop
  {
    \tl_if_blank:nF {#2}
      {
        \__siunitx_table_print_format_box:Nn \l__siunitx_table_tmp_box { { } #1#2 }
        \dim_set:Nn \l__siunitx_table_tmp_dim { \box_wd:N \l__siunitx_table_tmp_box }
        \__siunitx_table_print_format_box:Nn \l__siunitx_table_tmp_box
          {
            \bool_lazy_and:nnT
              { \l__siunitx_table_align_exponent_bool }
              { \tl_if_blank_p:n {#3} }
              {
                \__siunitx_table_print_format_box:Nn \l__siunitx_table_tmp_box
                  { { } #1 { } }
                \__siunitx_table_skip:n { \box_wd:N \l__siunitx_table_tmp_box }
              }
            { } #3#4
          }
        \__siunitx_table_print_format_after:N
          \l__siunitx_table_align_exponent_bool
      }
  }
\ExplSyntaxOff

\sisetup{retain-unity-mantissa=false}
\begin{document}

\begin{tabular}{S[table-format = 2e+1,table-align-exponent=true]S[table-format = 2e+1,table-align-exponent=false]}
\multicolumn{1}{c}{centered in column but not aligned}\\
\toprule
10   & 10   \\
1e-4 & 1e-4 \\
5e-5 & 5e-5 \\
1e-5 & 1e-5 \\
\bottomrule
\end{tabular}

\end{document}

相关内容