2010-07-01 22 views
13

Tengo una serie de tablas con el texto a su alrededor que las describe. Algo como esto:Sweave xtable: cómo colocar las tablas entre texto?

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

Quiero todo mi texto descriptivo para estar en línea con las mesas para que sigan en el orden que les escribo. Pero alrededor del final de una página, algunas tablas se mueven a la página siguiente y el texto descriptivo simplemente flota libremente. ¿Hay algún comando particular de table.placement que se asegure de que todo se quede como está escrito?

+0

El uso del paquete de látex longtable también ayuda a veces. –

Respuesta

11

Consulte aquí para la ubicación table. Podrías probar con "! H" para forzar a la mesa a permanecer donde quieras.

+0

Gracias! Terminé configurando table.placement en "! H" y eso resolvió el problema. – griffin

+0

¡Me alegra que lo hayas hecho funcionar! –

10

El paquete de látex float proporciona el especificador de flotador H, que le permite forzar que las tablas y las figuras estén exactamente en la ubicación en que aparecen en el código de látex. Por ejemplo:

\usepackage{float} 

... 

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

¡Gracias! ¡Eso es muy útil! Aunque! H parecía funcionar mejor. – griffin

2

Encuentro \clearpage después de que un flotador a veces es útil.

Cuestiones relacionadas