# Remove space after figure and before text

I have a figure in my paper (I am using IEEEtran package). After this figure there exists a space between the figure and the text. How can I reduce the size of this white space. To be specific the space is between the caption of the figure and the text of my paper. Any suggestions?

-

This depends on the location of the float - if the float is at the top of the page, the gap between the caption and the text is \textfloatsep, while the gap for a float in the middle of the page is given by \intextsep.

From the layouts package documentation it is possible to see the lengths in terms of page/document float elements (p 21 onward):

Default for ieeetran are

• \textfloatsep: 1.7\baselineskip plus 0.2\baselineskip minus 0.5\baselineskip
• \intextsep: \baselineskip plus 0.2\baselineskip minus 0.2\baselineskip

and therefore depends on the choice of the default font (since that sets \baselineskip). The default pt-form is therefore

• \textfloatsep: 20.4pt plus 2.4pt minus 4.8pt
• \intextsep: 12.0pt plus 2.4pt minus 2.4pt

in the 10pt font size. The above includes some stretch/shrink. You can modify them using \setlength. For example,

\setlength{\textfloatsep}{\baselineskip plus 0.2\baselineskip minus 0.2\baselineskip}


would allow for between (roughly) 10pt and 15pt gap between the float and the text. Something like

\setlength{\textfloatsep}{5pt}


would fix the distance to 5pt (without stretch/shrink).

-
I'm having a huge space between the end of a paragraph and the beginning of the next one, I don't know the reason, I'm using IEEE trans template –  shepherd Jul 30 '13 at 3:42
@user1460166: What do you have around these paragraphs? What float specifiers do you use for any floats around it? –  Werner Jul 30 '13 at 3:52
I have a float after the end of the paragraph \begin{figure}[t] \begin{figure}[t] \centering { \begin{tikzpicture}[remember picture] \node[mynode] (image2) {\includegraphics[width=\linewidth]{avghist}}; \end{tikzpicture}} \begin{tikzpicture}[remember picture,overlay] \end{tikzpicture} \caption{} \label{} \end{figure} \begin{figure*}[pht] {\includegraphics[width=\linewidth]{squash3}}\caption{AA} \label{} \end{figure*} \begin{table*}[pht] \begin{tabularx}{\linewidth}{@{}>{\hsize=0.8\hsize}X 2{>{\hsize=1.1\hsize}X}@{}} \toprule \bottomrule \end{tabularx} \caption{AAA} \label{} \end{table} –  shepherd Jul 30 '13 at 3:58
@user1460166: Do you really have 2 figures (nested)? It's difficult to gauge what else might be the problem. –  Werner Jul 30 '13 at 4:16
I have two figures then a table –  shepherd Jul 30 '13 at 4:20

If you do not want to modify the standard template and just want a quick fix for this, you may add the following command to your document preamble:

\newcommand{\squeezeup}{\vspace{-2.5mm}}

Then, you can use the command \squeezeup throughout your document for reducing the free space after/before figures, formulas, etc., as needed.

-

You can use etoolbox package. Just set a \vskip with a negative value at the start (\BeforeBeginEnvironment or \AtBeginEnvironment) and at the end (\AfterEndEnvironment) of the environment figure.

MWE:

\documentclass{IEEEtran}

\usepackage{lipsum}

\usepackage{etoolbox}

\BeforeBeginEnvironment{figure}{\vskip-2ex}
\AfterEndEnvironment{figure}{\vskip-1ex}

\begin{document}

\lipsum[1]

\begin{figure}[h]
\includegraphics{your_figure}
\caption{text}
\end{figure}

\lipsum[1]

\end{document}

-