命令名称开头的“@”是什么意思?

命令名称开头的“@”是什么意思?

这个问题的答案提到诸如\@author和 之类的命令\@director,latex.ltx 中充满了这些命令。但是,当我\@author在文档中使用时,它只输出单词“author”。@命令名称中的 是什么意思?

答案1

在命令名称的开头@是实现私有命名空间,即定义对用户隐藏的命令。这样用户就无法无意间修改它们。这是一种安全带。

命令的标识符(\字符后的文本)必须是字母序列。TeX 对于哪个字符是字母或不是字母的判断由以下表格定义:猫代码,可以在运行时重新配置。

许多软件包发现定义私人的用户无法轻易访问宏,从而防止用户无意中修改或使用它们。这是通过 catcode 以以下方式实现的:

  1. 排列得以便有@一个字母的 catcode。
  2. @定义私有宏,其名称中包含字母。
  3. 整理得@不再有一个信件的目录代码了。

当用户代码在步骤 3 之后控制执行流程时,它就不会无意中与@名称中带有 的宏进行交互。

相关内容