e-TeX \hbox 到胶水大小

e-TeX \hbox 到胶水大小

我有一块(\hskip 2.4in plus 2fil具体来说)有弹性的胶水,我想制作一个\hbox长度相同的胶水,但\hbox to 2.4in plus 2fil不起作用。有没有办法实现类似的效果?

我想要使​​用这个的原因是让带有方框的 3 列格式更加灵活(尤其是对于不同大小的列)。我正在使用 pdfTeX,因此如果有帮助的话,我可以使用 e-TeX 的额外功能

答案1

您可以使用 pdftex 功能来记录粘合节点之前和之后的位置,然后(在第二次运行时)使用该信息构建所需大小的框。

这里第 1 段只有粘连,第 2 段有一个框,其中 Z...Z 设置为相同大小。

在此处输入图片描述

\newwrite\zz % easier in latex where this is set up already
\openin\zz=\jobname.aux
\ifeof\zz\else
\input \jobname.aux
\closein\zz
\fi
\immediate\openout\zz=\jobname.aux

1) zzz zz zz zz zz zz zz zz zzzz zz zz zz zz zz zz zz z
zzzz%
\hskip 2.4in plus 2fil
zzz zzzz zzz
zzz zz zz zz zz zz zz zz zzzz zz zz zz zz zz zz zz z
zzz zz zz zz zz zz zz zz zzzz zz zz zz zz zz zz zz z

2) zzz zz zz zz zz zz zz zz zzzz zz zz zz zz zz zz zz z
zzzz%
\ifx\zzA\undefined\else
\leavevmode\rlap{\hbox to \dimexpr \zzB sp -\zzA sp{Z\dotfill Z}}%
\pdfsavepos\write\zz{\gdef\string\zzA{\the\pdflastxpos}}%
\hskip 2.4in plus 2fil
\pdfsavepos\write\zz{\gdef\string\zzB{\the\pdflastxpos}}%
zzz zzzz zzz
zzz zz zz zz zz zz zz zz zzzz zz zz zz zz zz zz zz z
zzz zz zz zz zz zz zz zz zzzz zz zz zz zz zz zz zz z

\bye

相关内容