\vbox 和行之间的垂直间距

\vbox 和行之间的垂直间距

当我将文本放入其中\vbox\unvbox,行与行之间会有多余的空格。

为什么?

参见 MWE:

\documentclass{article}
\begin{document}
\newbox\titi
\newcommand{\toto}[1]{\setbox\titi=\vbox{#1}\unvbox\titi}
{\LARGE\toto{Lorem ipsum dolor amet. Sic transit gloria mundi. Fiat Lux. In principio erat verbum.}}

{\LARGE Lorem ipsum dolor amet. Sic transit gloria mundi. Fiat Lux. In principio erat verbum.}
\end{document}

答案1

代码

{\LARGE Lorem ipsum dolor amet. Sic transit gloria mundi. Fiat Lux. In principio erat verbum.}

后面跟着\end{document},它执行\par。但是,这是\par在 的效果\LARGE被撤消之后发生的,因此使用的 baselineskip 是 所适用的\normalsize(并且\lineskip机制开始发挥作用)。

在 中\vbox这不会发生,因为 的结尾\vbox有一个隐含的命令,该命令在仍然有效\par时发出。\LARGE

如果你试试

\documentclass{article}
\begin{document}
\newbox\titi
\newcommand{\toto}[1]{\setbox\titi=\vbox{#1}\unvbox\titi}
{\LARGE\toto{Lorem ipsum dolor amet. Sic transit gloria mundi. Fiat Lux. In principio erat verbum.}}

{\LARGE Lorem ipsum dolor amet. Sic transit gloria mundi. Fiat Lux. In principio erat verbum.\par}
\end{document}

您将获得相同的输出。

在此处输入图片描述

顺便说一下,TeX 在添加 时不会添加行间粘连\unvbox。因此

\documentclass{article}
\begin{document}
\newbox\titi
\newcommand{\toto}[1]{\setbox\titi=\vbox{#1}\unvbox\titi}
{\LARGE Lorem ipsum dolor amet. Sic transit gloria mundi. Fiat Lux. In principio erat verbum.\par}

{\LARGE\toto{Lorem ipsum dolor amet. Sic transit gloria mundi. Fiat Lux. In principio erat verbum.}}
\end{document}

你会得到

在此处输入图片描述

相关内容