将 \hat 放在下标变量的第一个字符上

将 \hat 放在下标变量的第一个字符上

我正在使用一组命令来定义我的论文中经常出现的数学符号的抽象,例如:

\newcommand{\DNoise}{n_d}

这相当于一些失真噪音。这使我能够快速更改整个文档中的符号,只需更改一个地方,到目前为止已被证明是无价之宝。现在有另一个命令

\newcommand{\Est}[1]{\hat{#1}}

其目的是给另一个符号加上一个帽子,以表示它是估计的。将其用于单个符号是没问题的,但当将其用于带有下标的符号时,会发生以下情况:

问题

左边的结果由 获得\Est{\DNoise},右边的结果由\Est{n}_d获得,这是可行的,但需要打破整个文档中使用的模式。问题是是否有办法重新定义,\Est以便即使传递带有下标的变量也能产生左边的结果。

答案1

一种方法是

\documentclass{article}

\usepackage{amsmath}

\newcommand{\DNoise}{n_d}

\newcommand{\Est}[1]{\hat{#1}}
\newcommand{\Test}[1]{\expandafter\hat#1}    

\begin{document}

$ \DNoise, \Est{\DNoise}, \Test{\DNoise}$
\end{document}

这将产生此输出

输出

答案2

一种快捷而粗略的方法是将符号与下标分开

\newcommand{\Est}[2]{\hat{#1}_{#2}}

相关内容