0

Ideally, I would put a figure in the tex file with the paragraph it belongs to. This way, LaTeX does most of the work of positioning the figure for me.

Often I do not want any figures to appear in the first column or even the first page however. As a quick fix I have been moving the figure in the source file to get it to appear in the second column. I am however wondering: is there a way to make LaTeX postpone shipping the figure until the second column?

Edit (in response to the comment below): I'm using the IEEEtran documentclass (journal supplied). The figures are usually a column wide (ca 10cm). I don't want figures to appear in the very first column because the journal does not like that (but oddly enough did not modify the documentclass to not place figures there).

Edit2: This is a MWE of my problem

\documentclass{IEEEtran}

\usepackage{lipsum}

\title{Title}
\author{Author}
\begin{document}
\maketitle
A first paragraph. \lipsum[1]
\begin{figure}
    This is in the figure
\end{figure}

The second paragraph. \lipsum[1]

\lipsum
\end{document}

Resulting in (top of the first page only):

Resulting output

The figure is clearly placed in the first column, although there is a title specified.

6
  • Please tell us which document class you use. Please also provide at least something akin to a hint regarding how large your floats tend to be. If you absolutely don't want them to "float" (in the LaTeX sense of the word), you should probably not be using figure and table environments to begin with. Incidentally, would you mind telling us what's undesirable about having a float in the first (i.e., left-hand) column of a two-column document (other than, of course, on the very first page)? Having this information might help coming up with a better coding strategy.
    – Mico
    Mar 20, 2017 at 17:46
  • If you use \usepackage{flafter} then t floats can not appear in the first column unless they are the first thing in the file. Mar 20, 2017 at 18:28
  • @Mico: see the edits to the question
    – Octaviour
    Mar 21, 2017 at 8:23
  • @DavidCarlisle: if I understand correctly, this will change the figure placement of subsequent columns and pages as well. Since I like that placement and there is usually only one figure at the start of the paper, I prefer the solution of manually moving the figure in the first column over such an intrusive option.
    – Octaviour
    Mar 21, 2017 at 8:25
  • 1
    You have provided no example so it is hard to help, but IEEEtran uses same code as article to suppress top floats on the first page, I'll post some code in a (non) answer. Mar 21, 2017 at 8:48

1 Answer 1

1

Most classes, including article and IEEEtran suppress top floats in the implementation fo \maketitle so as long as you have a title at the start of the article there should be no top float in the first column.

`article.cls has

\newcommand\maketitle{\par
  \begingroup
    \renewcommand\thefootnote{\@fnsymbol\c@footnote}%
    \def\@makefnmark{\rlap{\@textsuperscript{\normalfont\@thefnmark}}}%
    \long\def\@makefntext##1{\parindent 1em\noindent
            \hb@[email protected]{%
                \hss\@textsuperscript{\normalfont\@thefnmark}}##1}%
    \if@twocolumn
      \ifnum \col@number=\@ne
        \@maketitle
      \else
        \twocolumn[\@maketitle]%
      \fi
    \else
      \newpage
      \global\@topnum\z@   % Prevents figures from going at top of page.

and IEEEtran has a similar setting of \@topnum with nost of its options

% user command to invoke the title page
\def\maketitle{\par%
  \begingroup%
  \normalfont%
  \def\thefootnote{}%  the \thanks{} mark type is empty
  \def\footnotemark{}% and kill space from \thanks within author
  \let\@makefnmark\relax% V1.7, must *really* kill footnotemark to remove all \textsuperscript spacing as well.
  \footnotesize%       equal spacing between thanks lines
  \footnotesep 0.7\baselineskip%see global setting of \footnotesep for more info
  % V1.7 disable \thanks note indention for compsoc
  \@IEEEcompsoconly{\long\def\@makefntext##1{\parindent 1em\noindent\hbox{\@makefnmark}##1}}%
  \normalsize%
  \ifCLASSOPTIONpeerreview
     \newpage\global\@topnum\z@ \@maketitle\@IEEEstatictitlevskip\@IEEEaftertitletext%
     \thispagestyle{IEEEpeerreviewcoverpagestyle}\@thanks%
  \else
     \if@twocolumn%
        \ifCLASSOPTIONtechnote%
           \newpage\global\@topnum\z@ \@maketitle\@IEEEstatictitlevskip\@IEEEaftertitletext%
        \else
           \twocolumn[{\IEEEquantizevspace{\@maketitle}[\IEEEquantizedisabletitlecmds]{0pt}[-\topskip]{\baselineskip}{\@IEEENORMtitlevspace}{\@IEEEMINtitlevspace}\@IEEEaftertitletext}]%
        \fi
     \else
        \newpage\global\@topnum\z@ \@maketitle\@IEEEstatictitlevskip\@IEEEaftertitletext%
     \fi
     \thispagestyle{IEEEtitlepagestyle}\@thanks%
  \fi

so as for article the title should be set in a column with \@topnum set to zero, or in a two-column span inside \twocolumn[...] so in either case there should be no float above the title.

You must log in to answer this question.

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