7

I use a lot of subfigures in my thesis. What I realize now is that the captions between adjacent subfigures are very close together, which makes them hard to read.

My two questions are therefore:

(1) How can the default distance between two subfigures be increased?

or

(2) How can the default width of a subfigure caption be decreased?

Example code:

\usepackage{subfigure}
...
\begin{figure}[h!t]
\centering
\subfigure[long long caption]{
    \includegraphics{filename1}
}
\subfigure[another long caption]{
    \includegraphics{filename2}
}
\caption{two subfigures}
\end{figure}

Thx

3
  • 2
    How do you place them? Which package do you use to place them? Can you provide a small example code?
    – percusse
    Commented Aug 21, 2012 at 8:50
  • Here the example code: \usepackage{subfigure} ... \begin{figure}[h!t] \centering \subfigure[long long caption]{ \includegraphics{filename1} } \subfigure[another long caption]{ \includegraphics{filename2} } \caption{two subfigures} \end{figure}
    – Thomas
    Commented Aug 21, 2012 at 11:49
  • See this question before anything: tex.stackexchange.com/questions/13625/subcaption-vs-subfig
    – percusse
    Commented Aug 21, 2012 at 11:51

1 Answer 1

6

It depends on that you use subfig, subcaption or the subfigure package (this last actually deprecated in CTAN).

An example with the deperecated subfigure:

\documentclass[spanish,11pt]{article}
\usepackage{babel}
\usepackage[utf8]{inputenc}

% Compare between loose and normal option in the fig. 1
% (see more options in the documentation)   
\usepackage[normal]{subfigure}
% \usepackage[loose]{subfigure}

% Compare fig. 1 and 2. subcaptions fixing this value
\subfigcapmargin = .5cm

% Fix these other commands as you want and see
% \subfigtopskip = 2cm
% \subfigcapskip = 2cm
% \subfigcaptopadj = 7cm % when caption is above
% \subfigbottomskip = 2cm
% \subfiglabelskip = 2cm

% See fig 3 to 6 examples of set distances 
% between subfigures 
% (there are not any space default, as far I know)

\begin{document}

\begin{figure}%
\centering
\subfigure[subcaption aa aa aa aa]{\framebox{... ... figure text ... ...}}
\subfigure[subcaption bb bb bb bb]{\framebox{... ... figure text ... ...}}
\caption[The caption]{The caption}
\end{figure}

\subfigcapmargin = .0cm

\begin{figure}%
\centering
\subfigure[subcaption aa aa aa aa]{\framebox{... ... figure text ... ...}}
\subfigure[subcaption bb bb bb bb]{\framebox{... ... figure text ... ...}}
\caption[The caption]{The caption}
\end{figure}


\begin{figure}%
%\centering
\subfigure[subcaption]{\framebox{... figure text ...}}\hfill
\subfigure[subcaption]{\framebox{... figure text ...}}
\caption[The caption]{The caption}
\end{figure}


\begin{figure}%
%\centering
\subfigure[subcaption]{\framebox{... figure text ...}}\qquad
\subfigure[subcaption]{\framebox{... figure text ...}}
\caption[The caption]{The caption}
\end{figure}

\begin{figure}%
\centering
\subfigure[subcaption]{\framebox{... figure text ...}}
\hspace{3cm}
\subfigure[subcaption]{\framebox{... figure text ...}}
\caption[The caption]{The caption}
\end{figure}


\begin{figure}%
\centering
\subfigure[subcaption]{\framebox{... figure text ...}}
\\\hspace{5cm}\vspace{1cm}
\subfigure[subcaption]{\framebox{... figure text ...}}
\caption[The caption]{The caption}
\end{figure}


\end{document}

Another solution is to use subcaption package (not compatible with subfigure) as is or with some options, since spacing among subfigures are as in any other floats. Example:

\documentclass{article}
\usepackage{subcaption}
\usepackage[margin=20pt,
font+=small,labelformat=parens,labelsep=space,
skip=6pt,list=false,hypcap=false
]{subcaption}
\begin{document}
    
\begin{figure}%
    \centering
    \begin{subfigure}[h]{0.3\textwidth}
        \framebox{... figure text ...}
        \caption{subcaption}
    \end{subfigure}
    \begin{subfigure}[h]{0.3\textwidth}
        \framebox{... figure text ...}
        \caption{subcaption}
    \end{subfigure}%

    \caption[The caption]{Subfigures with default space and too much margin in subcaptions}
\end{figure}
    
\begin{figure}%
    \centering
    \begin{subfigure}[h]{0.3\textwidth}
        \framebox{... figure text ...}
        \caption{subcaption}
    \end{subfigure}
    \hspace{0.3\textwidth}
    \begin{subfigure}[h]{0.3\textwidth}
        \framebox{... figure text ...}
        \caption{subcaption}
    \end{subfigure}%
    
    \caption[The caption]{Subfigures with extra space}
\end{figure}
    
\end{document} 
 

Similarly, with subfig package you can also control space between subfloats simply with commands as \qquad and also control many subcaptions options. See the documentation packages.

\documentclass{article}
\usepackage[margin=40pt]
{subfig}
\begin{document}
\begin{figure}%
\centering
\subfloat[][subcaption aa aa aa ]{\framebox{... ... figure text ... ... }}%
\qquad 
\subfloat[][subcaption bb bb bb ]{\framebox{... ... figure text ... ... }}%
\caption{The caption}%
\label{fig:cont}%
\end{figure}
\end{document}
9
  • Take a look at the question I have linked above in the comments.
    – percusse
    Commented Aug 21, 2012 at 12:21
  • Thanks, the \subfigcapmargin = .5cm works.
    – Thomas
    Commented Aug 21, 2012 at 12:39
  • There's no reason why subfig should be deprecated. Of course it's alternative to subcaption.
    – egreg
    Commented Sep 2, 2012 at 15:18
  • I dont know, @egreg, but from the TeX Catalogue in Line: This package [subfig] supersedes the subfigure package ... The functionality of the package is provided by the (more recent still) subcaption package. (I known... newer is not a solid reason, but ask to Google).
    – Fran
    Commented Sep 2, 2012 at 16:23
  • subfig and subcaption are just two packages that do similar things with different approaches.
    – egreg
    Commented Sep 2, 2012 at 16:52

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .