Lisp和LaTeX的婚姻-完成了吗?


9

我喜欢LaTeX,但是我发现它的宏系统和逻辑既复杂又薄弱。Schem / Lisp / Clojure等语言在宏方面非常擅长。我想象整个文档都是用Lisp家庭语言编写的,运行时会发出LaTeX代码并生成一个文档。以前做过吗?有链接吗?


2
是的,Google快速搜索显示了Lisp增强的TeX。可能还有几十个。LaTeX宏系统实际上是非常强大的,尽管并不是出于胆小。您可以构建自己的副本,复制XML-in-Lisp包的设计。
Macneil'7

2
注意也有一个tex stackexchange
Robert Anton Reese

顺便说一句,LaTeX通过调用*后缀稍有不同的替代版本的运算符来向Lisp致敬。Lisp具有letand let*,等等,LaTeX具有\sectionand \section*
卡兹(Kaz)2015年

Answers:


13

Racket正是在其文档系统Scribble中做到了这一点。现在,在此系统中编写了成千上万的文档页面,并且它非常活跃。请特别注意所使用的语法,这使许多这样的混合命令viaspitting-out-text 非常方便

但是请注意,尽管在任何Lisp / Scheme代码中都照常使用了宏,但它们并不是重点。函数在大多数情况下都很好-它们只是消耗文本并生成文本。LaTeX(或更常见的是TeX)恰好选择了一种适合某些情况的基于低级宏的评估策略。


所以...您对宏的评论-您是说Python在发射Latex方面与Lisps一样好吗?
Job

好吧,由于宏(除其他外),IMO Lisps比Python要好-因此,我们可以说,与发出lisps相比,Python发出乳胶时,没有任何新问题……
Eli

@Eli“新问题”是什么意思?
Mark C

1
Mark C:在两种情况下(Lisp或Python),类似的系统都在编写生成(la)tex代码的代码。没有一个理由会比通常认为Lispers的语言会更好,反之亦然的说法更胜一筹。从这个意义上讲,双方都没有新问题。
伊莱·巴兹利

哦,谢谢你的回答。我误认为“相比”意味着Lisps在完成这项工作时遇到了问题。顺便说一句,您需要一个“ @”来发送通知。(您会得到一个,因为这是您的答案。)
Mark C
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.