Sweave xtable: how to position tables between text?

13,271

Solution 1

See here for the table placement. You could try "!h" to force the table to stay where you wan't.

Solution 2

The latex float package provides the float specifier H, which allows you to force tables and figures to be precisely in the location they occur in the latex code. For example:

\usepackage{float} 

...

<<echo=FALSE, results=tex>>=
print(xtable(x),table.placement="H")
@

Solution 3

I find \clearpage after a float is sometimes useful.

Share:
13,271
griffin
Author by

griffin

Updated on June 06, 2022

Comments

  • griffin
    griffin almost 2 years

    I have a number of tables with text around them describing them. Something like this:

    This table shows blah blah...
    
    <<echo=FALSE, results=tex>>=
    print(
        xtable(x,
            caption = "blah", label = "tab:four", table.placement = "tbp", caption.placement = "top")
      , size = "small", table.placement="ht")
    @
    
    This table shows blah blah...
    
    <<echo=FALSE, results=tex>>=
    print(
        xtable(x,
            caption = "blah", label = "tab:five", table.placement = "tbp", caption.placement = "top")
      , size = "small", table.placement="ht")
    @
    

    I want all my descriptive text to be in line with the tables so that they follow in the sequence that I am writing them. But around the end of a page, some tables move off onto the next page and the descriptive text is just free floating. Is there some particular table.placement command that will ensure that everything stays the way that it is written?