3

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, 2013 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. May 20, 2013 at 19:31
  • Glad the suggestion worked. I'll post it as an answer.
    – Mico
    May 20, 2013 at 22:51

1 Answer 1

2

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}

This site is temporarily in read-only mode and not accepting new answers.

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