有人能帮我理解为什么在我在其中一行中使用 \makecell 并在其中使用换行符后,第一行中的项目垂直偏离中心吗?这是默认行为吗?
\begin{table}[htpb]
\caption{One-way ANOVA test between all three groups.}
\begin{tabular}{m{2.9cm}K{1.3cm}K{1.3cm}K{1.3cm}K{1.3cm}K{1.3cm}K{1.3cm}}
\Xhline{3\arrayrulewidth}
\makecell{Source of \\ variation} & \makecell{SS} & df & MS & F & \makecell{P \\ value} & F-crit \\
\Xhline{2\arrayrulewidth}
\makecell[l]{Between groups} & 6.012 & 2 & 3.006 & 0.779 & 0.474 & 3.555
\\
\makecell[l]{Within groups} & \makecell{69.440} & \makecell{18} & \makecell{3.858} & & & \\
\\
\makecell[l]{Total} & \makecell{75.452} & \makecell{20} & & & & \\
\Xhline{3\arrayrulewidth}
\end{tabular}
\end{table}
K:\newcolumntype{K}1{>{\centering\arraybackslash}m{#1}} (这个问题在定义这个简写之前也发生了)
编辑1:我已经阅读了 makecell 包的文档,例如,使用 \makecell*{} 实际上可以稍微改善垂直对齐,但我不禁认为这不是最佳解决方案。
编辑2:我确实意识到使用 Xhline 会将厚度向下推向下面的行并使其感觉更不合适,但即使不使用任何东西或使用 \toprule,它们仍然看起来略微偏离中心。
答案1
我认为没有必要猜测列宽,因为 TeX 本身就可以做到这一点。
\documentclass{article}
\usepackage{booktabs,makecell}
\usepackage{siunitx}
\begin{document}
\begin{table}[htpb]
\centering
\caption{One-way ANOVA test between all three groups.}
\begin{tabular*}{\textwidth}{
@{\extracolsep{\fill}}
l
S[table-format=2.3]
S[table-format=2.0]
S[table-format=1.3]
S[table-format=1.3]
S[table-format=1.3]
S[table-format=1.3]
@{}
}
\toprule
\makecell{Source of \\ variation} & {SS} & {df} & {MS} & {F} & {\makecell{P \\ value}} & {F-crit} \\
\midrule
Between groups & 6.012 & 2 & 3.006 & 0.779 & 0.474 & 3.555 \\
Within groups & 69.440 & 18 & 3.858 & & & \\
\midrule
Total & 75.452 & 20 & & & & \\
\bottomrule
\end{tabular*}
\end{table}
\end{document}
根据允许的文本宽度,您还可以避免拆分单元格。
\documentclass{article}
\usepackage{booktabs,makecell}
\usepackage{siunitx}
\begin{document}
\begin{table}[htpb]
\centering
\caption{One-way ANOVA test between all three groups.}
\begin{tabular*}{\textwidth}{
@{\extracolsep{\fill}}
l
S[table-format=2.3]
S[table-format=2.0]
S[table-format=1.3]
S[table-format=1.3]
S[table-format=1.3]
S[table-format=1.3]
@{}
}
\toprule
Source of variation & {SS} & {df} & {MS} & {F} & {P value} & {F-crit} \\
\midrule
Between groups & 6.012 & 2 & 3.006 & 0.779 & 0.474 & 3.555 \\
Within groups & 69.440 & 18 & 3.858 & & & \\
\midrule
Total & 75.452 & 20 & & & & \\
\bottomrule
\end{tabular*}
\end{table}
\end{document}