当使用 10 的某个幂的不确定性时,使用 siunitx 在表格中对齐时遇到问题

当使用 10 的某个幂的不确定性时,使用 siunitx 在表格中对齐时遇到问题

我正在尝试制作一张表格,其中有一S列(来自siunitx-package),其中的数字与\pm表示不确定性的对齐。一些值具有不确定性,例如1.00 x 10⁴和,这似乎会妨碍对齐。这是一个 MWE:

\documentclass{article}
\usepackage{booktabs}
\usepackage[separate-uncertainty,bracket-numbers = false]{siunitx}

\begin{document}

\begin{table}
  \begin{tabular}{S} \toprule
    \num{0.37 \pm 0.07} \\
    \num{0 \pm 7e-4} \\ \bottomrule
  \end{tabular}
\end{table}

\end{document}

我想要看到的\pm是的阵容,那么这里缺少什么?

更新:我搜索了一下,刚刚看到这个答案回答为什么\num{}不适用于 S 列但是,通过删除\num{}环境,后面的所有内容(包括)\pm都不会显示在表中。这不是一个改进。我是否应该想出另一种方法来做到这一点,或者是否有siunitx-package我找不到的选项?

答案1

这里有几个问题。首先,正如您在编辑中观察到的那样,如果您想要对齐\num,则不应在列内使用S。但是,仅凭这一更改并不能实现您想要的效果。

的标准设置siunitx旨在保持任何输入的小数位对齐,但代价是对于任何略微不对称的情况都不是最佳的。对于更复杂的输入,您需要设置table-format以指示为数字保留多少空间。

第二个问题是siunitx被设计用来处理 形式的数字(x \pm y) \times 10^{z}。因此,您的输入被解析为(0 \pm 7) \times 10^{-4},而不是(0 \pm 7 \times 10^{-4})。这主要是出于实际原因(它是最常见的输入形式),但部分原因是 中的不确定性代码的历史siunitx是为了读取更紧凑的形式0.0000(7) = (0.0000 \pm 0.0007)

现在,输出至少可以部分符合要求:

\documentclass{article}
\usepackage{booktabs}
\usepackage[separate-uncertainty,bracket-numbers = false,
  table-align-uncertainty = true, table-align-exponent=false]
  {siunitx}

\begin{document}

\begin{table}
  \begin{tabular}{S[table-format=1.2(2)e1]}
   \toprule
    0.37 \pm 0.07 \\
    0 \pm 7e-4 \\
   \bottomrule
  \end{tabular}
\end{table}

\end{document}

不过,你会发现结尾的空间是错误的。就我个人而言,我会选择

\documentclass{article}
\usepackage{booktabs}
\usepackage[separate-uncertainty]
  {siunitx}

\begin{document}

\begin{table}
  \begin{tabular}{S[table-format=1.4(1)]}
    \toprule
    0.37   \pm 0.07 \\
    0.0000 \pm 0.0007 \\
    \bottomrule
  \end{tabular}
\end{table}

\end{document}

相关内容