35

I have the following code for a Figure with 4 subfigures:

\documentclass{article}
\usepackage{graphicx}
\usepackage{caption}
\usepackage{subcaption}

\begin{document}

\begin{figure}[b]
    \centering
    \begin{subfigure}[b]{\textwidth}
        \includegraphics[width=\textwidth]{./plots/arm1.pdf}
        \subcaption{$Q^{*}$ values for arm 1}
        \label{fig:arm1}
    \end{subfigure}
    ~
    \begin{subfigure}[b]{\textwidth}
        \includegraphics[width=\textwidth]{./plots/arm2.pdf}
        \subcaption{$Q^{*}$ values for arm 2}
        \label{fig:arm2}
    \end{subfigure} 
    ~
    \begin{subfigure}[b]{\textwidth}
        \includegraphics[width=\textwidth]{./plots/arm3.pdf}
        \subcaption{$Q^{*}$ values for arm 3}
        \label{fig:arm3}
    \end{subfigure} 
    ~
    \begin{subfigure}[b]{\textwidth}
        \includegraphics[width=\textwidth]{./plots/arm4.pdf}
        \subcaption{$Q^{*}$ values for arm 4}
        \label{fig:arm4}
    \end{subfigure} 
    \caption{$Q^{*}$ values for different arms}
    \label{fig:arms}
\end{figure}

\end{document}

This results in this page

But this way, the 4 subfigures are too large to fit on 1 page. I would like to split this over 2 pages, keeping the subcaptions a, b, ... How can I do this?

54

Split your figure into two figures and than to the second one immediately after \begin{figure} add command \ContinuedFloat. With this both figures will have the same caption number, however the sub captions numbering is continued from the previous figure:

\documentclass{article}
\usepackage{graphicx}
\usepackage{caption}
\usepackage{subcaption}

%---------------- show page layout. don't use in a real document!
\usepackage{showframe}
\renewcommand\ShowFrameLinethickness{0.15pt}
\renewcommand*\ShowFrameColor{\color{red}}
%---------------------------------------------------------------%
\usepackage{lipsum}

    \begin{document}
    \lipsum[1]
\begin{figure}[!b]
    \centering
    \begin{subfigure}[b]{0.6\textwidth}
        \includegraphics[width=\textwidth]{example-image}
        \subcaption{$Q^{*}$ values for arm 1}
        \label{fig:arm1}
    \end{subfigure}
%
    \begin{subfigure}[b]{0.6\textwidth}
        \includegraphics[width=\textwidth]{example-image}
        \subcaption{$Q^{*}$ values for arm 2}
        \label{fig:arm2}
    \end{subfigure}
    \caption{$Q^{*}$ values for different arms}
\end{figure}%
\begin{figure}[htb]\ContinuedFloat
    \centering
    \begin{subfigure}[b]{0.6\textwidth}
        \includegraphics[width=\textwidth]{example-image}
        \subcaption{$Q^{*}$ values for arm 3}
        \label{fig:arm3}
    \end{subfigure}
%
    \begin{subfigure}[b]{0.6\textwidth}
        \includegraphics[width=\textwidth]{example-image}
        \subcaption{$Q^{*}$ values for arm 4}
        \label{fig:arm4}
    \end{subfigure}
    \caption{$Q^{*}$ values for different arms (cont.)}
    \label{fig:arms}
\end{figure}
    \lipsum[2-3]
    \end{document}

enter image description here

enter image description here

  • When I do this, I get LaTeX Error: too many unprocessed floats. – JNevens Nov 18 '15 at 8:04
  • I doubt that just this figure is cause for this. If you test my MWE, you will not receive this error. For test you (temporary) omit command \ContinuedFloat and then see, if error still persist. – Zarko Nov 18 '15 at 9:31
  • 1
    @JNevens, any news? do you resolve your problem? does my answer help you? – Zarko Feb 9 '18 at 19:42
  • Is there a way to prevent that latex inserts something else (e.g. a table or a text page) between the first figure and the second "ContinuedFloat" figure? – Robert Sep 23 at 11:18
  • @Robert, in suggested solution this should not happen. I edit my answer and add some text to document which demonstrate this. – Zarko Sep 23 at 11:36

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.