To Avoid the white space before negative sign to be treated as mathord

Some time we write a=b\qquad -c=-d

then the negative sign was treated as minus sign, you know what happened: the space arround the sign is incorrect.

Although it can be done with {-}c=-d or \mathord{-}c=-d, I think there might be an elegant solution.

-

It is not very difficult to use {-}. However, I seldom need to use a=b\qquad -c=-d in my document.

In fact, where you use a=b\qquad -c=-d, you may use:

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

or

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

The problem is that \qquad isn't taken into account for the math spacing, so it's as if you typed a=b-c=-d. To automatically solve this problem, you can redefine \quad and \qquad by adding a \mathclose{} before them and a \mathopen{} after. To make them still usable in text mode, you need to test math mode with \ifmmode, begining by the standard \relax in that case:

\documentclass{article}
\usepackage{amsmath}
\hskip 1em\relax
\ifmmode\mathopen{}\fi}
$a=b{,}\qquad -c=-d.$
$a=b \quad \text{and} \quad -c=-d.$