一个简单的问题:我想定义一个快捷方式,这样我就可以编写\eta
而不必将其括在内$\eta$
。
然而,这种简单的方法是行不通的:
\documentclass{article}
\newcommand{\pt}{\ensuremath{p_T}}
% \renewcommand{\eta}{\ensuremath{\eta}} % hangs if I do it like this
\begin{document}
I have $\pt = x$, $\eta = y$.
Just like \pt, I can also refer to %\eta.
--- no I can't.
\end{document}
这种方法似乎会导致无限循环。最好的解决方法是什么?
答案1
不管有没有用,作为快捷方式,没有$...$
可以重新定义,但在使用 (复制)之前,\eta
必须存储 的含义。\eta
\let
我的陈述是一般性的,我并不建议以\eta
这种方式使用。
\documentclass{article}
\newcommand{\pt}{\ensuremath{p_T}}
\let\etaorig\eta%
\renewcommand{\eta}{\ensuremath{\etaorig}} % hangs if I do it like this
\begin{document}
I have $\pt = x$, $\eta = y$.
Just like \pt, I can also refer to \eta.
--- Yes I can!
\end{document}
答案2
以下是另一种不分配新名称的方法\etaorig
:
\edef\eta{\noexpand\ensuremath{\mathchar\the\eta\space}}