(La)TeX 的两个标准发行版:MiKTeX 和 TeX Live。为了了解它们之间的区别,我搜索了这个网站,发现了各种不同之处,其中一些是
- MiKTeX 基于 Windows,而 TeX Live 则针对多种平台开发
- TeX Live 比 MiKTeX 更安全
- MiKTeX 不会冻结,并且始终有更新
现在,我想知道的是,在 TeX 的底层开发中,TeX Live 和 MiKTeX 的实现方式是否存在差异。深入来说,我想知道的是,
- TeX Live 和 MiKTeX 在算法实现上有什么不同吗
- 以上哪项在执行和优化方面是高效的
答案1
问题在于你在说什么,我会说(至少)有三个不同的层次:
- 引擎的实际程序代码(pdftex、luatex 等)
- TeX、MetaFont、MetaPost、字体、支持文件
- 基础设施-更新管理器等
关于第一项,即程序代码,我认为他们同意的程度超过 90%。以 pdftex 引擎为例:代码是独立开发的,并定期拉入 TeX Live 以及 MikTeX。实现换行、分页等的算法 100% 相同。改变的是使其在不同架构上编译的调整。话虽如此,我认为速度没有任何明显的差异。
至于第二项,支持文件,它们也是 99.99% 相同,因为我们都从 CTAN 中提取。
唯一真正的区别在于基础设施,即:集成到操作系统、更新管理器等等。这里 MikTeX 的 Windows GUI 可能看起来更好,或者集成得更好(我不知道,我只使用 TeX Live),因为他只针对 Windows,而我们有一个在所有平台上看起来都相同的 GUI。
我想补充一点是区别在于 updmap 文件、格式文件、树、texmf.cnf 文件的处理。这里我们采用了不同的方法和不同的脚本。但这些文件仅用于产生其他输入文件,然后由各种引擎进行评估。这意味着只有在安装/删除软件包时,这些事情才重要。
在我看来,底线是:从引擎算法上看,它们完全相同。从管理算法上看,它们完全不同 ;-)
希望有帮助
Norbert TeX 现场团队