LaTeX:暂时重新定义引文宏

dmc*_*dmc 5 latex

我是乳胶新手,但似乎你可以暂时重新定义一些命令?我遇到的问题是通常引用的是(SMITH,2000).但有时候,我想让史密斯(2000)代替.无论如何我可以暂时重新定义它,然后在代码"块"之后再次使用标准版本?

小智 7

将本地定义括在大括号({})中.

\newcommand\foo{FOO!}
\foo
{\renewcommand\foo{BAR?}\foo\foo}
\foo
Run Code Online (Sandbox Code Playgroud)

这将产生类似于:

FOO!BAR?BAR? FOO!
Run Code Online (Sandbox Code Playgroud)

这也可以在宏定义中完成 - 只需确保添加额外的大括号:

\newcommand\newfoo{{\renewcommand\foo{BAR?}\foo}}
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助.