在Pure Rust中重写LaTeX

2020-12-07 13:50:35

如果您只想编译TeX文档,则可能应该单击进入Tectonic主网站。该页面主要针对对“内部构造”工作方式感兴趣的人们。

如果您对Tectonic作为软件工具感兴趣,则可能还需要查看:

tt.ente.ninja,它对arxiv.org语料库的子集和Rust工具Crater(一个@Mrmaxmeier的项目)运行Tectonic

Tectonic的大部分核心代码都来自XeTeX,我们致力于尽可能地跟踪并保持与上游的兼容性。但是,随着时间的推移,Tectonic项目的性质使得其源代码将与XeTeX的源代码有所不同。我们可以尽最大的努力来跟踪对XeTeX所做更改的语义,但是这些更改在源代码形式中的表达可能会随着时间的推移发生巨大变化。

在该存储库中,Git子模块reference_sources链接到“临时存储库”,该存储库跟踪我们用作参考的XeTeX源代码。特别是,子模块中引用代码的版本是最新代码,尽我们最大的努力,可以保证其语义以构造形式表示。您无需克隆reference_sources即可构建Tectonic(这很好,因为每个人总是对Git子模块的工作方式感到超级困惑!)。它只是为Git提供了一种方便的方式来跟踪我们在任何给定时间使用的确切参考代码。

此功能可使用Serdecrate实现(反序列化)。目前,这仅用于从TOML文件读取每个用户的配置。如果禁用此功能,则将忽略每个用户的配置文件。

此功能是可选的,因为它需要serde_derive板条箱,而该板条箱又使用了Rust的proc_macro功能。 proc_macro功能在Musl目标上不可用,因此如果要构建完全静态的Tectonicexecutable,必须将其关闭。