如何将控制序列“\let”扩展为一个字符?

如何将控制序列“\let”扩展为一个字符?

考虑以下:

\let\1=X
\edef\2{\1}
\show\1 \show\2

结果是

> \1=the letter X.

> \2=macro:
->\1.

是否可以“扩展” \1so 的含义,使其\2仅包含X?我能想到的唯一解决方案是使用\meaningon\1并删除前缀,但这似乎不太优雅。

(上下文:我正在编写一个扫描函数,它会提前查看下一个标记,然后将其添加到临时变量或终止扫描。但是,如果不先扩展它,就无法将其添加到临时变量中!但这不是我关心的上下文,因为我可以用另一种方式进行循环;我对这个特定问题很感兴趣。)

答案1

您无法扩展已使用定义的标记\let(除非我们正在讨论\let另一个宏)。正如您所说,\meaning这是唯一可行的方法。如果这不是答案,请原谅!

相关内容