最近我遇到了一个随机问题dblfnote
,TeX 告诉我它正在尝试执行\@nil
,这是未定义的。
现在,我做了研究,发现source2e
它\@nil
通常用作列表宏中的分隔符。这正是dblfnote
它的用途。
有什么原因我不能定义\@nil
为完全空白吗token
?比如
\makeatletter\def\@nil{}\makeatother
它永远不应该被执行,那么定义它有什么坏处吗?至少作为临时解决办法?
答案1
大多数用途\@nil
只是用作\@nil
宏参数分隔符,因此定义是什么并不重要,但是这是故意地未定义。如果您有代码试图执行,\@nil
那么之前会有一个错误,并且永远不应该被评估的代码正在被评估。将其定义为某个东西只会掩盖其他地方的问题。