为什么用 C 语言查找 TeX 源代码这么难?我知道完整的源代码包含在tex.web
和pdftex.web
文件中,但是没有办法将它们转换为纯 C 代码吗?
答案1
很难找到它们,因为它们根本不存在。TeX 是用 Pascal 编写的(Pascal 的众多版本之一),但源代码中穿插着 Knuth 和其他人作为“文学编程”项目的一部分设计的 Web 系统中代码的描述。
注释源位于tex.web
(和tex.ch
,一个补充文件,其中定义了针对特定操作系统的适配);可以tex.tex
通过运行获取文件
weave tex.web
然后使用tex
或编译该文件pdftex
。运行
tangle tex.web
产生tex.p
。
现代发行版使用辅助程序将 Pascal 代码翻译成 C 代码,但我认为 C 代码的可读性不是特别好。如果你有 TeX Live 发行版,你可以这样说
texdoc tex
这将打开一个带有注释的 Pascal 代码的 PDF 文件。
答案2
Y&Y TeX 的 C 源代码曾经是商业产品(Windows),现已作为免费软件发布。您可以从此处下载它http://code.google.com/p/yytex/