tabularx 环境中的垂直对齐

tabularx 环境中的垂直对齐

我正在使用 tabularx 环境,在 MWE 中我有三列。第一列包含短文本,第二列包含长文本,第三列再次包含短文本。

\documentclass{article}    
\usepackage{tabularx}

\begin{document}

\begin{tabularx}{6cm}{|p{2cm}|b{2cm}|p{2cm}|} 
short 1 & long text spanning more than one row & short 2 \\
\end{tabularx}

\end{document}

正如预期的那样,结果是和都short 1short 2底部对齐。

在此处输入图片描述

如果我将中间列的设置从 更改b{2cm}p{cm},则正如预期的那样,short 1short2 都会对齐到顶部。

我想使其short 1与顶部对齐和short 2与底部对齐。我该如何实现?

提前致谢。

编辑:

按照@NBur 的建议,他指出这个帖子,我实施了以下变更:

\documentclass{article}    
\usepackage{tabularx}

\newcolumntype{C}{b{2cm}<{\vfill}}

\begin{document}


\begin{tabularx}{6cm}{|C|b{2cm}|p{2cm}|} 
short 1 & long text spanning more than one row & short 2 \\
\end{tabularx}

\end{document}

不幸的是,此代码仅显示一行文本,而不是一直显示到单元格的顶部,因此它不起作用。

在此处输入图片描述

还有其他建议吗?

答案1

使用新包来实现这一点非常简单tabularray

\documentclass{article}    
\usepackage{tabularray}
\begin{document}
\begin{tblr}{|Q[h,2cm]|Q[m,2cm]|Q[f,2cm]|}
short 1 & long text spanning more than one row & short 2 \\
\end{tblr}

\vspace{1cm}
And if you like the second column be justified:
\vspace{1cm}

\begin{tblr}{|Q[h,2cm]|Q[m,2cm,halign=j]|Q[f,2cm]|}
short 1 & long text spanning more than one row & short 2 \\
\end{tblr}

\end{document}

在此处输入图片描述

相关内容