Наличие beamer_presentation и pdf_book в одном проекте Bookdown - PullRequest
1 голос
/ 08 января 2020

В моем проекте Bookdown у меня есть bookdown::pdf_book и beamer_presentation, указанные в _output.yml. (Почему? Вот пример , а вот объяснение .)

Проблема в том, что pdf_book, кажется, соответствует output_dir, указанному в _bookdown.yml, но не beamer_presentation. Таким образом, при нажатии кнопки Build Book презентация не попадет в каталог docs, она появится в базовом каталоге.

Есть ли способ заставить beamer_presentation уважать output_dir спецификация?

(Кроме того, это будет означать, что что-то должно быть сделано с именами файлов, так как по умолчанию имена будут одинаковыми.)

РЕДАКТИРОВАТЬ: я понял, что использование bookdown::beamer_presentation2 вместо beamer_presentation решит проблему, поскольку оно будет учитывать output_dir. Но я бы назвал это частичным ответом, поскольку мои страхи в последнем предложении поняли: это просто перезапишет pdf_book (так как у них действительно будет одно и то же имя), так что он все еще не работает ...

1 Ответ

2 голосов
/ 05 марта 2020

Да, вам нужно использовать bookdown::beamer_presentation2, что будет соответствовать параметру output_dir в _bookdown.yml.

Что касается вашей второй проблемы (два формата с одинаковым именем выходного файла), то нет ' Хорошее решение на данный момент, если вы хотите нажать только кнопку Knit в RStudio --- вам нужно позвонить rmarkdown::render() и указать имя выходного файла в вызове, например,

rmarkdown::render('file.Rmd', 'bookdown::pdf_book', output_file = 'book.pdf')
rmarkdown::render('file.Rmd', 'bookdown::beamer_presentation2', output_file = 'beamer.pdf')
...