parbox 内部垂直对齐“b”导致意外的垂直空白

parbox 内部垂直对齐“b”导致意外的垂直空白

在下面的代码中,我将一些内容放入lrbox名为 的中mybox。然后框的内容由 排版,其parbox内部有三种垂直对齐模式 - ctb。对于tc,排版正常。对于b,出现了意外的垂直空白。为什么?如何纠正?

梅威瑟:

\documentclass{article}
\parindent0pt

\begin{document}
\newbox{\mybox}
\begin{lrbox}{\mybox}\begin{minipage}{3in}
  aa\\bb\\cc\\dd
\end{minipage}\end{lrbox}

v-align=c: \fbox{\parbox[c][\dimexpr\ht\mybox+\dp\mybox][c]{3in}{\usebox\mybox}}\\
v-align=t: \fbox{\parbox[c][\dimexpr\ht\mybox+\dp\mybox][t]{3in}{\usebox\mybox}}\\
v-align=b: \fbox{\parbox[c][\dimexpr\ht\mybox+\dp\mybox][b]{3in}{\usebox\mybox}}
\end{document}

在此处输入图片描述

答案1

给出\minipage\hbox(22.65277+17.65277)x216.81深度几乎与高度一样深,因为其内容相对于“数学轴”垂直居中,略高于基线。

将其包裹在\parbox“顶部对齐”中可得到

\vbox(22.65277+17.65277)x216.81
.\hbox(22.65277+17.65277)x216.81
...

并且“中心对齐”给出

\vbox(22.65277+17.65277)x216.81
.\glue 0.0 plus 1.0fil minus 1.0fil
.\hbox(22.65277+17.65277)x216.81
...
.\glue 0.0 plus 1.0fil minus 1.0fil

但“底部对齐”给出了

\vbox(31.47916+26.47916)x216.81, glue set 17.65277fil
.\glue 0.0 plus 1.0fil minus 1.0fil
.\hbox(22.65277+17.65277)x216.81
...

这使得\vbox比其他情况更高更深。所需高度\dp\mybox = 17.65277pt大于给定高度,并且\parbox似乎将差异的一半添加到此情况下构造的盒子的每个高度和深度中。

这只是对盒子尺寸的分析,我不知道为什么\parbox会这样表现。

但如果您不使用,则可以避免此问题\minipage

\begin{lrbox}{\mybox}\vbox{\hsize=3in
  aa\\bb\\cc\\dd
}\end{lrbox}

相关内容