避免负号前的空格被视为 mathord

避免负号前的空格被视为 mathord

有时我们写a=b\qquad -c=-d

那么负号将被视为减号,您知道发生了什么:符号周围的空格是不正确的。

虽然可以用{-}c=-d或来完成\mathord{-}c=-d,但我认为可能有一个优雅的解决方案。

答案1

使用起来并不是很难{-}。不过,我很少需要a=b\qquad -c=-d在我的文档中使用。

事实上,当您使用 时a=b\qquad -c=-d,您可以使用:

$a=b$, $-c=-d$

或者

\begin{align*}
a&=b & -c&=-d
\end{align*}

答案2

问题是\qquad不考虑数学间距,所以就像你输入了 一样a=b-c=-d。要自动解决此问题,您可以重新定义\quad和 ,方法是在它们之前和之后\qquad添加。要使它们在文本模式下仍然可用,您需要使用 测试数学模式,从该情况下的标准开始:\mathclose{}\mathopen{}\ifmmode\relax

新的 quad 和 qquad 宏的效果

\documentclass{article}
\usepackage{amsmath}
\renewcommand{\quad}{\relax\ifmmode\mathclose{}\fi
                     \hskip 1em\relax
                     \ifmmode\mathopen{}\fi}
\renewcommand{\qquad}{\relax\ifmmode\mathclose{}\fi
                      \hskip 2em\relax
                      \ifmmode\mathopen{}\fi}
\begin{document}
\[a=b{,}\qquad -c=-d.\]
or
\[a=b \quad \text{and} \quad -c=-d.\]
\end{document}

相关内容