Casamento de Lisp e LaTeX - já foi feito?

9

Eu gosto LaTeX, mas acho o seu macro sistema e lógica complexos e fracos. idiomas como Schem / Lisp / Clojure são muito bons em macros. Eu imagino o documento inteiro escrito em uma linguagem familiar lisp, que, quando executada, emitia código LaTeX e produzia um documento. Isto já foi feito antes? Algum link?

Trabalho
fonte
2
Sim, uma rápida pesquisa no Google revela o TeX aumentado por Lisp. Provavelmente existem dezenas de outros. O sistema macro LaTeX é realmente bastante poderoso, embora não seja para os fracos de coração. Você pode criar o seu próprio, copiando o design de pacotes XML-in-Lisp.
Macneil
2
Observe que também há uma troca de pilha de
Robert Anton Reese
A propósito, o LaTeX presta homenagem ao Lisp chamando versões alternativas de operadores que fazem algo ligeiramente diferente com um *sufixo. O Lisp tem lete let*assim por diante, o LaTeX tem \sectione \section*.
Kaz

Respostas:

13

Racket faz exatamente isso no Scribble , seu sistema de documentação. Agora existem milhares de páginas de documentação escritas neste sistema e estão muito vivas. Observe especificamente a sintaxe usada, o que faz com que muitos desses comandos híbridos sejam muito convenientes .

Observe, no entanto, que, embora as macros sejam usadas normalmente em qualquer código Lisp / Scheme, elas não são um ponto central disso. As funções são boas para a maioria das coisas - elas consomem e produzem texto. O LaTeX (ou, mais geralmente, o TeX) escolheu um tipo de estratégia de avaliação baseada em macro de baixo nível que se encaixa em alguns casos.

Eli Barzilay
fonte
Então ... seu comentário sobre macros - você está dizendo que o Python é tão bom quanto o Lisps em emitir Latex?
Bem, IMO Lisps são melhores do que Python por causa de macros (entre outras coisas) - então vamos apenas dizer que para a emissão de látex, Python não sofre de quaisquer novos problemas em relação a lisps ...
Eli Barzilay
@ Eli O que você quer dizer com "novos problemas"?
Mark C
11
Marca C: nos dois casos (um Lisp ou Python), um sistema como este está escrevendo código que gera (la) código tex. Não existe uma razão específica para que um seja melhor que o outro, exceto a alegação usual de que os Lispers terão que seu idioma é melhor e vice-versa. Nesse sentido, não há novos problemas de nenhum dos lados.
Eli Barzilay
Oh, obrigado por responder. Eu interpretei mal que "comparado a" significa que os Lisps têm problemas para fazer esse trabalho. A propósito, você precisa de um "@" para enviar uma notificação. (Você vai ter um, porque esta é a sua resposta.)
Mark C