1

I would like to place the three figures in the paper as follows:

  1. Figure 1: Top of the left column.

  2. Figure 2: Top of the right column.

  3. Figure 3: Bottom of the page, Figure 3 needs to occupy the width of two columns

However, latex always put Fig. 3 on the next page unless I remove Fig. 2.

My latex code is as follows:

enter image description here

\documentclass[journal]{IEEEtran}
\usepackage[graphicx]{realboxes}
\usepackage[justification=raggedright]{caption} 
\usepackage[pagewise]{lineno}
\usepackage{stfloats}

\begin{document}
\section{X}
\subsection{A}

\begin{figure}[t] % Expected to be at top of the left column
    \centering
    \includegraphics[width=\columnwidth]{example-image-a.png}% .5\textwidth is too wide
    \caption{XXX}
\end{figure}

% "a\n\n" repeat 40 times, Because I have about the same amount of text
\def\filler{a\par a\par a\par a\par a\par a\par a\par a\par a\par a\par}
\filler\filler\filler\filler%%%

\begin{figure}[t] % Expected to be at top of the right column
    \centering
    \includegraphics[width=\columnwidth]{example-image-b.png}% .5\textwidth is too wide
    \caption{XXX}
\end{figure}
\begin{figure*}[b] % Expected to be at bottom of the page
    \centering
    \includegraphics[width=1\textwidth, height=4cm]{example-image-c.png}
    \caption{XXX}
\end{figure*}

\end{document}

Thanks for all possible solutions.

3
  • @DavidCarlisle Thank you for your reply. You're quite right. I modified Fig. 1 code and the previous question was also deleted. In addition, using the stfloats packate, it is possible to place a double-column image at the bottom.
    – ojipadeson
    Commented May 26 at 9:12
  • I adjusted your example so it will run in standard distributions which have example images fro such tests. Commented May 26 at 10:17
  • Note that IEEE doesn't like changes in their caption formats. Commented May 26 at 16:54

2 Answers 2

1

Double column floats always come, at the earliest, on the following page, so your figure* has to be earlier in the source. In order to get the two smaller figures earlier than that in the source it's easier to put them in a spanning figure as well rather than try to force one into the second column.

enter image description here

\documentclass[journal]{IEEEtran}
\usepackage[graphicx]{realboxes}
\usepackage[justification=raggedright]{caption} 
\usepackage[pagewise]{lineno}
\usepackage{stfloats}


\begin{document}

\begin{figure*}[t] % Expected to be at top of the left column
  \begin{minipage}{\columnwidth}
    \centering
    \includegraphics[width=\columnwidth]{example-image-a.png}% .5\textwidth is too wide
    \caption{XXX}
\end{minipage}\hfill
\begin{minipage}{\columnwidth} % Expected to be at top of the right column
    \centering
    \includegraphics[width=\columnwidth]{example-image-b.png}% .5\textwidth is too wide
    \caption{XXX}
    \end{minipage}
\end{figure*}
\begin{figure*}[b] % Expected to be at bottom of the page
    \centering
    \includegraphics[width=1\textwidth, height=4cm]{example-image-c.png}
    \caption{XXX}
\end{figure*}
\section{X}
\subsection{A}

% "a\n\n" repeat 40 times, Because I have about the same amount of text
\def\filler{a\par a\par a\par a\par a\par a\par a\par a\par a\par a\par}
\filler\filler\filler\filler%%%



\end{document}
1

You can reserve space in one column and overlay it in the second. It helps when using bottom floats, although getting the captions in the right order is tricky. See also \bottomfraction (make sure IEEE is okay with the change),

\documentclass[journal]{IEEEtran}
\usepackage[graphicx]{realboxes}
\usepackage{capt-of}% don't mess with IEEE captions
\usepackage[pagewise]{lineno}
\usepackage{stfloats}

\newsavebox{\tempboxa}
\newsavebox{\tempboxb}
\newsavebox{\tempboxc}

\def\bottomfraction{0.5}% needed for 4cm + caption

\begin{document}
\section{X}
\subsection{A}

\savebox\tempboxa{\begin{minipage}{\columnwidth}% create in caption order
    \centering
    \includegraphics[width=\linewidth]{example-image-a.png}% .5\textwidth is too wide
    \captionof{figure}{XXX}
\end{minipage}}%
\savebox\tempboxb{\begin{minipage}{\columnwidth}
    \centering
    \includegraphics[width=\linewidth]{example-image-a.png}% .5\textwidth is too wide
    \captionof{figure}{XXX}
\end{minipage}}%
\savebox\tempboxc{\begin{minipage}{\textwidth}% measure height
    \centering
    \includegraphics[width=1\textwidth, height=4cm]{example-image-c.png}
    \captionof{figure}{XXX}
\end{minipage}}%
\begin{figure}[t]% Expected to be at top of the left column
    \usebox\tempboxa
\end{figure}
\begin{figure}[b]% reserve space
    \rule{0pt}{\ht\tempboxc}
\end{figure}

% "a\n\n" repeat 40 times, Because I have about the same amount of text
\def\filler{a\par a\par a\par a\par a\par a\par a\par a\par a\par a\par}
\filler\filler\filler\filler%%%

\begin{figure}[t]% overlap left column
    \usebox\tempboxb
\end{figure}
\begin{figure}[b]% Expected to be at bottom of the page
    \makebox[\linewidth][r]{\usebox\tempboxc}
\end{figure}

\end{document}

You must log in to answer this question.

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