2013-05-07 12 views
6

Mit R-Studio und Knitr erstellen pdf, vermag ich nicht zu bekommen die Tische zentriert horisontally zentriert. Wie im folgenden Beispiel gezeigt, funktioniert es mit xtable(), aber die latex() - Tabellen sind alle linksbündig. Wie ich die Hmisc-Dokumentation verstehe, sollten Tabellen, die aus Latex() erstellt wurden, automatisch automatisch zentriert werden, aber ich muss etwas falsch machen.Tabellen aus Latex() erstellt wurde aus dem Hmisc-Paket sind horisontally linksbündig, anstatt dass sie horisontally im pdf-Dokument

\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} 

R Version 3.0.0 (2013-04-03)

Plattform: x86_64-w64-mingw32/x64 (64-Bit)

+0

Welche Eigenschaften von 'Latex' fehlen Ihnen, die nicht in' xtable' verfügbar sind? Sieht so aus als wäre "center" ein totes Argument. Ich untersuche ... –

+0

Das xtable() akzeptiert leider keine Tabellenobjekte. –

Antwort

5

gehe ich nicht die Zeit haben, durch den Code in latex.s des Hmisc Pakets, aber bis ich tue, fühlen Sie sich frei, Ihre Stücke in zentrierende Umgebung einzuwickeln. Nicht die sauberste Lösung, aber es macht die Arbeit erledigt.

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

Dies erzeugt eine zentrierte Tabelle.

+0

Das ist ein guter Ansatz. Die Hilfedatei für 'Hmisc :: tabulr' zeigt auch, wie man die Ausgabe von' latex (tabulr()) 'in ein beliebiges LaTeX-Markup einfügt. Beachten Sie, dass das von 'tabulr' erzeugte Objekt kein Objekt ist, mit dem' Hmisc :: latex' umgehen soll. Die einfachere "Latex" -Methode im 'tables'-Paket ist für diese Ausgabe gedacht. –