expl3 中的 \l_char_special_seq 的用途是什么?

expl3 中的 \l_char_special_seq 的用途是什么?

在寻找\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,它们都在那里供其他人使用和团队一样。我会使用它们仅有的带有序列映射。

相关内容