设置反斜杠的 catcode

设置反斜杠的 catcode

为了好玩,我想将反斜杠的 catcode 从 0 改为 12。但是,我似乎无法让它工作。这是我当前的 MWE,它给出了错误“不正确的字母常数”:

\catcode`\textbackslash=12

我知道\textbackslash不是正确的,但是,我似乎找不到程序反斜杠的命令。有人能帮忙吗?顺便说一句,我有向前slash 的 catcode 设置为 0,以防万一出现问题,我需要更改命令的字符。

答案1

\textbackslash仅用于排版。顾名思义,它是文本命令,因此它只打印当前字体中的字符\,除此之外没有任何其他用处。

您正在寻找:

\catcode`\\=12

原语的语法\catcode是,它将 ASCII 码为\catcode<number>=<catcode>的字符的 catcode 设置为。这意味着您还可以使用:<number><catcode>

\catcode 92=12

但是记住所有的 ASCII 代码会很麻烦,而且代码的可读性会大大降低。为了改进这一点,TeX 允许您使用“字母常量”指定数字。为此,应该<number>以 开头`,后跟要组成数字的字符标记。有效的字母常量是`a`*等。

唯一的问题是 catcode-0 字符(这里是反斜杠)不会产生标记,因此:

\catcode`\=12
\catcode`\ =12

执行您想要的操作(第一个更改 的 catcode =,第二个更改 的 catcode )。要指定这些字符,TeX 允许您使用反斜杠转义字符,因此要指定 alphabeitc 常量,`\您需要在其前面加上另一个反斜杠:`\\,因此:

\catcode`\\=12

相关内容