\nop 是什么意思以及如何使用它

\nop 是什么意思以及如何使用它

我想知道这是什么\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]{}

相关内容