在下面的代码中,我将一些内容放入lrbox
名为 的中mybox
。然后框的内容由 排版,其parbox
内部有三种垂直对齐模式 - c
、t
和b
。对于t
和c
,排版正常。对于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}