难道不是 \csname foo\endcsname = \foo 吗?

难道不是 \csname foo\endcsname = \foo 吗?

在 TEXbook 第 40 页,它说\csname TeX\endcsname本质上与 相同\TeX。但是,如果是这样,为什么\foo 下面没有定义?

% tex
This is TeX, Version 3.14159265 (TeX Live 2019) (preloaded format=tex)
**\def\csname foo\endcsname{bar}

*\message{\csname foo\endcsname}
bar
*\message{\foo}
! Undefined control sequence.
<*> \message{\foo
                }
?

答案1

\def\csname foo\endcsname{bar}

重新定义\csname,你想要

\expandafter\def\csname foo\endcsname{bar}

相关内容