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?


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.


Então ... seu comentário sobre macros - você está dizendo que o Python é tão bom quanto o Lisps em emitir Latex?
— Jó

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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.