2

I'm using figcaps to place floats at the end of an article prior to copyediting. The journal asks for each figure/table on a separate page. But figcaps puts as many figures as possible on each page. How do I override this? (Not even ugly manual hacks, like inserting \newpage at the start or end of the figure/table environment, work).

If you compile the MWE below, you'll see that both figures are located on p3, not on subsequent, separate pages.

(I've tried using endfloat but I get error messages that suggest adverse interactions. Fixing these may take some work, so I'd rather get figcaps to work if possible.)

\documentclass{article}

\usepackage{figcaps}
\printfigures
\figmarkon

\usepackage{lipsum}

\begin{document}

\lipsum[1]

\begin{figure}
    \caption{A floating figure}
    \label{float}
\medskip \em \footnotesize \lipsum[1]
\end{figure}

Check out figure \ref{float}.

\lipsum [2]

\end{document}
1
  • The boxhandler package has a deferral mechanism, a \holdFigures command that allows figures created in the document not to be printed until you issue a \clearFigures (in your case, at the end of the document) where they are printed one per page (as in journal-submission format). The only perceived downside is that it uses a macro format, rather than en environment format for defining the figures. An alternative for output is \nextFigure[], which prints (one by one) the oldest figure on hold, using the optional argument to lay it out as you see fit. Commented Jul 10, 2013 at 10:20

1 Answer 1

2

Patch the \@figurepage command that's responsible for printing the figures; the usual setting is to leave 20pt of vertical space, which we can change to \clearpage:

\documentclass{article}

\usepackage{figcaps}
\printfigures
\figmarkon
\usepackage{etoolbox}
\makeatletter
\patchcmd{\@figurepage}{\vspace{20pt}}{\clearpage}{}{}
\makeatother

\usepackage{lipsum}

\begin{document}

\lipsum[1]

\begin{figure}
    \caption{A floating figure}
    \label{float}
\medskip \em \footnotesize \lipsum[1]
\end{figure}

Check out figure \ref{float}.

\lipsum [2]

\begin{figure}
    \caption{A floating figure}
    \label{float2}
\medskip \em \footnotesize \lipsum[1]
\end{figure}

Check out figure \ref{float2}.

\lipsum [2]

\end{document}
3
  • Thanks egreg. In case anyone needs it, the analogous fix for getting tables onto separate pages is \patchcmd{\@tablepage}{\bigskip}{\clearpage}{}{}. Both this patch and yours sometimes generate a blank page (before a full-page table or figure; I can't recreate the effect in a MWE though). It's not a major concern, but let me know if it's fixable. Commented Jul 10, 2013 at 10:50
  • @DanielHarbour figcaps puts the contents of a figure environment inside a \vbox. Don't use objects higher than the page height.
    – egreg
    Commented Jul 10, 2013 at 10:59
  • All clear. I had to change the textbox dimensions for the copyeditor. That's what triggered the problem. Commented Jul 10, 2013 at 11:00

You must log in to answer this question.

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