我正在尝试一些我认为简单的事情
\def\test{Hello}
\def\test2{Hello again}
\test
\test2
由于我无法控制命名,所以我需要做一些修改。
\catcode30 = 11
\catcode31 = 11
\catcode32 = 11
适用于 0 和 1,但不适用于 2
我也尝试过\catcode´1
等等,结果是一样的。
我得到一个缺失的数字,被视为零。
如果有人知道为什么或其他解决方案可以在定义的命名中包含数字,我们将不胜感激
答案1
对于原始问题:
数字 0、1、2 在 ASCII 中是 48、49、50(十进制),而不是 30、31、32(十六进制)。
\catcode`1
应该可以工作,但是不行\catcode´1
。保存号码
11
以供日后使用,或使用其他技巧来访问原始号码。例如\def\x{\catcode...} \x
无论如何,更改数字的类别代码通常不是一个好主意。