我想知道这是什么\nop
意思,它是如何工作的?我在 Google 上搜索过,但没有找到好的答案,例如,我找到了类似这样的答案:
\newcommand{\nop}[1]{}
在我的.tex
文件中,那么这是什么意思?
答案1
在您的示例中,\nop
被定义为接受单个参数但不对其执行任何操作。因此,\nop
字面意思是“执行no操作eration”,或者说“吞噬你的论点”。事实上,存在一个类似的核心宏\@gobble
(和朋友),它们的作用完全相同(来自latex.ltx
:
\long\def \@gobble #1{}
\long\def \@gobbletwo #1#2{}
\long\def \@gobblefour #1#2#3#4{}
第一个吞噬一个参数,使其\@gobble{<anything>}
扩展为没有什么。第二个吞噬两个参数,使其\@gobbletwo{<anything>}{<anything>}
扩展为没有什么, 等等。
这里的用例是什么?好吧,也许你定义一个宏,在边缘写一些内容,比如“待办事项”注释:
\newcommand{\mymacro}[1]{\marginpar{Do #1}}
现在,在后期制作中,您决定此操作不再有效/有用。因此,您可以使其\mymacro
表现得像\nop
什么也不做,这样您就可以保持代码原样:
\let\mymacro\nop
或者,在序言中的定义中,将其更改为无操作:
\newcommand{\mymacro}[1]{}