据我所知,LaTeX 是一组基于底层 TeX 核心的 300 个左右原始命令构建的宏。TeXBook 讨论了诸如\it
和 之类的宏\sl
,但我无法在我的 LaTeX 文档 (pdflatex) 中使用它们。
那么,LaTeX2e 是不是真的保守延伸TeX,还是 TeX 也随着时间推移而更新,TeXBook 不再是可靠的来源?如果是后者,是否有一些新的文献描述了当今标准 LaTeX2e 可访问的 TeX 的最底层?
答案1
TeXbook记录了两个独立的东西:TeX 二进制文件提供的一组基元,以及 Knuth 在plain.tex
此基础上定义的宏。这些基元在 LaTeX2e 中可用(尽管有些基元被重命名,例如\end
保存为\@@end
),但 LaTeX 仅实现一些普通宏(并且不一定完全相同)。
在文档方面,Lamport 的书中描述了 LaTeX 的用户界面。对于程序员来说,clsguide
但没有“权威”的文档说明哪些部分latex.ltx
/primitives可以使用,哪些部分不能使用:人们必须通过实验来了解这一点。人们可以阅读source2e
了解 LaTeX2e 内核的完整细节。
值得注意的是,\it
和\sl
是用户级命令(没有@
符号),因此它们的状态很明确:它们不在 Lamport 的书中作为 LaTeX2e 文档语法的一部分,因此不应使用。如古斯塔沃·梅泽蒂 (Gustavo Mezzetti) 的回答,可使用NFSS机制进行字体选择。
从历史角度来看,LaTeX 最初是一个加载在纯文本上的文件,但对于长的时间:LaTeX 是一种单独的 TeX 格式,它有自己的方法。
答案2
如果问题是“可能我使用字体切换命令,如\it
或\sl
”,那么答案通常取决于您使用的文档类别。事实上,这些命令是不是由 LaTeX2e 内核定义,尽管有些类确实将它们定义为向后兼容工具;例如,article
类这样做,而scrartcl
类不这样做(除非您指定 - 现在已强烈弃用,因此隐藏 - 选项enabledeprecatedfontcommands
)。但请注意,我们在这里所说的“向后兼容性”是指可追溯到 20 世纪 90 年代早期的代码使用,并且已被取代很多更好的设备称为新字体选择方案 (NFSS);NFSS 被纳入 LaTeX2e,并且显然在很大程度上更胜一筹,因为它允许逐一解决各个字体特征(系列、形状等)。
另一方面,如果问题是“应该我使用字体切换命令,如\it
或\sl
”,那么答案是一个大“不”,原因已在上段最后一句中解释过。