2013-05-07 12 views
6

Utilizzo di R-studio e Knitr per creare un pdf Non riesco a centrare le tabelle orizzontalmente. Come visto dall'esempio qui sotto, funziona bene usando xtable(), ma i latex() - tabels sono tutti allineati a sinistra. Come comprendo la documentazione di Hmisc, le tabelle create da latex() dovrebbero essere centrate orizzontalmente in modo orizzontale, ma devo fare qualcosa di sbagliato.Le tabelle create da latex() dal pacchetto Hmisc sono allineate orizzontalmente a sinistra invece di essere centrate orizzontalmente nel documento pdf

\documentclass{article} 

\begin{document} 

<<>>= 
library(Hmisc) 
library(tables) 
library(xtable) 
@ 


The tables are all left-aligned: 
<<results='asis'>>= 
latex( tabular((Species + 1) ~ (n=1) + Format(digits=2)*(Sepal.Length + Sepal.Width)*(mean + sd), data=iris) ) 
@ 

<<results='asis'>>= 
latex( tabular((Species + 1) ~ (n=1) + Format(digits=2)*(Sepal.Length + Sepal.Width)*(mean + sd), data=iris),center="center" ) 
@ 

<<results='asis'>>= 
latex( tabular((Species + 1) ~ (n=1) + Format(digits=2)*(Sepal.Length + Sepal.Width)*(mean + sd), data=iris),center="centering" ) 
@ 


I have tried to use the fig.align option, but it does not do it: 
<<results='asis',fig.align='center'>>= 
latex( tabular( (Species + 1) ~ (n=1) + Format(digits=2)*(Sepal.Length + Sepal.Width)*(mean + sd), data=iris  ) ) 
@ 


with xtable it automatically centers: 
<<results='asis'>>= 
xtable(table(Puromycin$conc, Puromycin$state)) 
@ 

\end{document} 

versione R 3.0.0 (2013-04-03)

Piattaforma: x86_64-W64-mingw32/x64 (64-bit)

+0

Quali caratteristiche di 'latex' ti mancano che non sono disponibili in' xtable'? Sembra che 'center' sia un argomento morto. Sto indagando ... –

+0

L'xtable() sfortunatamente non accetta oggetti tabulari. –

risposta

5

non ho il tempo di andare tramite il codice in latex.s del pacchetto Hmisc, ma fino a quando non lo faccio, sentiti libero di avvolgere i tuoi blocchi in un ambiente di centratura. Non è la soluzione più pulita, ma fa il lavoro.

\begin{centering} 
    <<results='asis'>>= 
    latex(tabular((Species + 1) ~ (n=1) + Format(digits=2)*(Sepal.Length + Sepal.Width)*(mean + sd), data=iris)) 
@ 
\end{centering} 

Questo produce una tabella centrata.

+0

Questo è un buon approccio. Il file di aiuto per 'Hmisc :: tabulr' mostra anche come racchiudere l'output di' latex (tabulr()) 'nella marcatura LaTeX arbitraria. Si noti che l'oggetto prodotto da 'tabulr' non è un oggetto che' Hmisc :: latex' è destinato a gestire. Il più semplice metodo 'latex' nel pacchetto' tables' è pensato per questo output. –