我正在尝试重新定义二进制数学运算符,更具体地说,我想用 替换\geq
。\geqslant
据我从网站上的几个页面了解,您需要使用\mathbin
来获得正确的间距。但是,在一行中的文本太长的特殊情况下,间距仍然会有所不同。
重新定义的运算符 with 与原始二元运算符有何区别\mathbin
?如何解决这个问题?
以下是 MWE:
\documentclass{article}
\usepackage{amsmath}
\usepackage{amssymb}
\let\geq\relax
\newcommand\geq{\mathbin{ \geqslant }}
\begin{document}
Normally, the new command works: $a\geq b$ vs. $a\geqslant b$ and $X_{a\geq b}$ vs. $X_{a\geqslant b}$.\\
But $a\geqslant b$ if the text in the line is way too long, it gets all messed up $ABC_{mnopqr}$.\\
But $a{\geq} b$ if the text in the line is way too long, it gets all messed up $ABC_{mnopqr}$.\\
\end{document}
答案1
你需要\mathrel
,因为你想要一个关系符号,而\mathbin
对于像+
这样的符号则遵循不同的规则。
但是,\geqslant
已经被定义为关系符号,所以
\renewcommand{\geq}{\DOTSB\geqslant}
有效且容易得多。 用于\DOTSB
正确放置点的自动位置。 您还可以使用
\let\geq\geqslant
如果您对使用低级命令有信心。
请注意,$a{\geq}b$
符号会失去其类型并变成普通符号(因此周围没有空格)。