如何定义一个命令 \exponent 将 $\exponent^e$ 转换为 $a^eb^ec^e$?

如何定义一个命令 \exponent 将 $\exponent^e$ 转换为 $a^eb^ec^e$?

我试图定义一个命令$\exponent$,它会寻找下一个指数,并将这个指数的副本放在后面a,另一个放在后面b,最后一个放在后面c

$\exponent^e$将转变为$a^e b^e c^e$

如果可能的话,我希望$\exponent^e_f$$\exponent_f$能够生成$a^e_f b^e_f c^e_f$$a_f b_f e_f$

困难的部分是让$\exponent^\frac12$被 自动替换$a^\frac12 b^\frac12 c^\frac12$,但评论表明^\frac12在 TeX 中是被禁止的。

答案1

这个怎么样?

\documentclass[12pt]{article}

\usepackage{ifthen}

\newcommand{\exponent}[2]
    {%
    \ifthenelse{\equal{#1}{^}}%
    {a^{#2}b^{#2}c^{#2}}%
    {\ifthenelse{\equal{#1}{_}}%
    {a_{#2}b_{#2}c_{#2}}%
    {\message{## Warning: exponent command misused ##}#1#2}%
    }}

\begin{document}
Here is the exponent command: $\exponent^5=\exponent^2\exponent^3$.

Here is the subscript version: $\exponent_3=\exponent_4+\exponent_5$.

Here it is misused: $\exponent 3$

\end{document}

在此处输入图片描述

答案2

可以定义一个名为的宏,\supsub该宏接受两个参数 - 分别位于上标和下标中的重复材料。一个或另一个参数甚至两个参数都可以为空。

在此处输入图片描述

\documentclass{article}
% exploit the fact that \null is defined as '{}'
\newcommand{\supsub}[2]{ a \if#1\null\else^{#1}\fi \if#2\null\else_{#2}\fi
                         b \if#1\null\else^{#1}\fi \if#2\null\else_{#2}\fi
                         c \if#1\null\else^{#1}\fi \if#2\null\else_{#2}\fi }
\begin{document}
$\supsub{e}{}$, $\supsub{}{f}$, $\supsub{e}{f}$, and $\supsub{}{}$.

\medskip % just for this example
$\supsub{\frac12}{}$, $\supsub{1/2}{}$
\end{document}

相关内容