我正在使用一组命令来定义我的论文中经常出现的数学符号的抽象,例如:
\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}}