从其代码中检索命令名称

从其代码中检索命令名称

是否有一个技巧(一些未知的原语?)可以从组成该命令的代码内部获取命令的名称,类似于\thiscommandname或类似的东西?

答案1

与编译语言中的函数不同,宏没有附加作用域;它只是被其未求值的替换文本内联替换,并从替换的开头继续处理。因此,在替换结束时更改其扩展的命令会相当不自然,而 tex 不会以可访问的方式提供该信息,尽管它确实在错误消息的上下文行中显示了打开替换的堆栈。


\def\a{aaa\b ccc}
\def\b{xxx \q yyyy}
\def\q{ ggg \RROR}

\a

\bye

生产

! Undefined control sequence.
\q -> ggg \RROR 
                
\b ->xxx \q 
            yyyy
\a ->aaa\b 
           ccc
l.6 \a
      
? 

相关内容