2010-07-01 10 views
13

Ich habe eine Reihe von Tabellen mit Text um sie herum, die sie beschreiben. Etwas wie folgt aus:Sweave XTable: Wie positioniert man Tabellen zwischen Text?

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") 
@ 

ich alle meine beschreibenden Text wollen mit den Tabellen in Einklang sein, so dass sie in der Reihenfolge folgen, dass ich sie schreibe. Aber am Ende einer Seite bewegen sich einige Tabellen auf die nächste Seite und der beschreibende Text ist frei schwebend. Gibt es einen bestimmten table.placement Befehl, der sicherstellen wird, dass alles so bleibt, wie es geschrieben ist?

+0

Mit dem Latex-Paket Longtable hilft manchmal auch. –

Antwort

11

Siehe hier für die table Platzierung. Du könntest "! H" versuchen, um den Tisch zu zwingen, zu bleiben wo du willst.

+0

Danke! Ich stellte die Tabelle.placement oben auf "! H" und das löste das Problem. – griffin

+0

Froh, dass Sie es funktioniert haben! –

10

Das Paket float bietet den Float-Spezifizierer H, mit dem Sie Tabellen und Abbildungen so platzieren können, dass sie exakt an der Stelle liegen, an der sie im Latexcode vorkommen. Zum Beispiel:

\usepackage{float} 

... 

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

Danke! Das ist sehr hilfreich! Obwohl! H schien besser zu funktionieren. – griffin

2

Ich finde \clearpage nach einem Schwimmer ist manchmal nützlich.