使用 TRIP.TEX 测试 TeXLive 2019 (MacTeX)

使用 TRIP.TEX 测试 TeXLive 2019 (MacTeX)

在浏览 Don Knuth 关于 TeX 的出版物时,我被引荐查看tripman.pdf我的 MacTeX 发行版上的文件。TeXnicians 可能知道,该文件解释了TRIP测试的目的及其使用方法,以及输入文件的源代码和正确的输出。我决定(愚蠢地?)亲自尝试一下这个测试,问题就从这里开始。

我有两个问题:

  1. 在附录 A 的步骤 2 中,我应该如何进行修改INITEX才能使参数按照那里指定的方式设置?我听说过“更改文件”可以修改weave、、tangle和的输出cweave,而ctangle不会更改原始WEBCWEB文件,但据我了解,此类文件无法修改可执行文件的行为UNIX无需修改 TeX 源代码, 如何才能做到这一点?
  2. 在步骤 4 中,运行的版本应该INITEX是未修改的版本还是步骤 2 中的修改版本?我假设,出于调试目的,应该使用修改后的版本,但我只是想确认一下。

如果您能提供任何有关进行此测试时可能遇到的挑战的进一步信息,我将不胜感激。我经常​​使用 LaTeX(虽然我承认自己不太熟练),最近开始阅读 Don Knuth 关于排版和排版的著作,可能需要一些帮助才能理解这些材料。

我的机器是 Mac,以 MacTeX 的形式运行 TeXLive 2019。如果缺少任何其他所需信息,请在评论中提出请求。

谢谢。


这是我第一次接触 TeX.SX,所以我的问题质量可能不太好。对于我在写这个问题的过程中可能犯下的任何错误,我深表歉意,我欢迎所有关于如何改进上述内容的建议。任何关于适当标记的建议都将不胜感激。请温柔一点。

答案1

的实现\TeX是在 中完成的tex.web。此文件是通用实现,必须针对操作系统或一般而言针对特定计算机和 Pascal 编译器进行定制。例如,必须更改文件名约定以及输入和输出过程以满足特定系统的规范,并且如果 Pascal 编译器不允许elsecase 语句中使用路径,则必须更改源中的几个位置。

因此,程序TANGLEWEAVE不仅仅读取单个 WEB文件,它们还可以处理此类文件的更改文件。因此,要进行编译,\TeX您需要包含适合您的机器的更改的tex.web和。tex.ch

要检查您的更改文件是否不会\TeX以导致您的实现不兼容的方式更改,即相同的 .tex 文件生成与其他\TeX实现不同的输出,一个条件是trip必须通过测试。它需要一个特殊版本的,INITEX其中某些编译时参数具有预定义值,以使测试的输出具有可比性。因此,要执行测试,trip您必须构建一个特殊版本的\TeX,这意味着您必须处理tex.web您的更改文件并使用您的 Pascal 编译器编译生成的 Pascal 输出。

测试程序中详细描述了本地更改文件的附加更改,并解释了测试步骤。必须将结果与默认系统生成的输出进行比较\TeX。这些结果也在测试程序中列出,并且它们可能会随着每次新的测试而变化 tex.web

您可以CTAN找到相关文件和来源:

(1)https://ctan.org/tex-archive/systems/knuth/dist/tex包含测试所需的tex.web 所有tripman.tex文件trip

(2)https://ctan.org/tex-archive/systems/knuth/dist/web包含源代码和TANGLE 手册;WEAVEWEB

(3)https://ctan.org/tex-archive/systems/knuth/local/tex/initex.ch 是一个未经测试且不完整的用于trip测试的变更文件示例。

(看https://ctan.org/tex-archive/systems/unix适用于不同 Pascal 编译器的完整系统;但请注意,我不建议使用这些系统。)

如果您下载 https://ctan.org/tex-archive/systems/knuth/dist/lib/webmac.tex您可以 (i) 运行weave tex.webweave tangle.web等,无需更改文件即可获得可处理的 *.tex 文件,plain tex以及 (ii) 了解通用程序。当然,您可以添加更改文件,然后看看会发生什么。

如果您下载 https://ctan.org/tex-archive/systems/texlive/Source/texlive-20190408-​​source.tar.xz 您可以找到包含此 texlive 系统的行程测试结果的目录。(当然,texk\web2c\triptrap您必须能够处理xz和 文件。)tar

相关内容