expl3 字符串中的 catcode

expl3 字符串中的 catcode

(忘记在哪里看到的但应该是一些官方文档):

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 @,与此根本没有直接关系。

相关内容