在文档中途重新定义符号

在文档中途重新定义符号

我正在尝试使用一个命令( )在同一个文档中\phi绘制两个不同的符号(\varphi和常规)。\phi

我已经尝试过以下方法:

\documentclass{article}
\usepackage{amsmath, amssymb}

\newcommand{\oldphi}{\phi}
\renewcommand{\phi}{\varphi}

\begin{document}
$\phi$
\renewcommand{\phi}{\oldphi}
$\phi$
\end{document}

但这无法编译(使用 pdftex 或 TexMaker),它似乎陷入了循环并且无法创建 pdf,但我不知道为什么?

或者有更好的方法来实现这一点?

答案1

使用\let,它可以工作:

\documentclass{article}
\usepackage{amsmath, amssymb}

\let\oldphi=\phi
\let\phi=\varphi 

\begin{document}

$\phi$

\let\phi=\oldphi
$\phi$

\let\phi=\varphi 
$\phi$

\let\phi=\oldphi
$\phi$

\end{document} 

在此处输入图片描述

答案2

我已经自己解决了这个问题\let,因此将其发布出来以供后人参考。

\documentclass{article}
\usepackage{amsmath, amssymb}

\let\oldphi\phi
\let\phi\varphi

\begin{document}
$\phi$
\let\phi\oldphi
$\phi$
\end{document}

我的理解是,\newcommand{\x}{\y}只需将“ ”替换\a为“ \b”,即可形成循环,而\let\a\b实际上设置\a为的值\b,这样就解决了任何自引用问题。

相关内容