我正在使用 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 1
与short 2
底部对齐。
如果我将中间列的设置从 更改b{2cm}
为p{cm}
,则正如预期的那样,short 1
和short
2 都会对齐到顶部。
我想使其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}