¿Hay alguna manera de escribir −= como un símbolo en fórmulas?

¿Hay alguna manera de escribir −= como un símbolo en fórmulas?

En programación -=, +=y otros operadores similares son bastante populares. Pero no puedo escribir bien dicho operador en ecuaciones de Latex.

Por ejemplo, cuando uso x += \frac{\partial C}{\partial x}obtengo la siguiente fórmula:

ingrese la descripción de la imagen aquí

El problema es que +=están demasiado separados. ¿Existe algún operador de látex que permita escribirlos más juntos?

Respuesta1

Puedes usar

\[
x \mathrel{+}= \frac{\partial C}{\partial x}
\]

eso no agregará espacio entre los signos + y = y tratará todo el bloque como un símbolo de relación único.

Por supuesto, una definición funcionará mejor:

\newcommand{\pluseq}{\mathrel{+}=}
\newcommand{\minuseq}{\mathrel{-}=}

y

a \pluseq b \minuseq c

imprimiría

ingrese la descripción de la imagen aquí

Respuesta2

Los operadores +and -in +=and -=deben ser operadores relacionales como se ve en egregrespuesta, porque TeX no establece un espacio entre +/ -y =y toda la expresión +=/ -=se convierte en un símbolo relacional con respecto al espacio antes y después.

Esta respuesta intenta una solución automática. Los símbolos +y -se activan únicamente en el modo matemático. Entonces el personaje activo puede comprobar si va seguido del signo igual. Si es positivo, se utiliza la versión relacional de los operadores +y -; de lo contrario, se toma la versión binaria original.

Se necesita un poco de trabajo adicional para obtener compatibilidad con amsmath:

\documentclass{article}

\usepackage{amsmath}

% save original binary + and - as \binplus and \binminus
\mathchardef\binplus=\the\mathcode`+
\mathchardef\binminus=\the\mathcode`-

% define relational + and -
\mathchardef\relplus=\numexpr\the\binplus + "1000\relax
\mathchardef\relminus=\numexpr\the\binminus + "1000\relax

% define active + and -, which check for a following =
\makeatletter
\catcode`+=\active
\catcode`-=\active
\def+{\@ifnextchar=\relplus\binplus}
\def-{\@ifnextchar=\relminus\binminus}
\@makeother\+
\@makeother\-
\makeatother

% enable active + and - for math mode
\AtBeginDocument{%
  \mathcode`+="8000\relax
  \mathcode`-="8000\relax
}

% patch \newmcodes@ of package `amsopn.sty'
\usepackage{etoolbox}
\makeatletter
\@ifpackageloaded{amsopn}{%
  \patchcmd\newmcodes@{%
    \mathchardef\std@minus\mathcode`\-\relax
  }{%
    \let\std@minus\binminus
  }{}{\errmessage{\noexpand\newmcodes@ could not be patched}}%
}{}
\makeatother

\begin{document}
\[
   a += b + c \qquad x -= y - z \qquad \operatorname{foo-bar}
\]
\end{document}

Resultado

información relacionada