\pbox 垂直对齐

\pbox 垂直对齐

这是怎么回事?为什么TEXTs 没有对齐?

在此处输入图片描述

\documentclass{article}
\usepackage{pbox}

\begin{document}

\hrule
\pbox[c][20pt][b]{\textwidth}{TEXT\\ Short}
\pbox[c][20pt][b]{\textwidth}{TEXT\\ Long Text}
\pbox[c][20pt][b]{\textwidth}{TEXT\\ Short}
\pbox[c][20pt][b]{\textwidth}{TEXT\\ Long Text}
\hrule

\end{document}

答案1

gLong有深度,而 中Short没有字母有深度。这就是错位的原因。要纠正它,您可以添加\vphantom{g}Shortthe \smashLong或仅添加g)。

\documentclass{article}
\usepackage{pbox}

\begin{document}

\hrule
\pbox[c][20pt][b]{\textwidth}{TEXT\\ \vphantom{g}Short}%
\pbox[c][20pt][b]{\textwidth}{TEXT\\ Long Text}%
\pbox[c][20pt][b]{\textwidth}{TEXT\\ \vphantom{g}Short}%
\pbox[c][20pt][b]{\textwidth}{TEXT\\ Long Text}%
\hrule
%
\bigskip
%
\hrule
\pbox[c][20pt][b]{\textwidth}{TEXT\\ Short}%
\pbox[c][20pt][b]{\textwidth}{TEXT\\ \smash{Long} Text}%
\pbox[c][20pt][b]{\textwidth}{TEXT\\ Short}%
\pbox[c][20pt][b]{\textwidth}{TEXT\\ \smash{Long} Text}%
\hrule

\end{document}

在此处输入图片描述

答案2

如果您想自动忽略最后一行的深度,您可以使用包varwidth和基于它的自定义命令:

\documentclass{article}
\usepackage{varwidth}

\newcommand{\spbox}{} % check whether it's already defined    
\def\spbox#1#{\def\spboxtemp{#1}\spboxaux}% absorb the possible optional arguments
\newcommand\spboxaux[2]{%
  \begingroup
  \expandafter\varwidth\spboxtemp{#1}#2\par\kern-\prevdepth\endvarwidth
  \endgroup}

\begin{document}

\hrule
\spbox[c][20pt][b]{\textwidth}{TEXT\\ Short}
\spbox[c][20pt][b]{\textwidth}{TEXT\\ Long Text}
\spbox[c][20pt][b]{\textwidth}{TEXT\\ Short}
\spbox[c][20pt][b]{\textwidth}{TEXT\\ Long Text}
\hrule

\end{document}

在此处输入图片描述

相关内容