25

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.

azetina
  • 28,884
Rasmus
  • 1,270
  • 1
  • 10
  • 25
  • 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
  • 1
    Have a look at Herbert Voss' Mathmode article: texdoc mathmode – cmhughes Mar 12 '12 at 20:10

2 Answers2

32

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
\g@addto@macro \normalsize {%
 \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)

11

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

David Carlisle
  • 757,742