我正在使用 siunitx 成功地将我的列内容沿着以下方向对齐\pm
:
\begin{table}[b]
\centering
\robustify\bfseries
\begin{tabular}{
c S[detect-weight, table-format=1.1(1)]}
\toprule
Header1 & {Header2} \\
& {Sub} \\
\midrule
A2 & -6,2 \pm 1,3 \\
A3 & 4,8 \pm 1,7 \\
A7 & \bfseries 5,7 +- 2,0 \\
A12 & 5,9 \pm 2,1 \\
\bottomrule
\end{tabular}
\caption{Caption.}
\label{table:mwe}
\end{table}
此外,我想指出一个使用 的特殊数据集\bfseries
,它恰好也会将 +- 符号加粗,这并不是有意为之。我想避免这种情况,因为加粗的 +- 内没有其他信息,而且 +- 符号的大小也会增加。有什么想法不指向列分隔符的方向吗?
答案1
您还可以使用b
字体系列以便数字具有相同的大小。
\documentclass{article}
\usepackage{siunitx,etoolbox,booktabs}
\sisetup{separate-uncertainty}
\begin{document}
\begin{table}
\centering
\renewrobustcmd{\bfseries}{\fontseries{b}\selectfont}
\renewcommand{\pm}{\mathbin{\mbox{\unboldmath$\mathchar"2206$}}}
\begin{tabular}{
c
S[detect-weight, table-format=-1.1(1),mode=text]
}
\toprule
Header1 & {Header2} \\
& {Sub} \\
\midrule
A2 & -6,2 \pm 1,3 \\
A3 & 4,8 \pm 1,7 \\
A7 & \bfseries 5,7 +- 2,0 \\
A12 & 5,9 \pm 2,1 \\
\bottomrule
\end{tabular}
\caption{Caption.}
\label{table:mwe}
\end{table}
\end{document}
更新
上述内容在版本 3 中不再有效siunitx
。需要一些更复杂的东西,不是为了取消\pm
符号的粗体,而是为了获得非扩展粗体。
\documentclass{article}
\usepackage{siunitx,booktabs}
% this is only necessary for Computer Modern
\DeclareMathVersion{tablebold}
\SetSymbolFont{operators}{tablebold}{OT1}{cmr} {b}{n}
\SetSymbolFont{letters} {tablebold}{OML}{cmm} {b}{it}
\SetSymbolFont{symbols} {tablebold}{OMS}{cmsy}{b}{n}
\ExplSyntaxOn
\keys_set:nn { siunitx / series-version-mapping } { b = tablebold }
\ExplSyntaxOff
%%%
\sisetup{separate-uncertainty}
\begin{document}
\begin{table}
\centering
% a couple of local redefinitions
\RenewDocumentCommand{\pm}{}{\mathbin{\mbox{\mathversion{normal}$\mathchar"2206$}}}
\newcommand{\B}{\fontseries{b}\selectfont} % for brevity
\begin{tabular}{
c
S[detect-weight,table-format=-1.1(1)]
}
\toprule
Header1 & {Header2} \\
& {Sub} \\
\midrule
A2 & -6,2 \pm 1,3 \\
A3 & 4,8 \pm 1,7 \\
A7 & \B 5,7 +- 2,0 \\
A12 & 5,9 +- 2,1 \\
\bottomrule
\end{tabular}
\caption{Caption.}
\label{table:mwe}
\end{table}
\end{document}
输出与以前相同。
答案2
我会将 pm 切换回正常字体,对齐已经被粗体数字破坏,因此不会造成额外的损害
\documentclass{article}
\usepackage[separate-uncertainty = true]{siunitx}
\usepackage{booktabs}
\begin{document}
\begin{table}[b]
\centering
% \bfseries
\begin{tabular}{
c S[detect-weight, table-format=1.1(1)]}
\toprule
Header1 & {Header2} \\
& {Sub} \\
\midrule
A2 & -6,2 \pm 1,3 \\
A3 & 4,8 \pm 1,7 \\
A7 & \bfseries 5,7 {\normalfont$\pm$} 2,0 \\
A12 & 5,9 \pm 2,1 \\
\bottomrule
\end{tabular}
\caption{Caption.}
\label{table:mwe}
\end{table}
\end{document}