我正在尝试使用 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
c
或r
列的宽度是预先知道的,你可以使用
\begin{tabular}{| m{0.25\linewidth}| m{\dimexpr.75\linewidth-4\tabcolsep-3\arrayrulewidth\relax} |}