J'aime LaTeX
, mais je trouve son système macro et sa logique à la fois complexes et faibles. des langages tels que Schem / Lisp / Clojure sont très bons pour les macros. J'imagine le document entier écrit dans un langage familial lisp, qui, une fois exécuté, émettrait du code LaTeX et produirait un document. Cela a-t-il déjà été fait? Des liens?
9
*
suffixe. Lisp alet
etlet*
ainsi de suite, LaTeX a\section
et\section*
.Réponses:
Racket fait exactement cela dans Scribble , son système de documentation. Il y a maintenant des milliers de pages de documentation écrites dans ce système, et il est très vivant. Notez spécifiquement la syntaxe utilisée, ce qui rend beaucoup de telles commandes hybrides via-spitting-out-text très pratiques .
Notez, cependant, que si les macros sont utilisées comme d'habitude dans n'importe quel code Lisp / Scheme, elles n'en sont pas un point central. Les fonctions sont très bien pour la plupart des choses - elles arrivent à consommer du texte et à produire du texte. Il se trouve que LaTeX (ou plus généralement TeX) a choisi une sorte de stratégie d'évaluation basée sur des macros de bas niveau qui convient à certains cas.
la source