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.

  • 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 '17 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. – David Carlisle Mar 20 '17 at 18:28
  • @Mico: see the edits to the question – Octaviour Mar 21 '17 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 '17 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. – David Carlisle Mar 21 '17 at 8:48
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@xt@1.8em{%
                \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.

| improve this answer | |

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.