рендеринг изображений в параметризованных отчетах rmarkdown приводит к сбою pdflatex - PullRequest
0 голосов
/ 10 октября 2018

Я следовал указаниям здесь и здесь , чтобы создать один и тот же отчет для другого подмножества данных.Я получил его для генерации простой PDF-печати с различными входными параметрами, но когда я пытаюсь сгенерировать PDF с помощью ggplot, я получаю сообщение об ошибке.Кто-нибудь знает, почему он жалуется?

Ошибка (с урезанными путями к файлам):

выходной файл: AllDepartmentsReport.knit.md

"C: / Program Files / RStudio / bin / pandoc /pandoc "+ RTS -K512m -RTS AllDepartmentsReport.utf8.md - в латекс - из уценки + autolink_bare_uris + ascii_identifiers + tex_math_single_backslash --output pandoc13b0103e5bc9.tex --template" C: .. \ R \ win-libraryrmarkdown \ rmd \ latex \ default-1.17.0.2.tex "--hanglight-style-tango --latex-engine pdflatex --variable graphics = yes --variable" geometry: margin = 1in "--variable" compact-title:да" !Пакет pdftex.def Ошибка: файл `/ autoReports / MATH_Report_files / figure-lat ex / unnamed-chunk-3-1.pdf 'не найден: используется черновой вариант.

Ошибка: не удалось скомпилировать / autoReports / MATH_Report.tex.См. MATH_Report.log для получения дополнительной информации.

Rscript для передачи параметров generateReports.r:

library(knitr)
library(markdown)
library(rmarkdown)
library(tinytex)

departments <- c("MATH", "BIOL")


ReportGenerator <- function(department) {

  rmarkdown::render("./AllDepartmentsReport.Rmd",
                    params = list(department = dpt),
                    output_file = paste0(dpt,"_Report",".pdf"),
                    output_dir = "../autoReports",
                    clean = FALSE
                     )
}

# lapply(departments, ReportGenerator)

for (dpt in unique(departments) ){
  ReportGenerator(dpt)
}

Rmd с информацией отчета AllDepartmentsReport:

---
output: pdf_document
params: 
  department: "MATH"
---

```{r, include = FALSE}
library(knitr)
library(tidyverse)
library(viridis)
library(purrr)
library(scales)
library(stringr)
library(lubridate)
library(markdown)
library(rmarkdown)
```

This is my report about 

```{r}
print(params$department)
paste(params$department)
print("hi")

ggplot(mtcars) + 
  geom_point(aes(x=mpg, y=hp))

```

Я скачал и использовал miktex.Если я вяжу из RMD, он будет генерироваться правильно.Если я запускаю скрипт без ggplot, он работает.Я также должен отметить, что файл, который он не может найти, на самом деле там.Я также использую 64-битную Windows 10.

Некоторые статьи, которые я пробовал:

Редактировать:

Я пытался поиграть с опциями врендеринг как middleates_dir = и knit_root_dir, но не может получить комбинацию, которая работает.Возможность компилирования только в одной папке.

1 Ответ

0 голосов
/ 11 октября 2018

Я могу успешно сохранить созданные PDF-файлы в другую папку, указав путь как часть имени выходного файла вместо использования output_dir.Примерно так:

  rmarkdown::render(input = "reportMaker.Rmd",
                    params = list(department = dpt),
                    output_file = paste0("../autoReports/",dpt,"_Report",".pdf"), 
                    output_format = "pdf_document"

                     )
...