在寻找\dospecials
版本时expl3
,我偶然发现了预定义的序列\l_char_special_seq
,文档中如此描述:
用于跟踪在文档级别处理逐字材料时哪些标记需要特殊处理,因为它们不属于类别信(类别代码 11) 或其他(catcode 12)。序列中的每个条目都由一个转义标记组成,例如
\\
反斜杠或\{
左括号。当转义标记被定义为一般文档用途时,应将其添加到序列中。
但是,代码中从未使用过此序列,因此我对其用途感到疑惑。(在写入文件时似乎expl3
有一个类似的序列。)\l_char_active_seq
的专用用例是什么\l_char_special_seq
?它是否应该与旧的结合使用\seq_map_inline:Nn
或使用类似的功能来代替旧的\dospecials
?
答案1
正如描述所说,该special
序列适用于非 catcode 11/12 的任何内容,而该active
序列仅适用于 catcode 13 的字符。
自从引入这些以来,我们已经重新设计了处理活动字符的某些方面。我们可能会删除其中一个或两个序列:这些想法可能l3cctab
会使它们过时。但是,目前还没有发生这种情况。
至于很多方面expl3
,它们都在那里供其他人使用和团队一样。我会使用它们仅有的带有序列映射。