如何使用 siunitx 包在 S 列的括号中输入数字

如何使用 siunitx 包在 S 列的括号中输入数字

在以下最小代码中,当我用替换l列时,S我收到一条错误消息

invalid-number!! Invalid numerical input '(4.36)'.!!
See the siunitx documentation for further information.!!

继续。重要的是,我将第三列和第五列的数字放在括号中。

\documentclass{article}
\usepackage{booktabs}
\usepackage{ctable}
\usepackage{siunitx}
\usepackage{multirow}

\begin{document}
\ctable[
     caption = {caption here},
     label = {tab:tab1},
     pos = {!ht},
     center
] {@{}lS@{\enskip}>{(}l<{)}S@{\enskip}>{(}l<{)}}{
    \tnote[$\dagger$]{footnote here}
}{ \FL
\multirow{2}{*}{var} & \multicolumn{4}{c}{Title here} \\
\cmidrule{2-5}
    & \multicolumn{2}{c}{[AA]} & \multicolumn{2}{c}{[BB]} \ML       
$var_{12}$ & 1.37 & 4.36 & 1.50 & 8.91  \\
$var_{13}$ & 1.73 & 8.43 & 1.84 & 10.88 
\LL}
\end{document}

答案1

有两件事我们应该小心。

  1. 括号用于表示通过table-figures-uncertainty宏的不确定性
  2. 我们可以用来table-parse-only获取parsing唯一的特征。

对于上面的第 1 项,我们可以使用括号 →和来隐藏(和,这样它们就不会表示不确定性。给出正确的间距。)siunitx{(}{)}table-parse-only

代码:

\documentclass{article}
\usepackage{booktabs}
\usepackage{ctable}
\usepackage{siunitx}
\usepackage{multirow}
%\sisetup{detect-weight=true,table-space-text-pre={(},table-space-text-post={)}}

\begin{document}
\ctable[
     caption = {caption here},
     label = {tab:tab1},
     pos = {!ht},
     center
] {@{}lS@{\enskip}>{{(}}S[table-parse-only]<{{)}}S@{\enskip}>{{(}}S[table-parse-only]<{{)}}}{
    \tnote[$\dagger$]{footnote here}
}{ \FL
\multirow{2}{*}{var} & \multicolumn{4}{c}{Title here} \\
\cmidrule{2-5}
    & \multicolumn{2}{c}{[AA]} & \multicolumn{2}{c}{[BB]} \ML
$var_{12}$ & 1.37 & 4.36 & 1.50 & 8.91  \\
$var_{13}$ & 1.73 & 8.43 & 1.84 & 10.88
\LL}
\end{document}

在此处输入图片描述

答案2

table-parse-only除了向包提供选项外siunitx,您还可以提供(在我看来干扰较少的)选项input-symbols = ()。这样做siunitx意味着将符号()视为普通输入,即不要为它们分配任何特殊含义(例如表示不确定性……)。

这种方法的两个优点是(i)您不需要在环境的标题信息中执行任何特殊操作tabular就可以在表体中输入括号;(ii)siunitx包将数字对齐小数点的能力(以及执行任何其他解析任务)不受影响。

在此处输入图片描述

\documentclass{article}
\usepackage{booktabs,siunitx}
\sisetup{input-symbols = ()} % "(" and ")" are ordinary inputs
\begin{document}
\begin{table}[ht!]
\caption{caption here} \label{tab:tab1}
\centering
\begin{tabular}{@{}lSSSS@{}}
\toprule
& \multicolumn{4}{c}{Title here} \\
\cmidrule{2-5}
& \multicolumn{2}{c}{[AA]} & \multicolumn{2}{c@{}}{[BB]} \\
\midrule
$var_{12}$ & 1.37 & (4.36) & 1.50 &  (8.91)\\
$var_{13}$ & 1.73 & (8.43) & 1.84 & (10.88)\\
\bottomrule
\end{tabular}
\end{table}
\end{document}

答案3

作为对@Mico 的帖子 (尚未回复...) 中@Donna 的评论的评论,您可以将括号放在花括号中,并且仍会发生舍入。

\documentclass{article}
\usepackage{booktabs,siunitx}
\sisetup{input-symbols = ()} % "(" and ")" are ordinary inputs
\begin{document}
\begin{table}[ht!]
\caption{caption here} \label{tab:tab1}
\centering
\begin{tabular}{@{}lSSSS@{}}
\toprule
& \multicolumn{4}{c}{Title here} \\
\cmidrule{2-5}
& \multicolumn{2}{c}{[AA]} & \multicolumn{2}{c@{}}{[BB]} \\
\midrule
$var_{12}$ & 1.3723 & {(}4.3646{)} & 1.5045 &  {(}8.9111{)}\\
$var_{13}$ & 1.7343 & {(}8.4365{)} & 1.8445 & {(}10.8888{)}\\
\bottomrule
\end{tabular}
\end{table}
\end{document}

在此处输入图片描述

相关内容