有哪些不太知名的类 TeX 格式?

有哪些不太知名的类 TeX 格式?

ConTeXt 和 LaTeX 是众所周知的,并且我知道有不同的引擎可以处理它们,例如 XeTeX、pdfTeX 或 LuaTeX。

但在这个问题讨论围绕 TeX、plain-TeX 和 initex 展开。有人能告诉我它们之间的区别吗?还有其他元包吗?什么是最低限度的 TeX(其他一切都基于它)?其中哪一个在功能集和错误方面“冻结”了。

答案1

我认为您主要想了解 IniTeX 和纯格式。TeX 二进制文件知道大约 300 个原语:实际在二进制文件中定义的内容。这包括您可能知道的一些内容(例如\let\def)和您可能不知道的其他内容(例如\output)。查看某个内容是否是原语的一个简单方法是\show:您只需再次获取名称即可。

> \let=\let.
l.1 \show\let

如果你以 IniTeX 模式 ( tex -ini) 启动 TeX,那么你只能得到这些。问题是这没什么用。没有加载字体,没有输出例程(因此你得到的是 'fallback' 转储\box255),等等。这些原语就是你构建一个可用的排版系统所需要的全部,但“需要进行一些汇编”。IniTeX 擅长的是创建格式:你只能在 IniTeX 模式下将 TeX 的内存转储到格式中。所以这就是 TeX 发行版在“幕后”用来生成 LaTeX 格式、纯 TeX 格式(见下文)等等的东西。

这给我们带来了纯 TeX 格式,通常简称为“纯”。这是一组最小的宏,ETC.,Knuth 编写它的目的是让 TeX 排版引擎能够生成一些可用的东西。它提供的功能不多,但远不止 300 个 iniTeX 原语。例如,它有一个输出例程,因此可以打印内容。Plain TeX 定义了很多有用的基础知识,例如常量和分配变量的方法。如果您tex在终端上输入,您将使用这种纯格式(除非您特别要求使用 IniTeX)。

LaTeX2e 使用大部分纯文本格式作为基础,因此您会发现一个源文件l2plain.dtx将大部分纯文本 TeX 复制到 LaTeX 中。它们之间存在一些差异(例如,LaTeX 的输出例程与纯文本 TeX 的输出例程非常不同)。从这个意义上讲,纯文本 TeX 是一个“基础”。如果您查看 LaTeX3 的工作,就会发现在实现上情况截然不同。但是,基本要求(设置变量、加载字体、进行输出、提供最少的宏支持)保持不变。实际上不可能删除纯文本 TeX 的某些部分并仍然执行任何有用的操作。

TeX 引擎本身和普通的 TeX 格式均由 Knuth 维护。Knuth 并未在其中添加任何新功能,但他确实修复了错误。后者是非常确实很罕见,所以如果你认为你找到了一个非常当然!pdfTeX、XeTeX 和 LuaTeX 等项目的原因之一就是为引擎添加新功能,而 TeX 本身不会这样做。

当然,随着时间的推移,也出现了其他格式。Knuth 的模型(如TeXbook) 的初衷是为特定目的而使用特定格式。LaTeX 和 ConTeXt 都采用了另一种方式:它们是通用格式,可用于多种用途。其他专用格式也存在(例如 CTAN),但这些格式从未真正流行起来。事实证明,拥有更通用的格式(LaTeX、ConTeXt 或带有自定义宏的纯文本)并选择使用哪些位比拥有多种格式并必须选择使用哪一种格式更容易。

答案2

该网站吞噬了我之前的回答,因此您错过了超链接,但其他一些鲜为人知的宏格式包括:

  • 棒糖
  • 埃普莱恩
  • 蓝色的

其中,我认为eplain是目前唯一一个正在使用和维护的。

2015 年更新: 最近一段时间,Vafa Khalighi复活的棒棒糖

答案3

首先,有两个宏包仍然有一些用户群:

  • amstex(美国数学学会使用的原始纯 TeX 格式)
  • texinfo一种非常专业且不同的 TeX 格式,用于排版来自 GNU 项目的信息页面。

然后,有几个主要具有历史意义的宏包

  • amslatex在创建 amsmath 包之前,有一种合并 amstex 和 latex 功能的特殊格式。
  • manmacDEKnuth 排版《计算机和排版》系列所采用的格式。
  • ilatex(又名国际版 LaTeX),LaTeX2.09 的一个分支,用于支持除英语以外的其他语言。

相关内容