Estoy intentando crear un nodo adhesivo que pueda asignar al parámetro interno tex.parfillskip
.
En Plain TeX, el pegamento para \parfillskip
se asigna como \parfillskip=0pt plus 1fil
. Volviendo los valores en 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)
conduce a esta salida:
width: 0
stretch: 65536
shrink: 0
stretch_order: 2
shrink_order: 0
Entonces mis preguntas son:
- ¿Cómo se convierte un valor
1fil
alstretch
componente de la especificación del pegamento? ¿Es tan simple como multiplicar por65536
(como parece por el vertedero)? - ¿Cómo se determina el valor
stretch_order
? Parece un poco arbitrario. El valor anterior es2
, pero elstretch_order
valor detex.topskip
es0
. ¿Cómo se determina qué poner en ese componente para la especificación del pegamento?
Respuesta1
LuaTeX introdujo un grado adicional de pegamento infinito: puedes tener fi
, fil
y . Entonces configuraciones comofill
filll
\parfillskip=0pt plus 1pt
\parfillskip=0pt plus 1fi
\parfillskip=0pt plus 1fil
\parfillskip=0pt plus 1fill
\parfillskip=0pt plus 1filll
tendrá órdenes de estiramiento 0, 1, 2, 3, 4 respectivamente.
En efecto
{\directlua{tex.setglue("parfillskip",65536,65536,65536,1,1)}\showthe\parfillskip}
se detendrá con
> 1.0pt plus 1.0fi minus 1.0fi.
Las unidades están en puntos escalados, por lo que para obtener 1 <unit>
necesitas 65536, lo que <unit>
elijas entre los anteriores.