2

My problem is that the subfigures do not wrap to the next column, instead they go off the bottom of the page.

How can I add a break to the subfigure so that subfigures A-D are in one column, then E&F are in the next? Is this even an appropriate way to display a figure of this nature or should I make the figure span both columns?

Here's an attempt at a minimal example: (I need to use XeLaTeX if it makes a difference).

\documentclass[11pt,oneside,a4paper,twocolumn]{article}
\usepackage{geometry}
\setlength{\oddsidemargin}{-7.9mm}
\setlength{\textwidth}{175mm}
\setlength{\topmargin}{-12.7mm}
\setlength{\headheight}{5.3mm}
\setlength{\headsep}{18mm}
\setlength{\textheight}{239mm}

\usepackage{float}
\usepackage{graphicx}
\usepackage{caption}
\usepackage{subcaption}
\usepackage{todonotes}
\setlength{\columnsep}{10mm}

\begin{document}
\begin{figure}
\begin{subfigure}{80mm}
\missingfigure{part of figure 1}
\caption{this is a subfigure.}
\label{fig:sub_a1}
\end{subfigure}
\begin{subfigure}{80mm}
\missingfigure{part of figure 1}
\caption{this is a subfigure.}
\label{fig:sub_b1}
\end{subfigure}
\begin{subfigure}{80mm}
\missingfigure{part of figure 1}
\caption{this is a subfigure.}
\label{fig:sub_c1}
\end{subfigure}
\begin{subfigure}{80mm}
\missingfigure{part of figure 1}
\caption{this is a subfigure.}
\label{fig:sub_d1}
\end{subfigure}
\begin{subfigure}{80mm}
\missingfigure{part of figure 1}
\caption{this is a subfigure.}
\label{fig:sub_e1}
\end{subfigure}
\begin{subfigure}{80mm}
\missingfigure{part of figure 1}
\caption{this is a subfigure.}
\label{fig:sub_f1}
\end{subfigure}
\caption{here is a collection of subfigures.}
\label{fig:subs}
\end{figure}

\begin{figure}
\begin{subfigure}{80mm}
\missingfigure{part of figure 2}
\caption{this is a subfigure.}
\label{fig:sub_a2}
\end{subfigure}
\begin{subfigure}{80mm}
\missingfigure{part of figure 2}
\caption{this is a subfigure.}
\label{fig:sub_b2}
\end{subfigure}
\begin{subfigure}{80mm}
\missingfigure{part of figure 2}
\caption{this is a subfigure.}
\label{fig:sub_c2}
\end{subfigure}
\begin{subfigure}{80mm}
\missingfigure{part of figure 2}
\caption{this is a subfigure.}
\label{fig:sub_d2}
\end{subfigure}
\begin{subfigure}{80mm}
\missingfigure{part of figure 2}
\caption{this is a subfigure.}
\label{fig:sub_e2}
\end{subfigure}
\begin{subfigure}{80mm}
\missingfigure{part of figure 2}
\caption{this is a subfigure.}
\label{fig:sub_f2}
\end{subfigure}
\caption{here is another collection of subfigures.}
\label{fig:subs}
\end{figure}

\end{document}
3
  • 1
    Since you're already using the caption package, have you considered using its \ContinuedFloat directive? It lets you "reprise" the preceding float's number, and (assuming the subcaption package is loaded as well, which is the case for your MWE) the numbering of subfloats will pick up automatically where it left off. Regarding your question as to what's more appropriate -- (a) organizing the subfigures by column or (b) using a full-width figure* environment and placing the subfigures left-to-right within the full-width figure* environment -- my sympathies lie with the second approach. – Mico May 20 '13 at 18:51
  • Thanks, \ContinuedFloat worked great. I've been asked to place all of my figures at the end of the document before the references, so I can't decide which would be the best way to go. With no surrounding text, the double wide figures make spacing and numbering a little awkward. – andy mcevoy May 20 '13 at 19:31
  • Glad the suggestion worked. I'll post it as an answer. – Mico May 20 '13 at 22:51
1

Since you're already using the caption package, you could use its \ContinuedFloat directive. It lets you "reprise" the preceding float's number, and (assuming the subcaption package is loaded as well, which is the case for your MWE) the numbering of the subfloats will pick up automatically where it left off when the previous \end{figure} statement was encountered.

Given that you have 6 subfigures per figure, I'd recommend placing three subfigures per column, rather than 4 subfigures in the first column and 2 in the second. I'd further recommend setting the width of each subfigure to \linewidth rather than hardcoding it to some fixed value (say, 80mm).

\documentclass[11pt,oneside,a4paper,twocolumn]{article}
\usepackage{geometry}
\setlength{\oddsidemargin}{-7.9mm}
\setlength{\textwidth}{175mm}
\setlength{\topmargin}{-12.7mm}
\setlength{\headheight}{5.3mm}
\setlength{\headsep}{18mm}
\setlength{\textheight}{239mm}

\usepackage{float}
\usepackage{graphicx}
\usepackage{caption}
\usepackage{subcaption}
\usepackage{todonotes}
\setlength{\columnsep}{10mm}

\begin{document}
\begin{figure}
\begin{subfigure}{\linewidth}
\missingfigure{part of figure 1}
\caption{this is a subfigure.}
\label{fig:sub_a1}
\end{subfigure}

\bigskip
\begin{subfigure}{\linewidth}
\missingfigure{part of figure 1}
\caption{this is a subfigure.}
\label{fig:sub_b1}
\end{subfigure}

\bigskip
\begin{subfigure}{\linewidth}
\missingfigure{part of figure 1}
\caption{this is a subfigure.}
\label{fig:sub_c1}
\end{subfigure}
\caption{A collection of subfigures.}
\label{fig:subs}
\end{figure}

\begin{figure}
\ContinuedFloat
\begin{subfigure}{\linewidth}
\missingfigure{part of figure 1}
\caption{this is a subfigure.}
\label{fig:sub_d1}
\end{subfigure}

\bigskip
\begin{subfigure}{\linewidth}
\missingfigure{part of figure 1}
\caption{this is a subfigure.}
\label{fig:sub_e1}
\end{subfigure}

\bigskip
\begin{subfigure}{\linewidth}
\missingfigure{part of figure 1}
\caption{this is a subfigure.}
\label{fig:sub_f1}
\end{subfigure}
\caption{A collection of subfigures, continued.}
\end{figure}
\end{document}

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.