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?
5 Answers
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– TakCommented Jul 30, 2013 at 3:42
-
@user1460166: What do you have around these paragraphs? What float specifiers do you use for any floats around it?– Werner ♦Commented Jul 30, 2013 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}– TakCommented Jul 30, 2013 at 3:58
-
@user1460166: Do you really have 2 figures (nested)? It's difficult to gauge what else might be the problem.– Werner ♦Commented Jul 30, 2013 at 4:16
-
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.
Werner's answer is obviously a good one. However, I encountered a gotcha.
Using a setting like he suggested:
\setlength{\textfloatsep}{\baselineskip plus 0.2\baselineskip minus 0.5\baselineskip}
produced a cryptic error:
Package calc Error: 'p' invalid at this point...0.2\baselineskip minus 0.5\baselineskip}
After some playing around, I found out that it stumbles over the plus ... minus
construction in combination with the \baseline
command. What works is to multiply the lone \baseline
by 1:
\setlength{\textfloatsep}{1\baselineskip plus 0.2\baselineskip minus 0.5\baselineskip}
Using lengths like 5pt
instead of the baseline command is unproblematic.
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}
-
1
Try this code, you can use \vspace{-10mm}
in the figure code:
\begin{figure}
\centering
\subfloat[\label{fig_2a}]{%
\includegraphics[width=0.45\linewidth]{Figures/Coss.eps}}
\hfill
\subfloat[\label{fig_2b}]{%
\includegraphics[width=0.45\linewidth]{Figures/Energy.pdf}}
\\
\caption{Nonlinear output capacitance characteristics of the MOSFETs } \label{fig_2}
\vspace{-10mm}%Put here to reduce too much white space after your table
\end{figure}