表格环境中的 \multirow

表格环境中的 \multirow

如何在表格环境中使多行文本垂直居中?如果我输入

\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 忽略了这一事实,并且仍然表现得好像这些行具有正常大小。

要怎样做才能将“本田”置于盒子的中央?

enter image description here

答案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} 

enter image description here

相关内容