
У меня есть кусок клея ( \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