# What's the best way to align binary operators to the right of a relation symbol?

I know that you're generally told to align binary operators to the right of a relation symbol like this (using {align*}):

\begin{align*}
x={}&a+b+c\\
&+d+e+f
\end{align*}


But would it look better (though be more error prone) to do something like this to get the + exactly flush with the a?

\begin{align*}
x={}&a+b+c\\
&{+}\: d+e+f
\end{align*}


(That is, use braces to turn the + into an ordinary symbol and add the medium space between the + and the d by hand.)

Edit: I'm trying to do exactly what's said in rule 3.3.5b, "Break at conjunctions and align to the right of the first verb", on page 46 of Mathematics into Type (updated edition, 1999).

-
I'd never want to align the + to the a. :) – egreg Sep 14 '12 at 17:39
I know a lot of folks would consider this a hack, but I'd use \phantom in the following way \begin{align*} x&=a+b+c\&\phantom{ {}=a}+d+e+f \end{align*} which looks like this – cmhughes Sep 14 '12 at 17:59

First I want to summarize and discuss the variants.

\begin{align*}
x={}&a+b+c\\
&+d+e+f
\end{align*}


TeX adds space around binary operators in display and text style, thus the + is moved to the right and destroys the alignment.

The variant of cmhughes aligns the + signs. Because the horizontal space matters only, the example uses \hphantom:

\begin{align*}
x={}&a+b+c\\
&\hphantom{a}+d+e+f
\end{align*}


The alignment on the first binary operator on the right side of the equation is a little arbitrary. Also a could be a huge summand moving the second line far to the right margin.

I agree with MSC that suppressing the white space before the plus sign makes sense. He removes the property of a binary operator of the plus sign and manually adds the space for the following operand:

\begin{align*}
x={}&a+b+c\\
&{+}\: d+e+f
\end{align*}


It can also be implemented the other way round by removing the space in front of the binary operator:

\begin{align*}
x={}&a+b+c\\
&\mskip-\medmuskip+ d+e+f
\end{align*}


This can also be implemented as macro:

\newcommand*{\leftbin}{%
\nonscript\mskip-\medmuskip
\mathbin
}

\begin{align*}
x={}&a+b+c\\
&\leftbin+d+e+f
\end{align*}


It can also be used as \leftbin{+}. The space is only added in text and display math styles. Therefore \nonscript is used (see comment of egreg). \mathbin ensures that the next math atom or sub formula is treated as binary operator.

-
Wouldn't \nonscript\mskip-\medmuskip be better than \mathchoice? – egreg Sep 14 '12 at 18:58
Thanks, shorter. – Heiko Oberdiek Sep 14 '12 at 19:18
Not a very frequently used primitive indeed. :) – egreg Sep 14 '12 at 19:21
@egreg The perfect one for this purpose. It seems that Knuth had similar problems. ;-) – Heiko Oberdiek Sep 14 '12 at 19:23

I like

\begin{align*}
x&=a+b+c\\
\end{align*}


-

This is an interesting topic. I always do:

\begin{align*}
x=&\ a+b+c\\
&+ d+e+f
\end{align*}


but I'm not sure if that has any downsides.

-