我在对齐列时遇到了一些问题,如以下示例所示:
1)我的不确定性可能有两位小数和分数部分
2)我想使一些单元格加粗
3)我想在列之间添加更多空间
\documentclass{article}
\usepackage{siunitx}
\begin{document}
\begin{table}
\centering
\sisetup{ table-align-uncertainty=true,
separate-uncertainty=true }
\begin{tabular}{S[table-format=3.3(3)]S[table-format=3.3(3)]}
{Header} & {Header}\\
100.531 \pm 10.09 & \ensuremath{\mathbf{50.531 \pm 10.09}} \\
\ensuremath{\mathbf{12.531 \pm 0.095}} & 12.531 \pm 0.09 \\
\end{tabular}
\end{table}
\end{document}
答案1
我曾经遇到过类似的情况,并决定保持理智,简单地将值及其不确定性放在单独的列中。
\documentclass{article}
\usepackage{siunitx}
\usepackage{etoolbox}
\robustify\bfseries
\begin{document}
\setlength{\tabcolsep}{22pt}% increases space between columns
\begin{table}
\centering
\sisetup{%
table-align-uncertainty=true,
separate-uncertainty=true,
detect-weight=true,
detect-inline-weight=math
}
\begin{tabular}{%
S[table-format=3.3]@{\,\( \pm \)\,}S[table-format=2.3]
S[table-format=3.3]@{\,\( \pm \)\,}S[table-format=2.3]
}
\multicolumn{2}{c}{Header} & \multicolumn{2}{c}{Header}\\
\bfseries 100.531 & \bfseries 10.09 & 50.531 & 10.09\\
12.531 & 0.095 & \bfseries 12.531 & \bfseries 0.09\\
\end{tabular}
\end{table}
\end{document}
答案2
根据设计,siunitx
使用\bfseries
和\boldmath
何时detect-weight
有效,但我们需要\fontseries{b}
改为不加粗符号\pm
。解决方案:本地重新定义这两个命令。
\documentclass{article}
\usepackage{siunitx,etoolbox}
\begin{document}
\begin{table}
\sisetup{
table-align-uncertainty=true,
separate-uncertainty=true,
}
%% local redefinitions
\renewrobustcmd{\bfseries}{\fontseries{b}\selectfont}
\renewrobustcmd{\boldmath}{}
\begin{tabular}{
S[table-format=3.3(3),detect-weight,mode=text]
S[table-format=3.3(3),detect-weight,mode=text]
}
{Header} & {Header}\\
100.531 \pm 0.09 & \bfseries 50.531 \pm 0.09 \\
\bfseries 12.531 \pm 0.095 & 12.531 \pm 0.09 \\
\end{tabular}
\end{table}
\end{document}
请注意,siunitx
假设不确定性只有个位数的整数部分。如果您确实需要更复杂的不确定性值,我认为唯一的方法是使用更多列。
\documentclass{article}
\usepackage{siunitx,etoolbox}
\begin{document}
\begin{table}
\sisetup{
table-align-uncertainty=true,
separate-uncertainty=true,
}
%% local redefinitions
\renewrobustcmd{\bfseries}{\fontseries{b}\selectfont}
\renewrobustcmd{\boldmath}{}
\begin{tabular}{
S[table-format=3.3,detect-weight,mode=text]
@{${}\pm{}$}
S[table-format=2.3,detect-weight,mode=text]
S[table-format=3.3,detect-weight,mode=text]
@{${}\pm{}$}
S[table-format=2.3,detect-weight,mode=text]
}
\multicolumn{2}{c}{Header} & \multicolumn{2}{c}{Header}\\
100.531 & 10.09 & \bfseries 50.531 & \bfseries 10.09 \\
\bfseries 12.531 & \bfseries 0.095 & 12.531 & 0.09 \\
\end{tabular}
\end{table}
\end{document}