In my article draft, I have a table, followed by a piece of text, followed by a figure with [t] placement. This is a two-column paper. As things stand, the figure gets placed at the top-left of the page, on the first column; then the table; then the text. But I don't like the table being right after the figure, it's confusing. I would much rather have the figure on the next column, where it would actually be even closer to its 'logical' position. Can I coax/nudge/force LaTeX to do this for me?
Asked
Active
Viewed 1,389 times
1
1 Answers
2
You haven't provided any example but the only way that I can see that a later figure appears before an earlier table in such a situation is if the table includes [h] in its placement.
\documentclass[twocolumn]{article}
\def\abc{a a a a a a a a a a a a a a a a a a a a a a a a}
\def\xyz{One \abc, two three \abc, \abc, \abc,
four \roman{enumi}\stepcounter{enumi}. }
\def\z{\xyz\xyz\par\abc\xyz}
\begin{document}
\begin{table}[h]
TTTTT
\caption{ttttt}
\end{table}
xxxxx
\z\z\xyz
\begin{figure}[t]
FFFFF
\caption{ffff}
\end{figure}
\xyz\z\xyz\z
\end{document}
if you remove h things are better but still not quite as you want:
However if you restrict to one float at the top of the column on this page then you get
\documentclass[twocolumn]{article}
\def\abc{a a a a a a a a a a a a a a a a a a a a a a a a}
\def\xyz{One \abc, two three \abc, \abc, \abc,
four \roman{enumi}\stepcounter{enumi}. }
\def\z{\xyz\xyz\par\abc\xyz}
\begin{document}
\global\csname @topnum\endcsname=1
\begin{table}
TTTTT
\caption{ttttt}
\end{table}
xxxxx
\z\z\xyz
\begin{figure}[t]
FFFFF
\caption{ffff}
\end{figure}
\xyz\z\xyz\z
\end{document}
here \c@topnum is set to 1, it will just affect the first column as it will be set back to the latex counter topnum 9which is 2 in the default classes) at the start of each column.
David Carlisle
- 757,742



[htb], Usually this helps. – Zarko Mar 17 '16 at 20:29\usepackage{flafter}that will stop figures floating back before their position in the source. – David Carlisle Mar 17 '16 at 22:12