使用RMarkdown LaTex错误

时间:2020-03-20 12:17:19

标签: r pdf render kable kableextra

我正在尝试使用单独的R脚本中的for循环从RMarkdown自动编译多个单独的PDF报告。在编译多个报告而不是单个报告时,使用kable_styling()包中的kableExtra函数似乎存在问题。 这是一个单独脚本中的渲染循环:

mtcars = data.frame(mtcars)
for (car in unique(rownames(mtcars))){
  rmarkdown::render('mtcars_report.Rmd',  # file 2
                    output_file =  paste("report_", car, ".pdf"))
}

这是用于所有报告的YAML标头:

title: "mtcars_report"
output:
  pdf_document: default
  html_document:
    df_print: paged
  header-includes:
  - \usepackage{booktabs}
  - \usepackage{longtable}
  - \usepackage{array}
  - \usepackage{multirow}
  - \usepackage{wrapfig}
  - \usepackage{float}
  - \usepackage{colortbl}
  - \usepackage{pdflscape}
  - \usepackage{tabu}
  - \usepackage{threeparttable}
  - \usepackage{threeparttablex}
  - \usepackage[normalem]{ulem}
  - \usepackage[normalem]{ulem}
  - \usepackage[utf8]{inputenc}
  - \usepackage{makecell}
  - \usepackage{xcolor}
geometry: margin=.8cm

此RMD代码与此循环配合使用,并呈现每个PDF:

knitr::opts_chunk$set(echo = TRUE)

library(rmarkdown)
library(dplyr)
library(kableExtra)

mtcars = data.frame(mtcars)

cars = mtcars[rownames(mtcars)==car,]


{r, echo=FALSE, message=FALSE}

cars_table = cars %>%
  select(mpg, cyl)%>%
  t() %>%
  kable("latex") 

cars_table

这将添加一个kable_styling命令,PDF不会呈现:


cars_table = cars %>%
  select(mpg, cyl)%>%
  t() %>%
  kable("latex") %>%
 kable_styling(latex_options=c("striped", "float_right", "hold_position"),full_width = FALSE)

cars_table

我收到此错误:!未定义的控制顺序。 \ rowcolor

如果我将RMD编织成一个没有循环的文件(即cars = mtcars[rownames(mtcars)=="Merc 280",]可以与kable_styling一起使用。当我尝试使用RMD渲染它时,这似乎是一个问题。我已将所有软件包更新为我正在运行的知识:

update.packages(ask = FALSE, checkBuilt = TRUE)  # update R packages
tinytex::tlmgr_update()  # update LaTeX packages

0 个答案:

没有答案