Why does the second element on each line not align vertically? (z and x{im} in this case)

 & \text{minimize}   & z       &= \sum_{i} c_m &                   &     &                      \label{eq:cost}\\
 & \text{subject to} & x_{im}  &\leq 0 \,,     & \forall &  m, i \;&| \; & p_{ij}   = 1          \label{eq:const1}

migrated from stackoverflow.com Nov 20 '13 at 2:11

This question came from our site for professional and enthusiast programmers.

  • 2
    Do you by any change mean horizontal alignment? Vertically the second elements are on the height of their respective line. And if, what’s wrong with the alignment? Looks good to me (though I wouldn’t use that many alignment points). – Qrrbrbirlbel Nov 20 '13 at 2:44

This is one of thos cases where I think alignment at the relations (the = and the \le) is incorrect. It suggests a parallel between the two lines that is not really present. I would align everything to the left, and use alignat to avoid excessive space. Remember that both align and alignat alternate beween right and left alignment. Also note that I am putting the \forall clause in the same cell with the inequality because it is no really a separate condition. So here are two possibilities. In the first, alignment is at the left. In the second, alignment is at the first relation:

& \text{minimize}\quad   && z = \sum_{i} c_m  \\
& \text{subject to}\quad && x_{im} \leq 0 \,,\ \forall m, i \mid p_{ij} = 1
& \text{minimize}\quad   &      z &= \sum_{i} c_m  \\
& \text{subject to}\quad & x_{im} &\leq 0 \,,\ \forall m, i \mid p_{ij} = 1

I used \mid instead of \;|\; because it supplies its own spacing.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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