`bookdown` /` rmarkdown` / `knitr`: элементы заголовка YAML зависят от` knitr :: opts_knit $ get ('rmarkdown.pandoc.to') `? - PullRequest
0 голосов
/ 25 февраля 2019

Представьте заголовок bookdown yaml в соответствии с:

---
title: Example
output:
  bookdown::pdf_book:
    base_format: "function(..., number_sections) rmarkdown::beamer_presentation(...)"
    number_sections: yes
  bookdown::pdf_document2
geometry: margin=1in, a4paper
---

Компиляция работает при использовании цели bookdown::pdf_document2, но завершается неудачно с опцией \usepackage{caption} для bookdown::pdf_book target.

Я хотел бы вызвать запись заголовка geometry ТОЛЬКО для цели bookdown::pdf_document2, но все эксперименты с

!r ifelse(knitr::opts_knit$get('rmarkdown.pandoc.to') %in% c('beamer'), '', 'margin=1in, a4paper')

(со многими итерациями '' /NA / '.na' / NULL / 'null' и т. Д.) Происходит сбой, так как любая пустая настройка для geometry по-прежнему мешает.

Я также не смог найти доступ к содержимому заголовка yamlиз тела bookdown / rmarkdown файла (с целью использования knitr::opts_knit$set(<SOMETHING>) для изменения оттуда структуры данных, полученных из заголовка).

Еще одним вариантом может быть перемещение параметра верхнего уровняgeometry ниже уровней bookdown::pdf_book или bookdown::pdf_document2 - но, похоже, нет возможности для таких переопределений на этом уровне.

Как бы я сделал так, чтобы опция типа geometry была обусловлена ​​на выходе?тип

...