我正在尝试创建以下命令。我想\exp
用一个接受输入和输出的命令替换\exp(#1)
。为了复制之前显示的内容,我尝试了以下
\let\EXP\relax
\DeclareRobustCommand{\EXP}{\exp}
\rewnewcommand{\exp}[1]{\EXP(#1)}
但是,编译时出现TeX capacity exceeded, sorry
错误。如果我不重新定义exp
,而是将其命名为 之类的名称expm
,则不会出现问题。但我更愿意重新定义它。我该如何解决这个问题?
答案1
你不应该这样做:我认为输入 没有任何\exp{3}
好处\exp(3)
,除非您想要做更多的事情,即增加调整括号大小的可能性。
这可以通过 来完成mathtools
。
\documentclass{article}
\usepackage{mathtools}
\DeclarePairedDelimiter{\paren}{(}{)}
\let\originalexp\exp
\renewcommand\exp{\originalexp\paren}
\begin{document}
\begin{equation*}
\exp{x}\quad\exp[\big]{x}\quad\exp*{\frac{\pi}{2}}
\end{equation*}
\end{document}
不过,我会避免这种情况,而是定义\expp
:
\documentclass{article}
\usepackage{mathtools}
\DeclarePairedDelimiter{\paren}{(}{)}
\newcommand\expp{\exp\paren}
\begin{document}
\begin{equation*}
\expp{x}\quad\expp[\big]{x}\quad\expp*{\frac{\pi}{2}}
\end{equation*}
\end{document}
你的定义出了什么问题?
一旦调用\exp{1}
,TeX 将会执行\EXP(1)
,哪个变成\exp(()1)
哪个变成\EXP(()1)
,哪个变成\exp(()()(1)
…