我试图定义一个命令$\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}