Компилировать несколько PDF с помощью RMarkdown LaTex Error - PullRequest
0 голосов
/ 20 марта 2020

Я пытаюсь автоматически скомпилировать несколько отдельных отчетов PDF из RMarkdown, используя для l oop в отдельном скрипте R. Кажется, есть проблема с использованием функции kable_styling() из пакета kableExtra при составлении нескольких отчетов, но не для одного отчета. Это рендер l oop в отдельном скрипте:

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 работает с этим l oop и отображает каждый 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 как один файл без l oop (то есть cars = mtcars[rownames(mtcars)=="Merc 280",], он РАБОТАЕТ с kable_styling. Это просто кажется проблемой, когда я пытаюсь чтобы отобразить его с помощью l oop. Я обновил все пакеты, насколько мне известно, под управлением:

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