LuaTeX(C)

LuaTeX(C)

毫无疑问,TeX 的原始 Pascal/WEB 实现是一个杰作,我通过阅读源代码(既有复杂的也有复杂的)学到了很多东西,但它确实显示出了它的年代感。大多数代码处理诸如低级数据结构和内存管理之类的事情,而这些事情在具有良好库的更现代的语言中会简单得多或没有必要。

是否曾经努力用 Python 等现代语言重新实现 TeX,同时保持完全向后兼容性?

我曾经多次尝试过,并且一些进展,但如果存在其他工作我也很感兴趣。

答案1

有数百个部分的重新实施和没有人可以吃完!真的启动这样的项目很容易,但要完成它似乎真的是不可能的...是的,LuaTeX 可能不仅仅是一个开始,但此时它有很多错误。

答案2

我已经写了部分实现PHP以及Perl(目前这是一个无效链接,我会仔细查找并重新将其恢复以备后人使用)。它们绝不是完整的,并且是为特定目的而编写的。由于这些目的是从 LaTeX 转换为其他标记,因此我专注于扩展(TeX 的“嘴巴”)而不是其他部分。

Perl 中也有LaTeXML

答案3

我正在用 Haskell 重新实现:十六进制。目前除了处理非常简单的文件之外,它没有做太多事情,但它一直在进步。

答案4

LuaTeX(C)

如今(十多年后),LuaTeX 已完全转换为 C 并且相当稳定。

TeXifier(C++)

TexpadTeX/Texifier声称可以将 TeX 源代码完全转换为 C++。(尽管这个只有 C++ 版本)

(免责声明:我与 TexpadTeX 没有任何关联,也不是它的用户,只是为了补充完整而在这里发帖。)

Tectonic(C/C++/Rust 的混合)

主页:https://tectonic-typesetting.github.io/

https://tectonic-typesetting.github.io/en-US/contribute.html#working-on-the-source-code

由于历史原因,Tectonic 是用 C、C++ 和 Rust 的组合编写的。目标是最终将其完全转换为用 Rust 编写,但这将需要一段时间长的时间。

基于 XeTeX。(我很惊讶之前没有提到这一点。)

相关内容