我正在尝试做一些非常简单的事情:生成 PDF 格式的报告。终于找到了一种重现我的问题的方法。我需要使用 rmarkdown::render
根据 GlobalEnv
中的数据创建报告.我正在使用 tinytex
包裹。这里是 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")
```
作品:
RStudio 中的“Knit”似乎总是在这个文件上工作,正如预期的那样,产生
mtcars
数据框,用 kable()
很好地格式化不起作用(但应该?):
运行
rmarkdown::render("test.Rmd")
适用于第一次运行,但不是第二次。它抛出错误:! LaTeX Error: Unknown float option `H'.
之后,RStudio 中的“Knit”会生成 PDF,但 R/knitr 会打印来自
rmarkdown::render("test.Rmd")
的任何警告/错误消息。命令。附加信息
运行
rmarkdown::render("test.Rmd")
如果将上述代码块更改为```{r cars}
mtcars %>%
kable()
```
最佳答案
我选择回答我自己的问题,因为我找到了一种解决方法,如果有人找到错误的原因,希望它是不必要的。
除了最基本的 LaTeX 安装 tinytex
之外,PDF 渲染引擎似乎什么都不识别。我尝试 tinytex::tlmgr_install
手动安装必要的 LaTeX 包,但它们都返回了“包已经存在”消息。
解决方案
我在 Rmd 的 YAML 中添加了以下内容:
header-includes:
- \usepackage{booktabs}
- \usepackage{float}
- \usepackage{colortbl}
- \usepackage[table]{xcolor}
我基本上添加了每一行 \usepackage
直到我没有收到我正在寻找的格式错误。工作 Rmd 代码
rmarkdown::render()
和 knit
(Rstudio)都可以工作(以及我的 OWN 代码!):---
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")
```
关于r - 在 RStudio 中, `knit` 始终有效,但 `rmarkdown::render` 在第二次运行时失败(但不是第一次!),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56606299/