如何将 booktabs 包的 cmidrule 与 siunitx 正确结合?

如何将 booktabs 包的 cmidrule 与 siunitx 正确结合?

这篇文章我多次重写之后,现在我只想这样写:

  • 我该如何\cmidrule与 结合使用siunitx?这是否可取?

  • 我是不是在其他地方犯了错误?整个表格看起来太奇怪了。

我喜欢错误(值实际上是置信区间,但没关系)的解析方式。但总的来说,AAA、BBB 和 CCC 下面的规则,我就是搞不懂。我也不明白为什么 AAA 下面的 cmidrule 太靠左了?我会真的喜欢避免奇怪的规则长度,并且只要 vanilla 命令可以生成它就可以了。:(

现状图

在此处输入图片描述

table-number-alignment=right 的输出图片

在此处输入图片描述

平均能量损失

\documentclass[
a4paper
]{scrartcl}

\usepackage{
lmodern,
booktabs
}

\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}

\usepackage[
per-mode=fraction,
locale=DE,
separate-uncertainty=true,
retain-explicit-plus,
binary-units,
%table-number-alignment=right
]{siunitx}


\begin{document}
\begin{tabular}{lSSSS}
\toprule
{ValueA} & {VALUEb} & {AAA} & {BBB} & {CCC} \\
\cmidrule(lr){1-1}
\cmidrule(lr){2-2}
\cmidrule(lr){3-3}
\cmidrule(lr){4-4}
\cmidrule(lr){5-5}
20 & 10 & -95,57(7) & 75,18 & -45,88 \\
& 20 & -142,72(12) & 89,20 & -58,62 \\
& 30 & -161,83(16) & -1118,51 & -75,19 \\
\bottomrule
\end{tabular}
\end{document}

答案1

在我看来,加入减号table-format=…并选择table-number-alignment=center(默认为center-decimal-marker)将得到一个可接受的结果:

\documentclass[a4paper]{scrartcl}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern,booktabs}

\usepackage[per-mode=fraction, locale=DE, separate-uncertainty=true, retain-explicit-plus, binary-units, table-number-alignment=center, ]{siunitx}

\begin{document}

\begin{tabular}{lcS[table-format=-3.2(2)]S[table-format=-4.2]S[table-format=-2.2]}%
\toprule
{ValueA} & {ValueB} & {AAA} & {BBB} & {CCC} \\
\cmidrule(lr){1-1}
\cmidrule(lr){2-2}
\cmidrule(lr){3-3}
\cmidrule(lr){4-4}
\cmidrule(lr){5-5}
20 & 10 & -95,57(7) & 75,18 & -45,88 \\
& 20 & -142,72(12) & 89,20 & -58,62 \\
& 30 & -161,83(16) & -1118,51 & -75,19 \\
\bottomrule
\end{tabular}

\end{document} 

在此处输入图片描述

答案2

一个S列需要改进,最常见的是指定它包含的数字的格式;否则它只会做一些通常不能很好地工作的启发式方法。

\documentclass[
  a4paper
]{scrartcl}

\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}

\usepackage{
  lmodern,
  booktabs,
}


\usepackage[
  per-mode=fraction,
  locale=DE,
  separate-uncertainty=true,
  retain-explicit-plus,
  binary-units,
  %table-number-alignment=right,
]{siunitx}


\begin{document}

\begin{tabular}{
  l
  S[table-format=2.0]
  S[table-format=-3.2(2)]
  S[table-format=-4.2]
  S[table-format=-2.2]
}
\toprule
{ValueA} & {VALUEb} & {AAA} & {BBB} & {CCC} \\
\cmidrule(lr){1-1}
\cmidrule(lr){2-2}
\cmidrule(lr){3-3}
\cmidrule(lr){4-4}
\cmidrule(lr){5-5}
20 & 10 &   -95,57(7) &    75,18 & -45,88 \\
   & 20 & -142,72(12) &    89,20 & -58,62 \\
   & 30 & -161,83(16) & -1118,51 & -75,19 \\
\bottomrule
\end{tabular}

\end{document}

注意第 3 列中的不确定性。如果您不指定,则不会显示不确定性。

在此处输入图片描述

使用S初步版本,并在您知道数据确定时对其进行微调。

相关内容