为什么 AMS 文档类要合并 amsthm 而不是加载它?

为什么 AMS 文档类要合并 amsthm 而不是加载它?

为什么AMS 文档类别包含包裹amsthm,而不是像通常那样使用\RequirePackage加载机制加载它amsmathamsfonts文档类甚至“模拟包的加载amsthm”是为了“防止重复加载”!为什么这么复杂?

答案1

首先,ams 文档类最初是为了根据 ams 样式规范生成文档而创建的,并且只有在为 latex2e 实现(重新)之后,它们才被包含在“必需的” latex 补充中。定理在 ams 环境中具有特定的样式,因此直接合并定理的代码是合乎逻辑的。这样,文档类和特定定理支持之间共享的代码部分就不会发生可能的相互冲突,如果单独加载定理样式,则可能会发生冲突。

一些功能是针对amsthm和类单独定义的;一个例子是设置上下间距定理。其他一些功能旨在与协同工作;如果存在未加载的可能性,则amsmath必须在中以不同的方式定义这些功能。 ams 类的当前版本包含两者的代码,因为它保留了排除的能力,以支持使用现已过时的 ams 类版本准备的文档。下一次对类文件进行大修时,将考虑排除此功能,因为到那时,它已经过时了近 20 年,应该amsthmamsmathamsmath\documentstyle不是可供任何创建新文档的作者使用;为了允许(重新)处理旧文档,ams 类的“古董”版本将被存档,但不受支持。这将简化对类文件amsthm和代码中一些已知错误和缺陷的修复。

ams 类的代码文档amsthm包含在 tex live 中,可以使用 调用texdoc amsclass。如果文档文件已从您的安装中排除,则文件amsclass.pdf可以从在线 texdoc 档案中获取。

相关内容