如何在表格环境中使多行文本垂直居中?如果我输入
\documentclass[11pt]{amsart}
\usepackage{multirow}
\begin{document}
\begin{tabular}{ | p{1cm} | p{2cm} | p{3cm} |}
\hline
Brand & Model & Description \\
\hline
\multirow{2}{*}{Honda} & CRV & super nice car with four wheels \\
\cline{2-3}
& CRW & Car that doesn't even exist \\
\hline
\end{tabular}
\end{document}
我得到了下面的结果。如您所见,“Honda”这个名字在垂直方向上的位置不太好:它不在双行的中间。我想我明白这里发生了什么:我的表格的第二行和第三行已被垂直放大以适应第三列中的长描述;但看起来命令 \multirow 忽略了这一事实,并且仍然表现得好像这些行具有正常大小。
要怎样做才能将“本田”置于盒子的中央?
答案1
解决方案是\multirow
在最后一行输入命令,并使用负参数。我使用cellspace
包为行添加了一些垂直填充(因此我必须添加一个小的修正来定位多行单元格的内容):
\documentclass[11pt]{amsart}
\usepackage{multirow}
\usepackage{cellspace}
\setlength\cellspacetoplimit{3pt}
\setlength\cellspacebottomlimit{3pt}
\begin{document}
\begin{tabular}{ | p{1.2cm}| p{2cm} | S{p{3cm}}|}
\hline
Brand & Model & Description \\
\hline
& CRV & super nice car with four wheels \\
\cline{2-3}
\multirow{-2}{*}[2pt]{Honda} & CRW & Car that doesn't even exist \\
\hline
\end{tabular}
\end{document}