重新定义数学符号,如 \eta(使用 Ensuremath)

重新定义数学符号,如 \eta(使用 Ensuremath)

一个简单的问题:我想定义一个快捷方式,这样我就可以编写\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}}

相关内容