使用 ** 代替 ^

使用 ** 代替 ^

我习惯用 来**代替^

是否有可能以某种方式定义可以解释**为的宏^

我知道我可以写下来**并最终用它来替换它,^但是那个宏会更舒服。

几个月前我一直在寻找这个,我发现你可以重新定义上标的符号,但我发现我只能用一个符号重新定义它,而不能用两个符号重新定义它。

谢谢

答案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)这会导致灾难。

在罗马做到入乡随俗。

相关内容