2016-04-07 12 views
1

Ich erstelle ein PDF Dokument mit rmarkdown und knitr. Unten ist ein Beispielcode-Chunk. Beim Stricken nach PDF druckt es den Skalierungswert auf die PDF, die ich nicht möchte. Meine aktuelle Tabelle ist viel breiter, daher ist die Verwendung des Scalebox-Arguments notwendig. Dies geschieht nurR Markdown - xtable mit longtable und scalebox Ausgaben scalebox Wert

```{r, results = 'asis', echo = FALSE, message = FALSE, warning=FALSE} 

    x <- matrix(rnorm(1000), ncol = 10) 
    x.big <- xtable(x) 

    print.xtable(x.big, hline.after=c(-1), tabular.environment = "longtable", scalebox = 0.7) 

    ``` 

Image of scalebox text output

wenn die tabellarische long Umgebung. Wenn Sie denselben Code-Chunk mit der Standard-Tabellenumgebung ausführen, wird die Scale-Box-Information nicht ausgegeben. Ich habe versucht, jedes Kommentarargument in der print.xtable-Funktion und dem r-Code-Chunk auf FALSE zu setzen, aber ohne Glück.

Wie kann ich meine PDF-Datei ausgeben, ohne dass der Scalebox-Text gedruckt wird?

+0

FWIW Wenn Sie die Tex-Ausgabe beibehalten und das RMD-Dokument von Hand stricken, werden Sie sehen, dass der Schritt rmd-> md OK ist, aber md-> tex entkommt Latexbefehlen. Also ich denke, es ist ein Pandora-Problem. Sie könnten vielleicht stattdessen mit einer RNW-Quelldatei arbeiten, wenn es keine einfache Problemumgehung gibt. – baptiste

+0

Gibt es dafür eine Antwort? – user3022875

+0

@ user3022875 Ich veröffentlichte eine Arbeit als Antwort, aber wird es nicht als beantwortet markieren, da es nicht wirklich das angegebene Problem des Entfernens des Scalebox-Textes aus der PDF-Ausgabe behebt. – TBT8

Antwort

0

Ich habe keinen Weg gefunden, um das Scale-Box-Problem zu umgehen. Was ich getan habe, war das Größen-Argument in print.xtable. Unten ist eine Beispielfunktion, wobei Größe eine ganze Zahl ist, die die gewünschte Schriftgröße darstellt.

outputXtableTest <- function(df, size){ 

    sizeNew = paste0("\\fontsize{", size,"pt}{", size+1, "pt}\\selectfont") 

    print.xtable(
      df, hline.after=c(-1,0, 1:nrow(table)), 
      tabular.environment = 'longtable', 
      floating = FALSE, size = sizeNew 
      ) 
} 

Weitere Informationen finden Sie unter post.