(1)宏参数左侧或(2)宏参数直到组结束

(1)宏参数左侧或(2)宏参数直到组结束

这就是我想要实现的目标:

{ 2 \pow -(n+4) } --> {2^{-(n+4)}}

这是我所知道的方法:

\def\pow#1#2{{{#1}^{#2}}}

这就是我不喜欢它的地方:

\pow{2}{-(n+4)} is ugly to me.

现在,我知道普通的 TeX 可以做这样的事情,因为:

\over, \choose, \above

然而:

\show\over

“表明这些命令是内部的。”

我已经深入研究了 TeX 书(第 20 章),但没有看到参数如何向左的示例,即我想要类似以下内容:

\def #1\pow #2 {{#1}^{#2}}

然后我尝试了如下方法:

\def \pow #1 \} {^{#1}\}}

但是,这些都不起作用。是否可以定义 pow st

{ 2 \pow -(n+4) } --> {2^{-(n+4)}}

答案1

\newtoks \powtoks
\def \pow {\afterassignment\powhelp \powtoks=\bgroup }
\def \powhelp{^{\the\powtoks} \egroup }

相关内容