为了好玩,我想将反斜杠的 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