# How can I change the whitespace above and below math displays?

I'm looking to squeeze an article written in LaTeX with amsmath to a set number of pages.

In the text, I have a number of numbered math displays which I refer to throughout. However, they take up quite a lot of vertical space. I would therefore like to change the height of the whitespace above and below them.

I have tried using negative, vertical spaces, but they have a tendency to mess up other stuff.

-
Welcome to TeX.SE! It would be helpful if you could indicate whether you use Plain TeX or LaTeX. If you use LaTeX, do you also use some math-related packages such as amsmath and/or mathtools? – Mico Mar 12 '12 at 20:08
Have a look at Herbert Voss' Mathmode article: texdoc mathmode – cmhughes Mar 12 '12 at 20:10

There are four parameters that define this space and you can look at the values for them for example via

\showthe\abovedisplayskip
\showthe\belowdisplayskip
\showthe\abovedisplayshortskip
\showthe\belowdisplayshortskip


The "..short.." are used if the previous text line has less material than the width of the formula. In case of displaymath(or $...$ for short) standard LaTeX behaves a bit strangely in that it adds an explicit empty box with a width of .6\linewidth in front of such a display if it starts out in vertical mode. As a result you see an empty line in front of the display and in addition \abovedisplayskip is used. This is not done for the equation environment (here low-level TeX is adding the empty line but it will only consists of an \indent box) so this is a strange historical "feature".

The values for these parameters depend on the font size and in the default classes (e.g., article) LaTeX sets them as part of executing \normalsize, \small, or \footnotesize. The other font size command do not chamge them, probably because Leslie thought that in something like \huge one doesn't typeset any displays.

So changing them then to your taste can be done with \setlength, e.g.

\setlength\abovedisplayskip{5pt plus 2pt minus 2pt}


or whatever you think fits your design (the plus and minus part define how much the space can stretch or shrink if necessary). But that definition then has to replace the one inside the font size command or at least have to be added to the end of it so that it overwrites whatever is being set up earlier. A simple way to do that would be

\makeatletter
\setlength\abovedisplayskip{5pt plus 2pt minus 2pt}%
\setlength\belowdisplayskip{5pt plus 2pt minus 2pt}%
}
\makeatother


As long as you do not typeset displays in \small or \footnotesize there is no need to append values to those commands, but if so the same approach could be used.

(thanks to egreg for pointing out my blunder about not remembering that this is size dependent)

-
Font changing commands such as \normalsize and \small change the value of the parameters. Thus setting the value in the preamble does nothing, as \begin{document} issues \normalsize – egreg Mar 12 '12 at 20:50
Redefining or appending to \normalsize and related commands: Less Space between equations and text on LaTeX-Community.org. – Stefan Kottwitz Mar 12 '12 at 21:10
@egreg ouch ... something I should know about. So this needs a more elaborate answer. – Frank Mittelbach Mar 12 '12 at 21:11

In addition to the parameters Frank listed, beware having a blank line above this will cause an empty row to be generated above the display.

-