使用现有命令和通过 \DeclareMathOperator 使用其简写之间的不同空格

使用现有命令和通过 \DeclareMathOperator 使用其简写之间的不同空格

我发现使用现有命令本身和通过 \DeclareMathOperator 使用其简写会产生不同的空白。

\documentclass{article}
\usepackage{amsmath,amssymb}
\DeclareMathOperator{\inc}{\hookrightarrow}
\DeclareMathOperator{\les}{\leqslant}
\begin{document}

\noindent
$A \inc B$\\
$A \hookrightarrow B$\\
$A \les B$\\
$A \leqslant B$

\end{document}

结果如图:

在此处输入图片描述

问题 1:

这背后的原因是什么?

回答者史蒂文·B·塞格莱特斯

这是因为这些(原始)事物是\mathrel,而不是\mathop(将它们变成的东西\DeclareMathOperator)。

问题2:

如何缩写现有的命令?

回答者约翰·科米洛

尝试\let\inc=\hookrightarrow

详细解答埃格尔如下所示。

答案1

您应该使用\DeclareMathOperator与“sin”、“log”等行为类似的新符号。箭头或一般的关系符号遵循完全不同的规则。

现有命令的简单别名最好这样定义\newcommand

\newcommand{\inc}{\hookrightarrow}
\newcommand{\les}{\leqslant}

如果要完全替换标准\leq\geq倾斜的变体,则需要采用不同的方法:

\let\leq\leqslant \let\le\leq
\let\geq\geqslant \let\ge\geq

因此命令实际上被替换了。只需这样做\renewcommand{\leq}{\leqslant}就足够了,但您无法将其用作\le别名。

相关内容