如何重新定义“加号”符号?

如何重新定义“加号”符号?

假设我不喜欢在等式中打印 + 符号的方式:有没有办法在不定义新命令的情况下改变它的外观?

更一般地说,是否有可能创建一个没有初始反斜杠的命令?

答案1

是的当然。

\documentclass{article}

\begingroup
\catcode`+=\active
\gdef+{\mathbin{\mathrm{blurb}}}
\endgroup
\AtBeginDocument{\mathcode`+="8000 }

\begin{document}
$x+y$
\end{document}

在此处输入图片描述

当然你可以对“数学活跃”想出更好的定义+;-)


一种更通用的方法,您还可以使用被“重新定义”的字符的等效物。

\documentclass{article}

\makeatletter
\newcommand{\mathactivedef}[3][]{%
  \begingroup\lccode`~=`#2\lowercase{\endgroup\def~}{#3}%
  \if\relax\detokenize{#1}\relax
  \else
    \@ifdefinable{#1}{\mathchardef#1=\mathcode`#2\relax}%
  \fi
  \AtBeginDocument{\mathcode`#2="8000 }%
}
\@onlypreamble{\mathactivedef}
\makeatother

\mathactivedef[\keptplus]{+}{\mathbin{(\mkern-2mu\keptplus\mkern-2mu)}}

\begin{document}

$x+y$

\end{document}

在可选参数中\mathactivedef设置可以在重新定义主体中使用的等效名称。

在此处输入图片描述

之前的“简介”(不保留 的含义+)将是

\mathactivedef{+}{\mathbin{blurb}}

答案2

我发现了一个非常棒的、更通用的答案 https://newbedev.com/make-characters-active-via-macro-in-math-mode (在页面底部)。

相关内容