Я пытаюсь создать связующий узел, который можно назначить внутреннему параметру tex.parfillskip
.
В Plain TeX связующее звено для \parfillskip
назначается как \parfillskip=0pt plus 1fil
. Выгрузка значений в Lua(TeX):
print("width: " .. tex.parfillskip.width)
print("stretch: " .. tex.parfillskip.stretch)
print("shrink: " .. tex.parfillskip.shrink)
print("stretch_order: " .. tex.parfillskip.stretch_order)
print("shrink_order: " .. tex.parfillskip.shrink_order)
приводит к такому выводу:
width: 0
stretch: 65536
shrink: 0
stretch_order: 2
shrink_order: 0
Итак, мои вопросы:
- Как преобразовать значение
1fil
вstretch
компонент спецификации клея. Это так же просто, как умножить на65536
(как это выглядит из дампа)? - Как определить значение
stretch_order
? Кажется, это немного произвольно. Значение выше —2
, ноstretch_order
значение дляtex.topskip
—0
. Как определить, что нужно поместить в этот компонент для спецификации клея.
решение1
LuaTeX ввел дополнительную степень бесконечного клея: вы можете иметь fi
, fil
, fill
и filll
. Так что настройки типа
\parfillskip=0pt plus 1pt
\parfillskip=0pt plus 1fi
\parfillskip=0pt plus 1fil
\parfillskip=0pt plus 1fill
\parfillskip=0pt plus 1filll
будут иметь порядки растяжения 0, 1, 2, 3, 4 соответственно.
Действительно
{\directlua{tex.setglue("parfillskip",65536,65536,65536,1,1)}\showthe\parfillskip}
остановлюсь на
> 1.0pt plus 1.0fi minus 1.0fi.
Единицы измерения указаны в баллах, поэтому, чтобы получить 1, <unit>
вам нужно 65536, что бы <unit>
вы ни выбрали из приведенных выше.