Matrimonio de Lisp y LaTeX: ¿se ha hecho?

9

Me gusta LaTeX, pero encuentro que su sistema macro y su lógica son complejos y débiles. lenguajes como Schem / Lisp / Clojure son muy buenos en macros. Me imagino todo el documento escrito en un lenguaje familiar lisp, que, cuando se ejecuta, emitiría código LaTeX y produciría un documento. ¿Se ha hecho esto antes? Cualquier enlace?

Trabajo
fuente
2
Sí, una búsqueda rápida en Google revela LisX-Augmented TeX. Probablemente hay docenas de otros. El sistema macro LaTeX es realmente bastante poderoso, aunque no para los débiles de corazón. Puede crear el suyo, copiando el diseño de los paquetes XML-in-Lisp.
Macneil
2
Tenga en cuenta que también hay un intercambio de mensajes de texto
Robert Anton Reese
Por cierto, LaTeX rinde homenaje a Lisp llamando a versiones alternativas de operadores que hacen algo ligeramente diferente con un *sufijo. Lisp tiene lety let*así sucesivamente, LaTeX tiene \sectiony \section*.
Kaz

Respuestas:

13

Racket hace exactamente eso en Scribble , su sistema de documentación. Ahora hay miles de páginas de documentación escritas en este sistema, y ​​está muy vivo. Observe específicamente la sintaxis que se utiliza, lo que hace que muchos de estos comandos híbridos a través de escupir texto sean muy convenientes .

Sin embargo, tenga en cuenta que, si bien las macros se usan como de costumbre en cualquier código Lisp / Scheme, no son un punto central de esto. Las funciones están bien para la mayoría de las cosas: simplemente consumen texto y producen texto. LaTeX (o más generalmente TeX) ha elegido un tipo de estrategia de evaluación basada en macro de bajo nivel que se adapta a algunos casos.

Eli Barzilay
fuente
Entonces ... tu comentario sobre macros: ¿estás diciendo que Python es tan bueno como Lisps para emitir látex?
Trabajo
Bueno, IMO Lisps es mejor que Python debido a las macros (entre otras cosas), así que digamos que para emitir látex, Python no sufre ningún problema nuevo en comparación con lisps ...
Eli Barzilay
@Eli ¿Qué quieres decir con "nuevos problemas"?
Mark C
1
Mark C: en ambos casos (un Lisp o Python) un sistema como este está escribiendo código que genera (la) código tex. No hay una razón particular de que uno sea mejor que el otro, aparte de la afirmación habitual de que Lispers tendrá que su idioma es mejor y viceversa. En ese sentido, no hay nuevos problemas en ninguno de los lados.
Eli Barzilay
Oh, gracias por responder. Leí mal que "comparado con" significa que Lisps tiene problemas para hacer este trabajo. Por cierto, necesita una "@" para enviar una notificación. (Obtendrá uno porque esta es su respuesta.)
Mark C