假设我不喜欢在等式中打印 + 符号的方式:有没有办法在不定义新命令的情况下改变它的外观?
更一般地说,是否有可能创建一个没有初始反斜杠的命令?
答案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 (在页面底部)。