我习惯用 来**
代替^
。
是否有可能以某种方式定义可以解释**
为的宏^
?
我知道我可以写下来**
并最终用它来替换它,^
但是那个宏会更舒服。
几个月前我一直在寻找这个,我发现你可以重新定义上标的符号,但我发现我只能用一个符号重新定义它,而不能用两个符号重新定义它。
谢谢
答案1
你可以做到。不要。1
\documentclass{article}
\makeatletter
\begingroup\lccode`~=`* \lowercase{\endgroup\def~}{\wagner@starstar}
\newcommand{\wagner@starstar}{%
\@ifnextchar*{\wagner@superscript}{\wagner@asterisk}%
}
\newcommand{\wagner@superscript}[1]{^}
\mathchardef\wagner@asterisk=\mathcode`*
\AtBeginDocument{\mathcode`*="8000 }
\makeatother
\begin{document}
$A*B$
$a**2$
$\begin{array}{*{2}{c}}
a & b\\
c & d
\end{array}$
\end{document}
1确实,有几种语言使用**
来表示幂运算(但其他几种语言使用^
)。它们可能还有关于 解释的规则2**3**4
,而 TeX没有有,他们可能会接受2 ** 12
,这肯定会给 TeX 带来错误的结果。不是因为空格,在数学模式下空格基本上会被忽略,而是因为2^{12}
是正确的输入。你也可能容易输入这样的内容,2**(3+5)
这会导致灾难。
在罗马做到入乡随俗。