在书的第 15 页TEXbook:使用 TEX 进行计算机排版的完整用户指南KNUTH 先生表示
TEX 手稿中使用的每种字体都与一个控制序列相关联;例如,本段中的 10 点字体称为 \tenrm,相应的 9 点字体称为 \ninerm。与 \tenrm 和 \ninerm 匹配的倾斜字体称为 \tensl 和 \ninesl。这些控制序列不是内置在 TEX 中的,也不是字体的实际名称;每当手稿中引入新字体时,TEX 用户只需编造方便的名称。此类控制序列用于更改字体。
如果为真,则\tenrm
不应直接在 TeX 中使用。但是,此代码可以直接运行,这表明是\tenrm
内置的,
\tenrm Ten-point is difference between from
\bye % end the document
答案1
你混淆了 TeX程序(或有时引擎),即实际进行排版的软件,使用 TeX格式(我们通常称之为“纯 TeX"),即引擎使用的一组宏。
当我tex
在提示符下输入时我得到
This is TeX, Version 3.141592653 (TeX Live 2023) (preloaded format=tex)
**
这意味着 TeX 程序已通过加载格式启动,即首先tex
加载文件。1 )程序本身没有任何预加载的字体,但格式文件有plain.tex
plain.tex
\font\tenrm=cmr10
在第 400 行。
latex
另一方面,如果我输入提示符
This is pdfTeX, Version 3.141592653-2.6-1.40.25 (TeX Live 2023) (preloaded format=latex)
restricted \write18 enabled.
**
这表明 pdfTeX 程序(它是一个不同的引擎比 TeX 更强大,但可以完成 TeX 能做的所有事情,再加上一些其他事情)正在以 格式运行latex
,这意味着latex.ltx
正在使用一组不同的宏(由 和几个其他文件定义)。当然,您可以将程序 pdfTeX 与纯 tex 格式一起使用:当您pdftex
在提示中键入时会发生什么。
诚然,TeX Book 并不总是 100% 透明地说明哪些命令是原始命令,哪些命令是格式中定义的宏。原始控制序列在索引中用星号标记。另一个很好的资源是https://www.tug.org/utilities/plain/cseq.html。
进一步阅读:
1)善意的谎言……格式以更高效的方式构建。