GOOGLE ADS

Dienstag, 12. April 2022

In RStudio funktioniert `knit` immer, aber `rmarkdown::render` schlägt beim zweiten Durchlauf fehl (aber nicht beim ersten!)

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 tinytexPaket. 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 mtcarsschö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.

Weitere Informationen

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 \usepackageZeile hinzugefügt, bis ich keine Fehler mit der gesuchten Formatierung erhalten habe.

Funktionierender Rmd-Code

Sowohl rmarkdown::render()als knitauch (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

Warum werden SCHED_FIFO-Threads derselben physischen CPU zugewiesen, obwohl CPUs im Leerlauf verfügbar sind?

Lösung des Problems Wenn ich das richtig verstehe, versuchen Sie, SCHED_FIFO mit aktiviertem Hyperthreading ("HT") zu verwenden, ...