定义带索引符号的命令,与重音符号结合

定义带索引符号的命令,与重音符号结合

为了方便编写包含带下标符号的公式,我经常定义自定义命令。但是,将这些命令与重音符号组合会产生不愉快的结果。有没有办法定义这样的缩写,同时仍然获得“正确”的重音符号位置?例如,

\documentclass{article}

\newcommand{\ang}{\varphi_\mathrm{example}}
\begin{document}
$\ang$ is ok, but $\dot{\ang}$ is not. I'd rather obtain $\dot{\varphi}_\mathrm{example}$ without spelling it out. How?
\end{document}

答案1

数学重音在下一个数学原子上起作用。\dot不带参数,花括号会生成一个子公式,点会放在子公式上方。没有花括号\ang会展开,点会放在上面\varphi

\documentclass{article}

\newcommand{\ang}{\varphi_\mathrm{example}}

\begin{document}
\begin{tabular}{ll}
  \verb|$\dot{\ang}$| & $\dot{\ang}$ \\
  \verb|$\dot\ang$| & $\dot\ang$ \\
\end{tabular}
\end{document}

结果

更新:

如果包amsmath \dot和一些其他重音符被重新定义并捕获其基字符作为参数。那么上面的例子将不起作用。这个问题可以通过使用来解决\expandafter\ang展开一次。然后\dot看到定义文本的第一个标记(或标记组)\ang,即\varphi

\documentclass{article}

\usepackage{amsmath}

\newcommand{\ang}{\varphi_\mathrm{example}}

\begin{document}
\begin{tabular}{ll}
  \verb|$\dot{\ang}$| & $\dot{\ang}$ \\
  \verb|$\expandafter\dot\ang$| & $\expandafter\dot\ang$ \\
\end{tabular}
\end{document}

使用 amsmath 的示例

相关内容