上标/下标能否比宏扩展绑定得更紧密?

上标/下标能否比宏扩展绑定得更紧密?

我所说的“更紧密地绑定”是指默认执行操作的顺序。

实验表明,如果\abab\cdcd则为。我希望它是\ab^\cd。当然,我可以通过定义到和到来实现这一点,但这并不总是一个可接受的解决方案;例如,如果是则实际上是,但如果是则为。事实上,如果是则在当前优先级下,会产生关于双上标的投诉,但更改优先级会使它变得很好。ab^cd{ab}^{cd}\ab{ab}\cd{cd}\cdc^d\cd_2c^d_2\cd{c^d}\cd_2{c^d}_2\cdc^d\ab^\cd{ab}^{c^d}

(注意:我试图展示最简单的情况;我实际使用的宏要复杂得多,在这些宏中引入括号比上面的简单情况要麻烦得多。特别是,它们是递归定义的,因此在外部引入新的括号实际上也会在内部的几个不方便的位置引入新的括号。)

答案1

您不能直接更改此行为,不行。但是,该breqn包会制作^_激活字符,这些字符的行为就像宏一样,接受“像正常情况一样”的参数,然后产生您想要的效果。因此,如果您愿意加载 breqn,那么这应该可以解决您的问题:

\documentclass{article}
\usepackage{amsmath,breqn}
\begin{document}
\def\ab{ab}\def\cd{cd}
$\ab^\cd$
\end{document}

答案2

另一个选择是在宏定义中添加一个额外的组。例如

\newcommand\ab{{ab}}
\newcommand\cd{{cd}}

然而,根据实际用途,可能不需要添加额外的组。

相关内容