How to change the spacing between figures/tables and text?
Change one or more of the following lengths:
\textfloatsep
— distance between floats on the top or the bottom and the text;\floatsep
— distance between two floats;\intextsep
— distance between floats inserted inside the page text (usingh
) and the text proper.
The command used to change them is \setlength
:
\setlength{\textfloatsep}{10pt plus 1.0pt minus 2.0pt}
The default values in the article
document class with the 10pt
option are:
\textfloatsep
:20.0pt plus 2.0pt minus 4.0pt
;\floatsep
:12.0pt plus 2.0pt minus 2.0pt
;\intextsep
:12.0pt plus 2.0pt minus 2.0pt
.
You can get them yourself with \showthe\textfloatsep
or \the\textfloatsep
etc.
The plus
and minus
parts allow the space to stretch or shrink (the greater they are, the more it stretches or shrinks when needed). It's not recommended to leave out the plus
and minus
parts, as it leaves LaTeX less typesetting choices to select from and the output might look worse.
When typesetting in two column mode, two more lengths are available:
\dbltextfloatsep
— distance between a float spanning both columns and the text;\dblfloatsep
— distance between two floats spanning both columns.
Remember that too little space will, again, make the document look worse.
Another option I found useful was through \vspace{10pt}. If placed before invoking the image, \vspace will separate the figure and the text. If placed after invoking the image but before the caption, it will separate the caption and figure. If placed after the caption, then it will separate the caption and bottom text. Of course you could decrease spacing by doing something like -10pt instead of 10pt.