(忘记在哪里看到的但应该是一些官方文档):
TEX 字符串 (因此也是 expl3 字符串) 是一系列类别代码为 12 (“其他”) 的字符,但空格字符除外,其类别代码为 10 (“空格”)。
为什么 catcode 是 12 “other”,而不是 11 “letter”?这是否意味着A-Za-z
字符串中的所有“other”都是偶数?这与 和 有何\makeatletter
关系\makeatother
?
答案1
这是几个 tex 原语使用的约定,这使得它在 expl3 中很自然地得到遵循 。\string
,,,\jobname
\detokenize
\meaning
的标记列表都是 catcode 12 或 10。
\makeatletter
并且\makeatother
只是在 11 和 12 之间切换 catcode @
,与此根本没有直接关系。