create PDF with preamble from rmarkdown::render

Viewed 22

I am trying to create a PDF from R. I am successful from within RStudio (choosing "Knit to PDF"), but I get an error invoking from R (either with ctl-enter in Rstudio or with Rscript --vanilla invoke_from_R.R from the command line). My actual need is to create from the command line.

For example:

invoke_from_R.Rmd

---
title: "Lumber Jacks"
author: "Washington Irving"
date: "2022-09-19"
output:
  pdf_document:
    keep_tex: true
    keep_md: true
    dev: pdf
    includes:
      in_header: invoke_from_R_preamble.tex

---

```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```

## Where are we?

Dove siamo?

invoke_from_R_preamble.tex

\newcommand\T{\rule{0pt}{2.6ex}}       % Top strut
\newcommand\B{\rule[-1.2ex]{0pt}{0pt}} % Bottom strut

invoke_from_R.R

rmarkdown::render(
  input = "invoke_from_R.Rmd"
, output_file = "invoke_from_R.pdf"
, output_format = rmarkdown::pdf_document(
      rmarkdown::includes(in_header = "invoke_from_R_preamble.tex"),
      toc = TRUE
    , toc_depth = 2
    , number_sections = FALSE
    , keep_md = TRUE
    , keep_tex = TRUE
    , fig_width = 6.5
    , fig_height = 4.5
    , fig_crop = FALSE
  )
)

The error that I get is:

$ Rscript --vanilla invoke_from_R.R
Error in !implicit_figures : invalid argument type
Calls: <Anonymous> ... <Anonymous> -> output_format -> pandoc_options -> from_rmarkdown
Execution halted

I have not yet found a workaround.

When I comment out this line:

rmarkdown::includes(in_header = "invoke_from_R_preamble.tex"),

I don't get the error, but I need to use the preamble because some of my LaTeX macros get processed even when I use the setting that is supposed to prevent this.

I am using (on Linux):

  • R version 4.2.1 (2022-06-23)
  • rmarkdown 2.14

Suggestions?

Thank you.

0 Answers
Related