Saltar al contenido

¿Cuáles son las ventajas de Lua sobre otros lenguajes de secuencias de comandos para una implementación de TeX?

Mantén la atención ya que en este enunciado encontrarás la contestación que buscas.Este post ha sido probado por nuestros expertos para asegurar la calidad y exactitud de nuestro contenido.

Solución:

He estado codificando “PythonTeX” desde mayo pasado y estoy planeando el primer lanzamiento público en algún momento entre el próximo fin de semana y principios de marzo. De hecho, planeo llamarlo PythonTeX, por analogía con PerlTeX y SageTeX.

Creé un paquete LaTeX y los scripts de Python que lo acompañan, que brindan la mayor parte de la funcionalidad de python.sty, SageTeX y SympyTeX, pero con énfasis en la velocidad y la facilidad de uso. Aquí hay un breve resumen de lo que traerá PythonTeX.

  • Persistencia entre comandos y entornos. Por ejemplo, cada ambiente beginpythoncode ... endpythoncode continúa donde lo dejó el último, por lo que todas las variables, funciones, etc. persisten. Opcionalmente, puede nombrar comandos y entornos, y luego solo hay persistencia entre comandos y entornos con el mismo nombre. Por ejemplo, beginpythoncode[name] ... endpythoncode solo comparte persistencia con otros comandos y entornos llamados name.

  • Inclusión automática de contenido impreso. Por ejemplo,

    beginpythoncode
    print(1+1)
    endpythoncode
    

    se reemplaza automáticamente por 2 en el documento compilado.

  • Velocidad. Cada conjunto de comandos y entornos con nombre se ejecuta en su propio proceso, utilizando el paquete de multiprocesamiento de Python. Además, cada conjunto tiene hash, por lo que el código solo se ejecuta cuando se cambia. Los resultados de ejecutar el código se guardan y se reutilizan cuando no se detectan cambios.

  • Composición tipográfica de código. Todo el código que se ejecuta también se puede escribir usando fancyvrb y sus componentes internos. Opcionalmente, el código se puede escribir utilizando Pygments, que es un paquete de Python que resalta la sintaxis (el paquete minted usa Pygments). Cuando se utiliza Pygments, se codifica todo el código y se guardan los resultados de la composición tipográfica, de modo que Pygments solo debe procesar el código modificado en ejecuciones posteriores. Esto ayuda a evitar que los pigmentos ralenticen las cosas.

  • Mensajes de error significativos. Todos los mensajes de error son analizados por código que determina la línea de su documento donde ocurrió el error (a diferencia de la línea del archivo *.py que realmente se ejecuta). Para que sepa exactamente dónde salieron mal las cosas en su documento.

  • Archivos mínimos. El código se limpia después de sí mismo, por lo que la cantidad de archivos permanentes creados por Python se mantiene al mínimo y todos los archivos temporales se eliminan después de cada ejecución.

Puedo publicar un enlace tan pronto como se publique PythonTeX. También lo enviaré a CTAN poco después del primer lanzamiento público.

Los desarrolladores de LuaTeX han comentado sobre su elección de Lua sobre otros lenguajes, incluido Python, en su página de inicio.

Incrustar el intérprete es una cosa, y aparentemente no es divertido con Python. Otra es hacer que las entrañas de TeX sean realmente visibles para el intérprete integrado. Si bien es probable que gran parte del código de comunicación se pueda adaptar de alguna manera de LuaTeX a PythonTeX, seguirá siendo mucho trabajo.

Un mejor enfoque puede ser hacer un poco de trampa y simplemente aprovechar el intérprete de LuaTeX. Hay un puente que ‘incrusta’ Python dentro de Lua llamado Lunatic Python, y tal vez también se pueda hacer que funcione con LuaTeX. Sin embargo, puede ser más fácil usar XML-RPC: Deje que LuaTeX genere un proceso de Python, que actúa como el servidor XML-RPC. Los comandos de LuaTeX pueden entonces hacer llamadas al proceso de Python. Característica adicional: una vez que esto se implementa en el lado de LuaTeX, se puede usar con cualquier otro lenguaje de secuencias de comandos, no solo con Python.

Mi opinión es: Lua como lenguaje se creó como un lenguaje incrustado y es muy adecuado para el trabajo. Ahora que con LuaTeX existe una implementación de TeX programable, hay pocas razones de principios para crear otra. Por supuesto, puede continuar y crear PythonTeX. Pero parece que la comunidad siente que esto no agregaría suficiente valor a LuaTeX para justificar el costo.

Reseñas y puntuaciones del artículo

Tienes la opción de sostener nuestro análisis fijando un comentario o valorándolo te damos la bienvenida.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *