Mar*_*nar 5 r knitr r-markdown kableextra kable
我正在尝试做一些非常简单的事情:以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")
```
Run Code Online (Sandbox Code Playgroud)
RStudio中的“编织”似乎总是在此文件上运行,按预期方式生成mtcars数据帧,并使用kable()
运行rmarkdown::render("test.Rmd")可以在“第一次运行”中进行,但不能在第二次运行中进行。它引发错误:
! LaTeX Error: Unknown float option `H'.
Run Code Online (Sandbox Code Playgroud)
此后,RStudio中的“编织”将生成PDF,但是R / knitr会打印rmarkdown::render("test.Rmd")命令中的所有警告/错误消息。
rmarkdown::render("test.Rmd")如果将上述代码块更改为,则运行不会产生错误
```{r cars}
mtcars %>%
kable()
```
Run Code Online (Sandbox Code Playgroud)
那对我不起作用。我在 xcolor 选项中遇到冲突。第3页指出的解决方案:https://haozhu233.github.io/kableExtra/awesome_table_in_pdf.pdf
是添加:
options(kableExtra.latex.load_packages = FALSE)
Run Code Online (Sandbox Code Playgroud)
在 YAML 中:
header-includes:
- \usepackage{booktabs}
- \usepackage{longtable}
- \usepackage{array}
- \usepackage{multirow}
- \usepackage{xcolor}
- \usepackage{wrapfig}
- \usepackage{float}
- \usepackage{colortbl}
- \usepackage{pdflscape}
- \usepackage{tabu}
- \usepackage{threeparttable}
- \usepackage{threeparttablex}
- \usepackage[normalem]{ulem}
- \usepackage{makecell}
Run Code Online (Sandbox Code Playgroud)
请注意,您可以删除任何不需要的包。
我选择回答我自己的问题,因为我找到了一种解决方法,如果有人找到错误的原因,则希望不需要该解决方法。
看起来 PDF 渲染引擎除了最基本的 LaTeX 安装之外不识别任何东西tinytex。我尝试tinytex::tlmgr_install手动安装必要的 LaTeX 包,但它们都返回了“包已存在”消息。
我已将以下内容添加到 Rmd 中的 YAML 中:
header-includes:
- \usepackage{booktabs}
- \usepackage{float}
- \usepackage{colortbl}
- \usepackage[table]{xcolor}
Run Code Online (Sandbox Code Playgroud)
我基本上添加了每一\usepackage行,直到我没有收到我正在寻找的格式的错误。
rmarkdown::render()和(Rstudio)都knit可以工作(也可以在我自己的代码上工作!):
---
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")
```
Run Code Online (Sandbox Code Playgroud)