我正在尝试做一些非常简单的事情:生成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中的“编织”似乎总是可以在此文件上运行,并按预期生成mtcars
数据帧,并用kable()
很好地格式化
运行rmarkdown::render("test.Rmd")
在第一次运行时有效,但第二次则无效。它引发错误:
! LaTeX Error: Unknown float option `H'.
此后,RStudio中的“编织”会生成PDF,但是R / knitr会打印来自rmarkdown::render("test.Rmd")
命令的任何警告/错误消息。
如果将以上代码块更改为{p> 1,则运行rmarkdown::render("test.Rmd")
不会产生错误
```{r cars}
mtcars %>%
kable()
```
答案 0 :(得分:3)
那对我不起作用。我在 xcolor 选项中遇到了冲突。第 3 页中指出的解决方案:https://haozhu233.github.io/kableExtra/awesome_table_in_pdf.pdf
是添加:
options(kableExtra.latex.load_packages = FALSE)
在 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}
请注意,您可以删除任何不需要的包。
答案 1 :(得分:1)
我选择回答自己的问题,因为我发现了一种变通办法,如果有人发现错误的原因,希望该变通办法是不必要的。
似乎PDF渲染引擎只能识别tinytex
的最基本的LaTeX安装。我尝试tinytex::tlmgr_install
来手动安装必要的LaTeX软件包,但它们都返回了“软件包已存在”消息。
我在Rmd中的YAML中添加了以下内容:
header-includes:
- \usepackage{booktabs}
- \usepackage{float}
- \usepackage{colortbl}
- \usepackage[table]{xcolor}
我基本上在每一行\usepackage
上都添加了一行,直到我没有找到想要的格式错误为止。
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")
```