我已经在这个网站上检查过这篇文章: 表格中文本的垂直居中
我问的问题与这个问题非常相似:
我希望所有单元格都垂直居中。这可以通过使用
array
包和m{20em}
描述符来实现。我想给行添加额外的空间;也就是说,我希望行的高度大于默认值。这可以通过使用
\renewcommand{\arraystretch}{3}
或者
\setlength{\extrarowheight}{3em}
上述两个要求可以单独轻松满足。但是,如果我想要两种效果,就会出现问题。单元格不是垂直居中,整个表格看起来真的很尴尬!
为了发现问题,例如\extrarowheight
需要将设置为一个较大的值。3em
欢迎任何建议!
以下是一个例子:
\documentclass{article}
\usepackage{array}
\begin{document}
\setlength{\extrarowheight}{3em}
%without the above command, the table looks fine.
\begin{center}
\begin{tabular}{r m{6em}}
\hline
Item 0 & bla bla \\
\\
Item 1 & Long description of item 1 blaaaaaa blaaaaaaa blaaaaaaaa blaaaaaaaa blaaaaa blaaa blaaaaaaaaaa \\
\\
Item 2 & blaaaaaaaaaaaa blaaaaaaa blaaaaaaaaaa \\
\\
\hline
\end{tabular}
\end{center}
\end{document}
答案1
\documentclass{article}
\usepackage{calc,array}
\newcommand{\cellstart}{\rule{0pt}{\heightof{A}+2ex}}
\newcommand{\cellfinish}{\rule[-2ex]{0pt}{2ex}}
\begin{document}
\begin{center}
\begin{tabular}{r >{\cellstart}m{6em}<{\cellfinish}}
\hline
Item 0 & bla bla \\
\hline
Item 1 & Long description of item 1 blaaaaaa blaaaaaaa blaaaaaaaa blaaaaaaaa blaaaaa blaaa
blaaaaaaaaaa \\
\hline
Item 2 & blaaaaaaaaaaaa blaaaaaaa blaaaaaaaaaa \\
\hline
\end{tabular}
\end{center}
\end{document}
将其更改2ex
为适合您的。
然而,我发现,一般来说,这种垂直居中对表格的可读性没有帮助,特别是当第二列中的条目很长时。