1

I would like to position three figures side-by-side in a two-column document. I need to reduce the area taken by my figures to accommodate to the page limit. These Figures are independent enough from each other that I do want a different Fig. numbering for them instead of three subfigures next to each other (i.e. no notations as a) b) c) for the different (sub)figures).

I guess the option could be to create a new floating "area", define a three-column environment there, place one Figure, then force a column-break. Unfortunately figures are not welcomed in a minipage, and minipage is not a float (As I understand floats can be anchored to the top of the document). The document I am writing has to use IEEEtran's journal class, where subfig is loaded by default. I found a hint to do what I would like with subcaption's subfigure environment, but it is incompatible with subfig. My research about the topic indicated that in latex we can not undo a package load.

So, I am lost. I will be glad for any help.

2 Answers2

3

You wrote:

Unfortunately figures are not welcomed in a minipage

No problem at all: minipage environments are entirely welcome inside figure and figure* environments, and each minipage can contain \includegraphics, \caption, and \label directives.

These Figures are independent enough from each other that I do want a different Fig. numbering for them ...

So just place 3 minipages side by side in a figure* environment. Since your document uses a two-column layout, you should use a figure* rather than a figure environment in order to span both columns.

enter image description here

\documentclass{IEEEtran}
\usepackage[demo]{graphicx} % omit 'demo' option is real doc.
\usepackage{lipsum} % filler text
\begin{document}
\lipsum[1] 
\begin{figure*}
\begin{minipage}[t]{0.3\textwidth}
  \includegraphics[width=\linewidth]{fig1}
  \caption{First}
  \label{fig:first}
\end{minipage}%
\hfill % maximize the horizontal separation
\begin{minipage}[t]{0.3\textwidth}
  \includegraphics[width=\linewidth]{fig2}
  \caption{Second}
  \label{fig:second}
\end{minipage}%
\hfill
\begin{minipage}[t]{0.3\textwidth}
  \includegraphics[width=\linewidth]{fig3}
  \caption{Third}
  \label{fig:third}
\end{minipage}%
\end{figure*}
\lipsum[2-19]
\end{document}
Mico
  • 506,678
3

Two methods to choose: strip versus figure*. The main text is the example is colored to remark that strip is not a float, so among other things, it cannot float, for captions it needs the caption or capt-of packages, and if you must care of near floats (if you change the order of the two environments in the example, you will see a fanny figure numeration, because remember, it matters the order in the source, not in the PDF). But in the other hand, figure* cannot be placed anywhere, so ...

mwe

\documentclass[twocolumn]{article}
\usepackage{lipsum,xcolor}
\usepackage{graphicx,midfloat,capt-of}

\def\img#1#2{ \begin{minipage}[b][.3\linewidth]{.3\linewidth}\centering \includegraphics[width=\linewidth,height=.75\linewidth,keepaspectratio]{#1}\par \captionof{figure}{#2}\end{minipage}}

\begin{document}

\lipsum[1][1-6]

\color{blue}\lipsum[2][1-6]

\begin{strip} \img{example-image}{The example image}\hfill \img{example-image-1x1}{The image $1\times1$}\hfill \img{example-image-16x9}{example-image-16x9} \end{strip}

\begin{figure} \img{example-image}{The example image}\hfill \img{example-image-1x1}{The image $1\times1$}\hfill \img{example-image-16x9}{example-image-16x9} \end{figure}

\color{green}\lipsum[3-9]

\end{document}

Fran
  • 80,769