2013-05-07 13 views
6

Używanie R-studio i Knitr do utworzenia pliku pdf Nie mogę uzyskać tabeli wyśrodkowanej w poziomie. Jak widać z poniższego przykładu, działa dobrze przy użyciu xtable(), ale tabele latex() - wszystkie są wyrównane do lewej. Jak rozumiem dokumentację Hmisc, tabele utworzone z lateksu() powinny być automatycznie wyśrodkowane w poziomie, ale muszę zrobić coś złego.Tabele utworzone z latexu() z pakietu Hmisc są wyrównane do lewej strony, zamiast być wyśrodkowane w dokumencie 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} 

wersja R 3.0.0 (2013-04-03)

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

+0

Jakie cechy "latexu" są niedostępne, które nie są dostępne w 'xtable'? Wygląda na to, że 'center' jest martwym argumentem. Badam ... –

+0

Xtable() niestety nie akceptuje obiektów tabelarycznych. –

Odpowiedz

5

nie mam czasu, aby przejść za pomocą kodu w latex.s pakietu Hmisc, ale dopóki to nie zrobię, zapakuj porcje w centrum centrowania. Nie jest to najczystsze rozwiązanie, ale wykonuje swoją pracę.

Spowoduje to utworzenie wyśrodkowanego stołu.

+0

To dobre podejście. Plik pomocy dla 'Hmisc :: tabulr' pokazuje także, jak zamknąć wyjście' latex (tabulr()) 'w arbitralnym znaczniku LaTeX. Zauważ, że obiekt wytworzony przez 'tabulr' nie jest obiektem, który ma obsługiwać' Hmisc :: latex'. Prostsza metoda "latex" w pakiecie 'tables' jest przeznaczona dla tego wyjścia. –

Powiązane problemy