Ich versuche, etwas ganz Einfaches zu tun: Berichte im PDF-Format zu generieren. Endlich einen Weg gefunden, der mein Problem reproduziert. Ich muss verwenden rmarkdown::render
, um Berichte basierend auf Daten in GlobalEnv
. Ich verwende das tinytex
Paket. Hier ist test.Rmd
:
---
title: "Untitled"
output: pdf_document
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = FALSE)
library(kableExtra)
library(tidyverse)
```
## R Markdown
```{r cars}
mtcars %>%
kable(booktabs = TRUE) %>%
kable_styling(latex_options = "striped")
```
Werke:
"Knit" in RStudio scheint immer mit dieser Datei zu arbeiten und erzeugt wie erwartet den mtcars
schön formatierten Datenrahmenkable()
Funktioniert nicht (sollte aber?):
Laufen rmarkdown::render("test.Rmd")
funktioniert beim ERSTEN LAUF, aber NICHT beim zweiten. Es wirft den Fehler:
! LaTeX Error: Unknown float option `H'.
Danach erzeugt "Knit" in RStudio das PDF, aber R/knitr druckt alle Warn-/Fehlermeldungen des rmarkdown::render("test.Rmd")
Befehls.
Die Ausführung rmarkdown::render("test.Rmd")
erzeugt keine Fehler, wenn der obige Codeabschnitt geändert wird
```{r cars}
mtcars %>%
kable()
```
Lösung des Problems
Ich habe mich entschieden, meine eigene Frage zu beantworten, weil ich eine Problemumgehung gefunden habe, die hoffentlich nicht erforderlich ist, wenn jemand den Grund für die Fehler findet.
Es scheint, dass die PDF-Rendering-Engine nur die einfachste LaTeX-Installation von tinytex
. Ich habe versucht tinytex::tlmgr_install
, die erforderlichen LaTeX-Pakete manuell zu installieren, aber alle haben die Meldung "Paket bereits vorhanden" zurückgegeben.
Lösung
Ich habe Folgendes zu meinem YAML in meinem Rmd hinzugefügt:
header-includes:
- \usepackage{booktabs}
- \usepackage{float}
- \usepackage{colortbl}
- \usepackage[table]{xcolor}
Ich habe im Wesentlichen jede \usepackage
Zeile hinzugefügt, bis ich keine Fehler mit der gesuchten Formatierung erhalten habe.
Funktionierender Rmd-Code
Sowohl rmarkdown::render()
als knit
auch (Rstudio) funktionieren (und auch auf meinem EIGENEN Code!):
---
title: "Untitled"
output: pdf_document
header-includes:
- \usepackage{booktabs}
- \usepackage{float}
- \usepackage{colortbl}
- \usepackage[table]{xcolor}
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = FALSE)
library(kableExtra)
library(tidyverse)
```
## R Markdown
```{r cars}
mtcars %>%
kable(booktabs = TRUE) %>%
kable_styling(latex_options = "striped")
```
Keine Kommentare:
Kommentar veröffentlichen