当我将文本放入其中\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}
你会得到