我试图将数字放在siunitx
括号中的某些列中,如下所示:
----------------------------------
time/s (efficiency/%)
-----------------------------
ID strategy A strategy B
----------------------------------
1 12.34 (12.34) 12.34 (12.34)
2 12.3 (2.34) 12.3 (2.34)
3 2.34 (12.3) 2.34 (12.3)
----------------------------------
我发现这可以通过>
和<
选项来完成,但是最后一列看起来很糟糕:
-----------------------------------
time/s (efficiency/%)
------------------------------
ID strategy A strategy B
-----------------------------------
1 12.34 (12.34) 12.34 (12.34 )
2 12.3 (2.34) 12.3 (2.34 )
3 2.34 (12.3) 2.34 (12.3 )
-----------------------------------
我怎样才能解决这个问题?
我的代码:
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{newtxtext}
\usepackage{newtxmath}
\usepackage{array}
\usepackage{booktabs}
\usepackage{siunitx}
\sisetup{
detect-family=true,
detect-weight=true,
detect-mode=true,
detect-inline-family=math,
detect-inline-weight=math,
detect-display-math=true
}
\newcolumntype{P}[1]{>{{(}}S[
table-format=#1,
table-align-text-pre=false,
table-align-text-post=false,
table-space-text-pre=(,
table-space-text-post=)]<{{)}}}
\begin{document}
\begin{tabular}{
S[table-format=1]
S[table-format=2.2]
@{~}
P{2.2}
S[table-format=2.2]
@{~}
P{2.2}
}
\toprule
& \multicolumn{4}{c}{time${}/{}$\si{\s}
(efficiency${}/{}$\si{\percent})} \\
\cmidrule(l){2-5}
\multicolumn{1}{c}{ID} &
\multicolumn{2}{c}{strategy A} &
\multicolumn{2}{c}{strategy B} \\
\midrule
1 & 12.34 & 12.34 & 12.34 & 12.34 \\
2 & 12.3 & 2.34 & 12.3 & 2.34 \\
3 & 2.34 & 12.3 & 2.34 & 12.3 \\
\bottomrule
\end{tabular}
\end{document}
答案1
摘自 siunitx 包用户指南第 7.13 节“在表格最后一列后添加项目”:
使用数组包“ ”构造在或列
<
后插入材料时,如果使用标准表格行终止符,则最后一列的对齐方式可能会错误。这是由于 LATEX 在低级别构造表格的方式造成的。可以使用 TEX基元结束表格行来 避免不正确的间距。S
s
\\
\cr
在您的表格的特定情况下,仅需要\cr
对三行数据使用 ;两个标题行不受操作影响<{{)}}
,因此可以用 终止\\
。
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{newtxtext,newtxmath}
\usepackage{array,booktabs,siunitx}
\sisetup{
detect-all,
detect-inline-family=math,
detect-inline-weight=math,
detect-display-math=true
}
\newcolumntype{P}[1]{>{{(}}S[
table-format=#1,
table-align-text-pre=false,
table-align-text-post=false,
table-space-text-pre=(,
table-space-text-post=)] <{{)}}}
\begin{document}
\begin{tabular}{@{} l *{2}{S[table-format=2.2] P{2.2}} @{}}
\toprule
ID & \multicolumn{4}{c@{}}{time$/$\si{\s} and
(efficiency$/$\si{\percent})} \\
\cmidrule(l){2-5}
&
\multicolumn{2}{c}{strategy A} &
\multicolumn{2}{c@{}}{strategy B} \\
\midrule
1 & 12.34 & 12.34 & 12.34 & 12.34 \cr
2 & 12.3 & 2.34 & 12.3 & 2.34 \cr
3 & 2.34 & 12.3 & 2.34 & 12.3 \cr
\bottomrule
\end{tabular}
\end{document}