如何垂直对齐多行列

如何垂直对齐多行列

我正在尝试使用 tabularx 包来建立一个表格(尽管使用的包对我来说并不重要)。

表格应横跨整行。我试图让两列垂直居中。

这对于第一列来说没问题,但第二列的对齐高度(在我看来)与第一列中的文本相同,这导致第二行文本位于单元格所需的“中间”下方(“中间”位于两行文本之间的某个位置)。奇怪的是,如果我缩短第二列中的文本以适合一行,则两列都无法正确对齐(或者可能是正确对齐的,但不是我想要的方式……)。

以下是我目前所拥有的:

\documentclass[a4paper,12pt,headsepline]{scrartcl}
\usepackage{tabularx}
\begin{document}
\begin{tabularx}{\linewidth}{| p{0.25\linewidth}| X |}  
\hline
\LaTeX & Is a document markup language and document preparation system for
the \TeX typesetting program.\\
\hline
\end{tabularx}
\end{document}

我知道表格中的垂直对齐经常被讨论,但到目前为止我找不到任何适合我的解决方案(包括定义新的列类型)。任何提示或建议都非常感谢,我已经在这个问题上纠结了很长时间了……

答案1

您可以尝试使用m{...}类型列(重新定义您可以更改使用的\tabularxcolumn默认类型):p{...}tabularx

\documentclass[a4paper,12pt,headsepline]{scrartcl}
\usepackage{tabularx}

\renewcommand{\tabularxcolumn}[1]{m{#1}}

\begin{document}

\noindent\begin{tabularx}{\linewidth}{| m{0.25\linewidth}| X |}  
\hline
\LaTeX & Is a document markup language and document preparation system for
the \TeX\ typesetting program.\\
\hline
\end{tabularx}

\end{document}

在此处输入图片描述

答案2

发布问题时,请始终提供完整的文档(如 Gonzalo 的回答),而不是片段。

使用m是获得垂直居中的正确答案,但另一个观察是,它可能只是你的小例子的产物,但在

\begin{tabularx}{\linewidth}{| p{0.25\linewidth}| X |}  

tabularx将多次设置表格以确定第二列的最佳列宽,但由于没有l cr列的宽度是预先知道的,你可以使用

 \begin{tabular}{| m{0.25\linewidth}| m{\dimexpr.75\linewidth-4\tabcolsep-3\arrayrulewidth\relax} |}

相关内容