3

I am adding figures into a two-column LaTeX file. In one page, I need to put a one-column figure and a two-column figure in a same page. The one-column figure should be in the top of the page and the two-column figure should be in the bottom. (I think I've seen this sort of layout in some papers.) However, I found it really hard.

I have tried float package. It didn't work. I even have tried to reset the float placement parameters, e.g., \dblfloatpagefraction to 1. It didn't work either. The two-column figure always falls into the next page.

I have almost accepted the truth that this is formidable. But I am still holding the last hope that someone knows how to do this.

migrated from stackoverflow.com Apr 27 '13 at 22:53

This question came from our site for professional and enthusiast programmers.

5

For two-column figures, use the figure* environment. Also note that the placement of such figures is always delayed by one page (by default). The following MWE shows an arrangement that allows a top-floating one-column figure together with a bottom-floating two-column figure on the same page (with the aid of dblfloatfix):

enter image description here

\documentclass[twocolumn]{article}
\usepackage{lipsum}% http://ctan.org/pkg/lipsum
\usepackage{graphicx,dblfloatfix}% http://ctan.org/pkg/{graphicx,dblfloatfix}
\begin{document}
\lipsum[1-3]

\begin{figure*}[b]
  \centering\includegraphics[width=\linewidth,height=0.1\textheight]{example-image-b}
  \caption{B caption}
\end{figure*}

\lipsum[4-7]

\begin{figure}[t]
  \centering\includegraphics[width=\columnwidth,height=0.1\textheight]{example-image-a}
  \caption{A caption}
\end{figure}

\lipsum[8-12]
\end{document}

Note that the figure numbering is not ideal. Figure 2 (one-column) is at the top while Figure 1 (two-column) is at the bottom. It is possible to play around with the figure counters in order to obtain a better result. However, this is all because figure*'s difficulty in being placed properly.

\documentclass[twocolumn]{article}
\usepackage{lipsum}% http://ctan.org/pkg/lipsum
\usepackage{graphicx,dblfloatfix}% http://ctan.org/pkg/{graphicx,dblfloatfix}
\begin{document}
\lipsum[1-3]

\begin{figure*}[b]
  \stepcounter{figure}% To correct for figure placement & numbering
  \centering\includegraphics[width=\linewidth,height=0.1\textheight]{example-image-b}
  \caption{B caption}
\end{figure*}

\lipsum[4-7]

\begin{figure}[t]
  \addtocounter{figure}{-2}% To correct for figure placement & numbering
  \centering\includegraphics[width=\columnwidth,height=0.1\textheight]{example-image-a}
  \caption{A caption}
  \addtocounter{figure}{2}% Re-establish correct figure number
\end{figure}

\lipsum[8-12]
\end{document}
  • Lovely, it works!!! I only have to manually modify the figure counters for both of these two figures, as you did, and those of all the figures that follow, simply by \addtocounter{figure}{1}. But that is the worthy expense to pay. Thank you very much! – user2045447 Apr 28 '13 at 1:30
  • What do you mean by the phrase "by default"? Is there a straightforward way to place two-column figures on the same page as the definition? – amcnabb Oct 30 '13 at 22:22
  • @amcnabb: "By default" I mean that there's no easy why around it. You could just place the figure a couple of paragraphs before the definition, making it end up in the same location. – Werner Oct 30 '13 at 22:26
  • I was hoping there was a better way than that. :) Oh, well. Thanks for the quick response. – amcnabb Oct 31 '13 at 18:04

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.