将数字放在括号中的列中

将数字放在括号中的列中

我试图将数字放在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基元结束表格行来 避免不正确的间距。Ss\\\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}

相关内容