为什么添加 \hsize0pt 会创建额外的行?

为什么添加 \hsize0pt 会创建额外的行?

考虑以下测试:

\showboxbreadth=\maxdimen
\setbox0=\vbox{\hfuzz10000pt \hskip0pt a-b}
\showbox0
\setbox0=\vbox{\hsize0pt \hfuzz10000pt \hskip0pt a-b}
\showbox0
\end

第一个\showbox给出:

> \box0=
\vbox(6.94444+0.0)x469.75499
.\hbox(6.94444+0.0)x469.75499, glue set 435.86607fil
..\hbox(0.0+0.0)x20.0
..\glue 0.0
..\tenrm a
.......

第二个给出:

> \box0=
\vbox(24.0+0.0)x0.0
.\hbox(0.0+0.0)x0.0
..\hbox(0.0+0.0)x20.0
..\glue(\rightskip) 0.0
.\penalty 150
.\glue(\baselineskip) 7.69446
.\hbox(4.30554+0.0)x0.0
..\tenrm a
.......

因此,添加\hsize0pt将创建以下内容:

.\hbox(0.0+0.0)x0.0
..\hbox(0.0+0.0)x20.0
..\glue(\rightskip) 0.0
.\penalty 150
.\glue(\baselineskip) 7.69446

并且\glue 0.0(即\hskip0pt)消失了。为什么?

相关内容