# Separate long math text under sum symbol into different lines?

I have the following equation, where there is a lot of stuff under the sum symbol:

$$d(\vec{x},\vec{y})= \sum_{Z_{xy}\in\vec{Z}_{xy},\forall x\in\vec{x},\forall y\in\vec{y}} f(Z_{xy})$$


In the resulting document, I find it kind of hard to read. Is there a way to write the equation to make the result more readable, e.g. putting the stuff under the sum symbol on different lines?

• Why write under Sum, when mathematical correct is write to right. $$d(\vec{x},\vec{y})= \sum_{Z_{xy}\in\vec{Z}_{xy}} f(Z_{xy}),\forall x\in\vec{x},\forall y\in\vec{y}$$
– MiMo
Jun 10, 2012 at 10:34
• I agree with you but without the correct spacing, it is as bad as OP's. To be super-picky about it, forall is not the same as over all. With forall the author is relying on the reader's understanding for bad notation. Jun 10, 2012 at 13:18
• This is mathematically incorrect (if the notation has not introduced formally). But the \forall is definitely misused. Jun 10, 2012 at 13:33

You can use the \substack command from the amsmath package, like this:

$$d(\vec{x},\vec{y}) = \sum_{\substack{Z_{xy}\in\vec{Z}_{xy}\\ \forall x\in\vec{x}\\ \forall y\in\vec{y}}} f(Z_{xy})$$


However, the result still doesn’t look good, because of the extra spacing around the sum symbol:

To fix this, you can use the \mathclap command from the mathtools package, like this:

$$d(\vec{x},\vec{y}) = \sum_{\mathclap{\substack{Z_{xy}\in\vec{Z}_{xy}\\ \forall x\in\vec{x}\\ \forall y\in\vec{y}}}} f(Z_{xy})$$


But perhaps you might be happy using only \mathclap, and not \substack. The result looks good as long as the subscript is not too wide.

$$d(\vec{x},\vec{y}) = \sum_{\mathclap{{Z_{xy}\in\vec{Z}_{xy}, \forall x\in\vec{x}, \forall y\in\vec{y}}}} f(Z_{xy})$$


The mathtools package also have several other useful commands for typesetting mathematics, including more commands for improving the display of subscripts and superscripts. I very much recommend taking a look at its documentation.

• The \forall symbols should be omitted. Jun 10, 2012 at 13:34
• @egreg: Maybe one should just write three sums in total, the first two over x\in\vec{x} and y\in\vec{y}? Jun 10, 2012 at 13:51
• @HendrikVogt I'd use a two line \substack: \sum_{\substack{Z_{xy}\in\vec{Z}_{xy}\\x\in\vec{x},y\in\vec{y}}} Jun 10, 2012 at 13:56
• @KarlOveHufthammer You forgot  \\ . Mar 22, 2017 at 14:13
• Looks good, but seems not to work in rmarkdown's beamer_presentations. Can that be confirmed? Oct 29, 2017 at 15:26

Try the \substack command from the amsmath package, details of which are found here

I think it can be done without \substack as

\sum_{a=b \\ b=c \\ c=a}


wich results in

• doesn't seem to work for me. I am in the 'align' environment.
– DSM
Mar 16, 2021 at 5:22