什么是“TeX 的实现”

什么是“TeX 的实现”

MiKTex 网页, 这个已经写完了:

MiKTeX(发音为 mick-tech)是一款最新的TeX/LaTeX 的实现以及适用于 Windows (所有当前版本) 的相关程序。

本页还包含以下内容在您自己的计算机上安装 TeX、LaTeX 和 REVTeX

TeX 在任何地方都是一样的,但是实现 TeX对于不同的系统来说是不一样的,上面介绍的元素针对不同的平台进行了不同的打包。

通过谷歌,你可以找到更多,例如TeX++:面向对象的 TeX 实现

TeX++ 的 Github 代表正如 Bruno Le Floch 在评论中所建议的那样

我想知道什么是“TEX 的实现”。

我知道 PDF 是一种格式(或一种语言),而 PDF 阅读器是为了解析 PDF 文件而实现的。“TEX 的实现”与 PDF 和 PDF 阅读器类似吗?

那么现在,每个发行版(例如MikTeXTeXliveMacTeX(和...等))都有自己的“TeX 引擎”吗?还是我错了,它们都使用相同的 TeX 源代码,只是使用不同的编译器进行编译并针对不同的平台?

答案1

根据我的词典,“实施”的意思是

实施(决定、计划、协议等)

它来自拉丁语执行(履行),而“employ”也源于法语。

因此“TeX 的实现”就是使得 TeX(和连接软件)可以在特定机器上使用的东西。

“TeX 程序”是免费公开的,每个人都有权使用源代码来制作衍生作品。但有一个限制,即如果最终产品没有通过所谓的“trip 测试”,它就不能被称为“TeX”。

源代码中的程序什么也不做,需要做的是使其适应处理器架构和操作系统,以便可以编译并制作成可执行程序。首先,让我们简单一点,只考虑原始 Knuth 形式的 TeX。

需要准备一个“更改文件”,其中必须填写一些与机器相关的部分(例如,I/O 和对时间数据的访问)。然后可以编译 TeX(通常在首先将 Pascal 源代码翻译成 C 之后)并运行。

但是,TeX(可执行文件)本身几乎毫无用处。必须教会它如何访问重要部分,例如字体度量数据和输入文件。这通常是通过kpathsea在准备更改文件或编译过程中将其链接到一个由 Karl Berry 调用的库来完成的。这个库方便 TeX 访问文件系统,并在需要时运行辅助程序(例如,当字体度量数据不可用时调用 METAFONT)。这不是唯一的方法:KerTeX 项目使用了不同的库。

拥有良好的 TeX 还不够。还需要一个 DVI 预览器、一种生成字体所需位图的方法、一个打印机驱动程序、METAFONT。在现代系统上,DVI 预览器和打印机驱动程序将链接到使用 Type1 字体的库。

这还不是全部:如今,TeX 系统应该提供 pdfTeX、XeTeX 和 LuaTeX,它们的编译和打包并非易事,还要考虑到如何使完整的软件包在机器上使用。

在 TeX 诞生的最初几年,一些“标准软件包”就已经出现了。在过去,人们可以获得一盘磁带,其中包含针对某些主流架构的预打包 TeX 发行版:Unix(其某些变体)、Vax/VMS、IBM 大型机。当 PC 出现时,一些发行版以软盘形式提供,免费或商业:DOS 或 OS/2 的 emTeX、Mac OS 的 OzTeX、AtariTeX、AmigaTeX 属于“免费”或“共享软件”;PCTeX、Textures 和其他属于商业软件。

如今,TeX 和相关产品(即用于使用 TeX 或其变体的连接软件包)最常用的实现是“免费”的 TeX Live(基于 Unix 架构,但也适用于 Windows)和 MiKTeX(仅限 Windows;据我所知,已经宣布了 GNU/Linux 版本,但从未真正实现过)。

答案2

嗯,如今“引擎”的代码: tex、、、在各个发行版中大致相同。但是,其他程序、软件包等可能取决于发行版作者的选择 。pdftexluatexxetex

发行版是“TeX 和朋友”,因此不同发行版的“朋友”的选择可能不同:)

相关内容