LuaLaTeX: Calcular longitud en Lua

LuaLaTeX: Calcular longitud en Lua

Pido disculpas si esta es una pregunta para novatos, pero me resulta extremadamente difícil encontrar una solución a mi problema de Lua mediante búsquedas en línea y manuales de referencia.

Me gustaría calcular una longitud: dividir \linewidthpor \baselineskip, tomar floory finalmente multiplicar por \baselineskip. El resultado debe devolverse en formato pt.

Ya no logro ingresar \baselineskipa Lua de modo que pueda hacer un cálculo con él:

\documentclass{article}
\begin{document}
\begin{enumerate}
\item Linewidth works this way: \directlua{tex.sprint(tex.dimen['linewidth'] / 65536)tex.sprint('pt')}
\item and this way: \directlua{tex.sprint(tex.dimen.linewidth / 65536)tex.sprint('pt')}
\item \directlua{tex.sprint(tex.dimen['baselineskip'])}
\item \directlua{tex.print(tex.skip['baselineskip'].width)}
\item \directlua{tex.print(tex.skip['baselineskip'].stretch)}
\item \directlua{tex.sprint(tex.baselineskip)}
\end{enumerate}
\end{document}

Entonces las preguntas son: ¿Cómo entro \baselineskipa Lua y cómo puedo calcular y generar la longitud que describí anteriormente?

Si alguien conoce una guía "real" para principiantes de LuaLaTeX que también trata estos problemas, agradecería una pista. ¡Gracias!


Solución

Con la ayuda de las respuestas a continuación, la longitud anterior se puede calcular como:

\directlua{tex.sprint(math.floor(tex.dimen.linewidth / tex.baselineskip.width)
    * tex.baselineskip.width  / tex.sp('1pt') ..'pt')}

Respuesta1

Puede usarlo tex.baselineskipen Lua para obtener el salto de línea base, pero un salto es un objeto de datos de usuario de Lua (ya que tiene componentes de estiramiento y reducción, así como una longitud natural), por lo que no puede usarlo directamente en expresiones aritméticas de Lua en línea con/

\documentclass{article}

\begin{document}

\directlua{
print('baseline is '  ..tex.baselineskip.width)
}
\end{document}

produce salida terminal:

baseline is 786432

información relacionada