我发现我更喜欢\varphi
并且\phi
通常更愿意使用\varphi
而不是。但是它比 需要\phi
多输入三个字符,这非常麻烦。所以我想交换这两个命令。我自己尝试了几种方法,但其中一种导致编译时出现无限循环,另一种导致接管我执行的所有命令。正确的做法是什么?\varphi
\phi
\varphi
\phi
答案1
请尝试以下操作:
$\phi\varphi$
\let\temp\phi
\let\phi\varphi
\let\varphi\temp
$\phi\varphi$
答案2
交换两个值的通常方法是使用临时命令名在交换时存储其中一个值,但如果没有特殊原因,您想避免使用额外的命令名,那么:
\documentclass{article}
\begin{document}
$\phi\varphi$
\expandafter\mathchardef\expandafter\varphi\number\expandafter\phi\expandafter\relax
\expandafter\mathchardef\expandafter\phi\number\varphi
$\phi\varphi$
\end{document}
答案3
对于非复杂宏,使用临时宏来交换定义就足够了。但是,如果宏(例如funcA
和funcB
)采用可选参数,则需要使用不同的方法letltxmacro
的宏\LetLtxMacro{<new macro>}{<old macro>}
:
\usepackage{letltxmacro}% http://ctan.org/pkg/letltxmacro
%...
\LetLtxMacro{\temp}{\funcA}
\LetLtxMacro{\funcA}{\funcB}
\LetLtxMacro{\funcB}{\temp}