表格:多行表格单元格列内的小数点对齐

表格:多行表格单元格列内的小数点对齐

代码

% arara: pdflatex

\documentclass{article}

\usepackage{siunitx}
\usepackage{booktabs}
\usepackage{multirow}

\usepackage[table]{xcolor}
\rowcolors{2}{gray!25}{white}

\begin{document}

\begin{table}[htb]
\begin{tabular}{lS[table-format=2.1]S[table-format=2.1]}
\toprule
Fruit &
  {column 2} &
  {column 3} \\
\midrule
Banana                      & 80        & 90        \\
                            & 59.2(2)   &           \\
\rowcolor{gray!25}          & 6.8(3)    & 9.2(16)   \\
\multirow{-3}{*}{Apple}     & 21.1(1)   & 22.4(15)  \\
\bottomrule
\end{tabular}
\end{table}

\end{document}

将产生:

在此处输入图片描述

有什么可行的方法可以使右下方表格单元格的内容垂直居中?

  1. 我尝试将灰色行设为单行,并使用嵌套表格来显示多行内容。但是,S列类型不再将列内容在小数点处对齐。
  2. 还尝试通过将两个数据列分别拆分为三列(小数点在第二列)来伪造小数点对齐 - 这似乎是一种非常丑陋的方法。
  3. 最后的办法是在单元格中使用等宽字体,内容右对齐,并使\phantom{...}所有内容在小数点处对齐......

然而,我认为一定存在更合理的方法。

答案1

感谢 David Carlisle 指出了原始问题中的建议 1。以下代码似乎可以解决问题:

% arara: pdflatex

\documentclass{article}

\usepackage{siunitx}
\usepackage{booktabs}
\usepackage{multirow}

\usepackage[table]{xcolor}
\rowcolors{2}{gray!25}{white}

\begin{document}

\begin{table}[htb]
\begin{tabular}{lS[table-format=2.1(2)]S[table-format=2.1(2)]}
\toprule
Fruit &
    {column 2} &
    {column 3} \\
\midrule
Banana & 
    80 &
    90 \\
Apple & 
    \begin{tabular}{S[table-format=2.1(2)]} 59.2(2) \\ 6.8(3) \\ 21.1(1) \end{tabular}  & 
    \begin{tabular}{S[table-format=2.1(2)]} 9.2(16) \\ 22.4(15) \end{tabular} \\
Pear & 
    \begin{tabular}{S[table-format=2.1(2)]} 8.1(19) \\ 88.8(18) \end{tabular} &
    \begin{tabular}{S[table-format=2.1(2)]} 3 \end{tabular} \\
\bottomrule
\end{tabular}
\end{table}

\end{document}

它将产生:

在此处输入图片描述

显然,经过几个小时的折腾,还是无法解决问题,需要有人告诉你“它一定有效”才能解决问题。我还要感谢 leandriis,他指出不确定性值应该在 的定义中得到解决table-format

相关内容