Take the 2-minute tour ×
TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. It's 100% free, no registration required.

I'm having a problem with the alignat environment. This code:

\begin{alignat*}{9}
&X_{12}&+X_{13}&       &       &       &       &       &       &        &=1 \\
&      & X_{13}&+X_{23}&       &       &-X_{35}&       &       &        &=0 \\
&X_{12}&       &-X_{23}&-X_{24}&-X_{25}&       &       &       &        &=0 \\
&      &       &       & X_{24}&       &       &-X_{45}&-X_{46}&        &=0 \\
&      &       &       &       & X_{25}&+X_{35}&+X_{45}&       &-X_{56} &=0 \\
&      &       &       &       &       &       &       & X_{46}&+X_{56} &=1 \\
\end{alignat*}

produces this matrix:

matrix image

I don't understand why the X_{25} doesn't align, when X_{13}, X_{24} and X_{46} does. Can anybody help me understand this, and even better, how to fix it.

share|improve this question
    
Welcome to TeX.sx! A tip: You can use backticks ` to mark your inline code –  Corentin Nov 12 '12 at 23:05
    
For understanding: align-type environments are for aligning equations which consist of a left and a right part, like this: left & right & next equation.... So the & signs you used have different meanings to the align environment, and your formula parts are interpreted, in turn, as left or right parts, and aligned accordingly (also note that every second operator has different spacing). –  Stephan Lehmke Nov 12 '12 at 23:13
1  
Related answer: aligning equals as well as plus signs –  Qrrbrbirlbel Nov 12 '12 at 23:15
add comment

3 Answers

The environment alignat is intended for aligning several equation systems on a line:

abc = def   ghi = jkl
  m = n       o = p

Therefore there are two aligments per system, the equal sign in the middle and inbetween two systems:

abc &= def & ghi &= jkl \\
m   &= n   &   o &= p \\

The part left from the equal sign is right justified, the part afterwards left justified. In your case you probably want right justification, thus you need two &&:

\documentclass{article}
\usepackage{amsmath}

\begin{document}
\begin{alignat*}{9}
X_{12}&&{}+X_{13}&&         &&         &&         &&         &&         &&         &&          &=1 \\
      && X_{13}  &&{}+X_{23}&&         &&         &&{}-X_{35}&&         &&         &&          &=0 \\
X_{12}&&         &&{}-X_{23}&&{}-X_{24}&&{}-X_{25}&&         &&         &&         &&          &=0 \\
      &&         &&         && X_{24}  &&         &&         &&{}-X_{45}&&{}-X_{46}&&          &=0 \\
      &&         &&         &&         && X_{25}  &&{}+X_{35}&&{}+X_{45}&&         &&{}-X_{56} &=0 \\
      &&         &&         &&         &&         &&         &&         && X_{46}  &&{}+X_{56} &=1 \\
\end{alignat*}

\end{document}

Result

At some places I have also added an empty math subformula {} in front of + or - right after &. This way TeX knows that + and - should be set as binary operators (between {} and X) and the spacing is better.

share|improve this answer
add comment

alignat builds alternatively right and left aligned columns; your X_{25} falls in an even numbered column.

Thus this is not the best way to typeset these equations, because the spacing around the operation signs is uneven; better using an array:

\documentclass{article}
\usepackage{amsmath}
\usepackage{array} % for extended syntax in array

\begin{document}
\begin{equation*}
\begin{array}{*{18}{@{}>{{}}l<{{}}@{}}}
X_{12}&+&X_{13}& &      & &      & &      & &      & &      & &      & &      &=1 \\
      & &X_{13}&+&X_{23}& &      & &      &-&X_{35}& &      & &      & &      &=0 \\
X_{12}& &      &-&X_{23}&-&X_{24}&-&X_{25}& &      & &      & &      & &      &=0 \\
      & &      & &      & &X_{24}& &      & &      &-&X_{45}&-&X_{46}& &      &=0 \\
      & &      & &      & &      & &X_{25}&+&X_{35}&+&X_{45}& &      &-&X_{56}&=0 \\
      & &      & &      & &      & &      & &      & &      & &X_{46}&+&X_{56}&=1 
\end{array}
\end{equation*}
\end{document}

I build 18 columns, each left aligned; each will become ${}#{}$\hfil, where # denotes the actual cell entry. So if the entry is an operation symbol, say +, ${}+{}$ will leave the correct spacing around +. In case it's X_{12} the empty groups do nothing.

enter image description here

share|improve this answer
add comment

$X_{25}$is left-aligned with $-X_{25}$, that's what you asked for in your environment. I suggest you add alignment tabs around each +and -symbol as well, to achieve the visual effect you want.

Please note that $X_{24}$ is correctly aligned, because that column is right-aligned. The rule in that environment is :

  • first column right-aligned
  • second column left-aligned
  • ...
  • fifth column (X_{24}) right-aligned, hence correct in your sense
  • sixth column (X_{25}) left-aligned
  • etc
share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.