原语/寄存器/宏/令牌之间有什么区别?

原语/寄存器/宏/令牌之间有什么区别?

我开始学习 LaTeX,这些词在问题和答案中出现很多。它们都意味着同一个东西还是不同的概念?

答案1

“原语”是 tex 系统定义的命令。例如,\hbox如果你问 tex 这是如何定义的

\show\hbox

你得到

> \hbox=\hbox.
l.1 \show\hbox
              
?

请注意,csname\hbox可以给出非原始定义。\def\hbox{abc}上述操作后将产生

> \hbox=macro:
->abc.
l.2 \show\hbox
              
? 

类似地,原始功能也可以被赋予其他名称。之后\let\qqqq\hbox\show\qqqq产生

> \qqqq=\hbox.
l.2 \show\qqqq
              
? 

寄存器是一个特定的存储位置,它们通过数字寻址,最初每种类型有 256 个,但 etex 将其扩展为 2^15(超过 32,000 个),luatex 再次扩展了它。因此,整数值可以存储在中\count50,长度(维度)可以存储在\dimen222中等。通常,像 latex 这样的格式提供分配例程,这样您就不必直接处理数字,例如,\newdimen\textwidth 访问\textwidthdimen 寄存器,接下来\newdimen将访问下一个。\show\textwidth产生(在 latex 中)

> \textwidth=\dimen116.
l.1 \show\textwidth
                   
?

宏是一个由\def以下命令定义的命令:扩展替换文本。它由 TeX 代码定义,不是 tex 程序源的一部分。\def\cmd{abc} \show\cmd生成后

> \cmd=macro:
->abc.
l.2 \show\cmd
             
? 

相关内容