Параметры латексной оболочки в заголовке YAML не используются - PullRequest
1 голос
/ 01 апреля 2019

Я пишу отчет о Rmarkdovn, но когда вы пытаетесь скомпилировать - параметры pandoc_args игнорируются при компиляции pdf.

Я нахожу этот вопрос: Можно ли включить изображение svg в визуализированный документ pdfпо rmarkdown?

Но это не работает, потому что - latex-engine-opt заменено на - pdf-engine-opt .Я заменил, но тоже не сработало.

Команда компиляции:

Rscript -e "rmarkdown::render('test.rmd')"

test.rmd

---
title: Test
papersize: a4paper
output:
  pdf_document:
    latex_engine: pdflatex
    pandoc_args: [
      --pdf-engine-opt, -shell-escape,
      --pdf-engine-opt, -interaction=nonstopmode]
header-includes:
  - \usepackage{minted}
---

Вывод:

processing file: test.rmd
  |................................                                 |  50%
  ordinary text without R code

  |.................................................................| 100%
label: unnamed-chunk-1 (with options)
List of 1
 $ engine: chr "python"


output file: test.knit.md

/usr/bin/pandoc +RTS -K512m -RTS test.utf8.md --to latex --from markdown+autolink_bare_uris+ascii_identifiers+tex_math_single_backslash --output test.tex --template /home/renesat/R/x86_64-pc-linux-gnu-library/3.5/rmarkdown/rmd/latex/default-1.17.0.2.tex --highlight-style tango --pdf-engine pdflatex --variable graphics=yes --pdf-engine-opt --shell-escape --pdf-engine-opt -interaction=nonstopmode --variable 'geometry:margin=1in' --variable 'compact-title:yes'
! Package minted Error: You must invoke LaTeX with the -shell-escape flag.

Error: Failed to compile test.tex. See https://yihui.name/tinytex/r/#debugging for debugging tips. See test.log for more info.
Execution halted

Я могу использовать knitr -> pandoc -> xelatex, но было бы удобнее использовать заголовок YAML.

1 Ответ

0 голосов
/ 19 июня 2019

R Документы с уценкой компилируются в PDF через tinytex::latexmk().Чтобы включить опцию -shell-escape для вашего движка LaTeX, вы можете установить глобальную опцию tinytex.engine_args, например, добавить этот фрагмент кода в ваш документ:

```{r, include=FALSE}
options(tinytex.engine_args = '-shell-escape')
```

Подробнее см. На странице справки ?tinytex::latexmkинформация.

Механизм LaTeX вызывается tinytex::latexmk() вместо Pandoc, поэтому аргумент Pandoc --pdf-engine-opt не будет работать.

...