8

I have to show a set of four tables: one after another. Each table has almost middle page of information, and I really need them to appear before the next block of text. An example of LaTeX code is shown below:

text text text text...

\begin{table}
    \caption{table 1}
...............
\end{table}

\begin{table}
    \caption{table 2}
...............
\end{table}

\begin{table}
    \caption{table 3}
...............
\end{table}

\begin{table}
    \caption{table 4}
...............
\end{table}

next text next text next text

As these tables cannot fit in one page, LaTeX need two or three pages to show all of them. But, here is my problem: since there are empty spaces between one table and another (because of the end of the pages), LaTeX put the subsequent text in these spaces, showing the rest of the tables after it.

In other words, I want LaTeX to behave exactly as the code says: first show all the tables (no matter how much empty space may exist between them), and only show the rest of the text after the last table.

azetina
  • 28,884
Rick
  • 405

3 Answers3

16

Ultimately, \FloatBarrier with \usepackage{placeins} package worked.

Werner
  • 603,163
11

Typesetting several floats consecutively without allowing non-float material to be inserted as well, irrespective of bad spacing that may result, can be accomplished by loading the float package and using the [H] location specifier for the floats -- e.g., \begin{table}[H] -- in question.

Mico
  • 506,678
0

One solution is to use tabular's and obtaining captions for them via caption package: http://www.ctan.org/pkg/caption. If it is too absorbing, one can manually use \clearpage after proper tables (Without true data I cannot sugest places). The result will not be too beautiful, but separating tables from text will be achieved.

  • The idea of '\clearpage' seems to work in some cases. I didn't checked the caption package, but it's nice to know (it was unknown to me until now). Thanks! – Rick Dec 19 '13 at 04:38