siunitx 自动检测 S 列中的表格格式

siunitx 自动检测 S 列中的表格格式

我正在排版一些表格,这是我所需输出的一个示例:

期望输出

有几个特点:

  • 多种数字格式:没有不确定性的整数、浮点数和有不确定性的科学计数法。
  • 不确定性范围从 (2) 到 (19),有效数字的数量在 1 到(通常)5 之间。
  • 每列的小数点(或整数的隐式小数点)必须对齐。
  • 其他特征(例如\times符号)也是对齐的,尽管这并不重要。
  • 有时标题单元格是列中最长的(例如N [10^6]列),有时则不是(例如double列)。

我能够使用 的siunitx-columnS功能实现所需的输出。但是,似乎我必须逐table-format列指定。为了获得所示的表格,我使用了:

\begin{table}[h!]
   \caption{Desired formatting, manual \texttt{table-format} for each column}
   \footnotesize
   \sisetup{table-number-alignment = center}
   \begin{tabular}{ S[table-format=5.0]
         S[table-format=4.0]
         S[table-format=1.4(2)e+2]
         S[table-format=2.2(1)]
         S[table-format=2.2(1)]
         S[table-format=1.3(2)]
         S[table-format=1.3(1)e+2] }
      \toprule
      {$T$ $\qty[\si{\kelvin}]$}       &  {$\mathcal{N}$ $\qty[\num{e6}]$} &  {$k_\mathrm{d}^{\mathit{(eff)}}$ $\qty[\si{\cm\cubed\per\sec}]$}           &  {\textit{simple}}                                                          &  {\textit{swap}}                                                            &  {\textit{double}}                                                          &  {$k_\mathrm{m}$ $\qty[\si{\cm\cubed\per\sec}]$}                            \\
      \midrule
           8000                        &       90                          &       3.163 \pm 0.007 e-12                                                  &       76.59 \pm 0.07                                                        &       23.32 \pm 0.07                                                        &       0.095 \pm 0.006                                                       &       4.26 \pm 0.04 e-14                                                    \\
           10000                       &       180                         &       1.2147 \pm 0.0010 e-11                                                &       72.59 \pm 0.03                                                        &       27.00 \pm 0.03                                                        &       0.409 \pm 0.005                                                       &       2.109 \pm 0.006 e-13                                                  \\
           13000                       &       18                          &       3.948 \pm 0.006 e-11                                                  &       67.63 \pm 0.06                                                        &       31.07 \pm 0.06                                                        &       1.301 \pm 0.016                                                       &       8.56 \pm 0.04 e-13                                                    \\
      \bottomrule
   \end{tabular}
\end{table}

请注意,我对每列都使用了用户确定的表格格式,例如S[table-format=1.4(2)e+2]。该格式是通过查看该列的数据并选择最大有效数字、不确定数字和指数数字来确定的。我将生成许多表格,如果可能的话,我希望避免手动指定格式。

我尝试过用siunitx两种方式自动确定格式。简单地使用S会产生: 默认 S 列 其中有方式空格太多,因为此默认值将小数点放在每列的中间。

对整个表指定一个单一的table-format=3.4(2)e+2也不起作用,因为数据是如此多样化: 单表格式

table-format有没有办法根据每列的内容自动检测特定列?这看起来(天真地)像是可以存在,但我无法找到对它的引用。

siunitx我对其他套餐持开放态度,但是到目前为止,我对整体套餐非常满意。

相关内容