我发现使用现有命令本身和通过 \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
别名。