为什么 tikzlibrary 会更改某些字符的 catcode?

为什么 tikzlibrary 会更改某些字符的 catcode?

我正在尝试整理一个全年常用的考试和家庭作业问题库。多年来,我已经收集了相当多的问题,我认为有这样的东西会很好:

\loadhomeworkset{2.1.4.3}

我想看看它是如何\usetikzlibrary工作的。在大多数情况下,我相信我理解代码。但我不明白的是,为什么@|、的 catcode$会改变。这真的是 TikZ 的特别之处,还是我在构建强大的界面时应该注意的事情。

答案1

确实如此

  \catcode`\@=11
  \catcode`\|=12
  \catcode`\$=3

tex/generic/pgf/frontendlayer/tikz/tikz.code.tex

第一个只是 latex 的通常等价物, \makeatletter因此你可以@在命令名称中使用

后两个字符经常因为某种原因而被激活,在读取文件时将 catcode 规范化为其他字符可能只是简化了一些事情,我注意到例如 $ 通常出现在标题中,例如

\ProvidesPackageRCS[v\pgfversion] $Header: /cvsroot/pgf/pgf/generic/pgf/frontendlayer/tikz/tikz.code.tex,v 1.142 2013/12/13 15:11:58 tantau Exp $

如果分隔符处于活动状态,我不确定它用于分割 RCS/CVS 标头的代码是否$有效。

相关内容