我正在排版一些表格,这是我所需输出的一个示例:
有几个特点:
- 多种数字格式:没有不确定性的整数、浮点数和有不确定性的科学计数法。
- 不确定性范围从 (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
会产生:
其中有方式空格太多,因为此默认值将小数点放在每列的中间。
对整个表指定一个单一的table-format=3.4(2)e+2
也不起作用,因为数据是如此多样化:
table-format
有没有办法根据每列的内容自动检测特定列?这看起来(天真地)像是可以存在,但我无法找到对它的引用。
siunitx
我对其他套餐持开放态度,但是到目前为止,我对整体套餐非常满意。