我们如何替换数学符号?

我们如何替换数学符号?

我找到了一种定义数学符号的方法,如下所示:

\documentclass{article}

\makeatletter
\begingroup\lccode`~=`*
\lowercase{\endgroup\def~}{\times}
\mathcode`*="8000
\makeatother

\begin{document}
    $a*b$
\end{document}

在此处输入图片描述

问题是我必须指定一个出现在键盘“*”上的字母来替换“\times”(这意味着 ASCII 码在 0-255 范围内)。因为函数 \lccode 只接受该范围内的值。

如何定义任意数学符号并将其分配给相同的字符?例如:

\begingroup\lccode`~=`\times         % it doesn't work in this way
\lowercase{\endgroup\def~}{new\ \times}
\mathcode`\times="8000

换句话说,我们重新定义一个数学符号,其 mathcode 值超出了 ASCII 范围。因为我们可以这样做:

\lccode`~=`0
\lccode`~=`\_
\lccode`~=`\=
 ...

但不能与

\lccode`~=`\times
\lccode`~=`\star
...

答案1

我从@Henri Menke 那里找到了答案(谢谢)。我意识到我们应该使用 \lccode 来重新定义直接用单个符号输入的符号。对于数学代码超出范围的运算符(例如 \times、\div 等),我们可以使用以下方法重新定义它们:

\let <new command> <old command>
\renewcommand <old command> (<new reformation>)

相关内容