siunitx 列中的白色 space

White space in siunitx columns

我正在尝试使用 siunitx 程序包格式化 table 个带有单位的数字,以使数字在小数点上对齐。

我无法控制 siunitx 分配给数字显示的白色 space 数量。

这是一个例子。我希望第一列中的数字更靠近右侧,因为它们位于第三列中,并且我希望第三列中数字左侧的 space 更少。 (垂直线很难看,我知道,但它们显示了列宽。)

\documentclass[10pt,a4paper]{article}
\usepackage{siunitx}
\begin{document}
\begin{tabular}{|S|r|S|r|}
\multicolumn{2}{c}{Range} & \multicolumn{2}{c}{Readout}  \
\hline 
10 & mV &   0.000049 & mV  \
100 & V &   0.00007   & mV \
\end{tabular} 
\end{document}

编辑 作为这个问题的延续,我试图找到一种方法来报告同一列中的数字和单位,它们之间有一个(或至少统一的)space。但是whitespace还是很难控制的。例如,

\begin{tabular}{
S|
S|
S[table-format=1.9]
}
{Range} & {Readout} & {Uncertainty}  \
\hline 
10 {mV} &   0.000022~{mV}  & 0.000069 {mV}\
100 {mV} &   -0.00001~{mV}  & 0.00011 {mV}\
1 {V} &   -0.0000007~{V}  & 0.00000029 V\
10 {V} &   -0.000007~{V}  & 0.0000029 V\
100 {V} &   -0.000075~{V}  & 0.000058 V\
\end{tabular} 

产生这个

这里,在第一列中,根据尾数的大小,在数字后面插入space;在第二列中,数字左侧的白色 space 过多;在第三列中,数字和单位之间的 space 允许一定数量的数字。

此外,在第二列中使用 ~ 似乎是必要的。没有它,文本将直接连接到数字。我玩过 table-align-text-post-pre,如 siunitx 文档中所述,但它们在这里似乎不起作用。我以为他们会的。

您可以指定小数点前后的位数。语法是 table-format=<digits before marker>.<digits after the marker>

\documentclass[10pt,a4paper]{article}
\usepackage{siunitx}
\begin{document}
\begin{tabular}{|S[table-format=3.0]|r|S[table-format=1.6]|r|}
\multicolumn{2}{c}{Range} & \multicolumn{2}{c}{Readout}  \
\hline 
10 & mV &   0.000049 & mV  \
100 & V &   0.00007   & mV \
\end{tabular} 
\end{document}