为什么此表中的文本没有垂直居中?

为什么此表中的文本没有垂直居中?

我正在尝试让一些表格中的垂直间距不那么拥挤,我想通过增加行高并将文本垂直居中来实现这一点。下面的代码使用了第二个答案中的建议这个问题在换行符后添加“[XXpt]”,其中 xx 指定行高,以使其中一行更高。至于使文本垂直居中,我的理解是,下面行宽前面的“m”前缀应该可以做到这一点。

根据我的理解,下表的第一行应该很高,并且文本垂直居中,但只有顶部有文本时它才很高。有人能告诉我为什么以及如何修复它吗?

\documentclass{report}

\usepackage{supertabular}
\usepackage{hhline}
\usepackage{array}


\begin{document}

\begin{table}
\begin{center}
\begin{supertabular}{m{0.7059598in}m{0.45105985in}m{0.61285985in}m{0.02in}m{0.7573598in}m{1.0121598in}m{0.07535984in}m{0.45105985in}m{0.9045598in}}
\hhline{~--~--~--}
 &
\multicolumn{2}{m{1.0893197in}}{Shouldn't these} &
 &
\multicolumn{2}{m{1.907in}}{Headings be centered} &
 &
\multicolumn{2}{m{1.4343598in}}{Vertically?}\\ [40pt]
\hhline{~--~--~--}
Phantom & Mean & St. Dev. &  & Mean & St. Dev. & & Mean & 95\% CI\\\hline
Seroma 1 & 5.73 & 0.04 &  & 5.57 & 0.14 &  & 0.16 & [-0.06, 0.37]\\ [20pt]
Seroma 2 & 3.75 & 0.03 &  & 3.61 & 0.13 &  & 0.15 & [-0.08, 0.37]\\
\end{supertabular}
\end{center}
\end{table}

\end{document} 

答案1

姆韦

中心标题的解决方案是使用\multicolumn{2}{c}{text},而不是 m 列。对于垂直填充,请注意 booktabs 规则和命令 的效果,因此在大多数情况下\arraystretch可以避免使用和空列。使用也可以避免使用空列。还要注意,通常最好使用而不是因为前者不会在表格周围添加额外的垂直空间。对于宽表,我强烈建议阅读和包的手册。\\[Xpt]\cmidrule(rl){2-3}\centeringcentertabularxtabulary

\documentclass{report}
\usepackage{tabulary,booktabs,array,lipsum}
\renewcommand\arraystretch{1.2} % change as needed
\renewcommand\belowcaptionskip{1ex} % change as desired
\begin{document}
\lipsum[2]
\begin{table}
\caption{The caption}
\centering
\begin{tabulary}{\linewidth}{LCCCCCC}
\toprule
& \multicolumn{2}{c}{Multicolumns}  
& \multicolumn{2}{c}{Centered} 
& \multicolumn{2}{c}{Vertically}\\
\cmidrule(rl){2-3}\cmidrule(rl){4-5}\cmidrule(rl){6-7}
Phantom  & Mean & St. Dev. & Mean & St. Dev. & Mean & 95\% CI\\
\midrule
Seroma 1 & 5.73 & 0.04 & 5.57 & 0.14 & 0.16 & [-0.06, 0.37]\\ 
Seroma 2 & 3.75 & 0.03 & 3.61 & 0.13 & 0.15 & [-0.08, 0.37]\\
\bottomrule
\end{tabulary}
\end{table}
\end{document} 

相关内容