76

Table does not show up at the same position it was inserted in the TeX file. I got the understanding through bit of reading on this forum that they are floats and they pick the best place on the current or next page.

Because of this the text written below the table in TeX file ends up showing on the previous page. Is there any way to make the table appear in the same place as it was put in the TeX file.

In my case I created a table and below that I wrote "as shown in the above table..." but when I created the PDF it appeared on the previous page and there was no table there. One workaround is refer to the table # but I was wondering if there is any better way. I am using \begin{table}[!ht]

100

Suppressing floating is often not the best option. But it may be done, for example using the float package:

\usepackage{float}
...
\begin{figure}[H]
...

Often choosing further placement options would be sufficient, such as

\begin{figure}[!htbp]

Or set a barrier which may not be crossed by floats:

\usepackage{placeins}
...
\FloatBarrier
\begin{figure}[H]
...
  • I had to combine these solutions, as well as write \FloatBarrier\clearpage. Also \usepackage{dblfloatfix} for some two-column floats that were moving around. This is for an older version of LaTeX, modern version seems to be fine without all the fuss. – Joe Corneli Apr 29 '16 at 11:41
  • 1
    +1 for the option [!htbp], it worked great. The table was always placed at the end of the document, but this option set it in the midst of the text. – loved.by.Jesus Jun 11 '18 at 4:28
15

To avoid discrepancies between phrases like "as shown in the above table" and the actual table position, one may either supress floating of tables or employ the varioref package for "intelligent" cross-referencing. Here's an example using varioref.

\documentclass{article}

\usepackage{varioref}

\begin{document}

\begin{table}
\centering
(Content of first table)
\caption{A table}
\label{tab:first}
\end{table}

\clearpage

For the first topic see the \vpageref[above table][table ]{tab:first}.

OR: For the first topic see table~\vref{tab:first}.

\begin{table}
\centering
(Content of second table)
\caption{Another table}
\label{tab:second}
\end{table}

For the second topic see the \vpageref[above table][table ]{tab:second}.

OR: For the first topic see table~\vref{tab:second}.

\end{document}

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.