代码
% 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}
将产生:
有什么可行的方法可以使右下方表格单元格的内容垂直居中?
- 我尝试将灰色行设为单行,并使用嵌套表格来显示多行内容。但是,
S
列类型不再将列内容在小数点处对齐。 - 还尝试通过将两个数据列分别拆分为三列(小数点在第二列)来伪造小数点对齐 - 这似乎是一种非常丑陋的方法。
- 最后的办法是在单元格中使用等宽字体,内容右对齐,并使
\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
。