2017-01-08 6 views
3

Мой вопрос связан с this. Я хочу добавить свое приложение после моих ссылок, поэтому я использую тег after_body в своем yaml, однако мне нужно иметь возможность knit моего файла appendix.Rmd. Я попытался следующий:Включить приложение Rmd после справки

after_body: "`r knitr::knit('appendix.Rmd')`" 

однако это попытки связать файл appendix.Rmd до фактического отчета и, следовательно, не может, поскольку он не имеет необходимые библиотеки или объекты в памяти.

+0

Одна работа вокруг будет вручную сгенерировать раздел ссылок, используя что-то вроде 'библиографии()' функции из [knitcitations] (https://github.com/cboettig/knitcitations). –

+0

Если приложение.Rmd зависит от библиотек и объектов, сгенерированных файлом .Rmd, к которому вы хотите добавить его, у вас всегда будут проблемы с зависимостью. Когда вы вязаете файл .Rmd, он запускается в своей изолированной среде (обеспечивает воспроизводимость). Таким образом, любые прикрепленные библиотеки или объекты, сгенерированные при вставке документа, не будут доступны другому .Rmd. –

+0

Да, я это знаю. Но, возможно, после этого можно будет запустить его? – nathaneastwood

ответ

9

Для того чтобы иметь приложения после ссылок, вы просто включаете div с id = "refs", который сообщает pandoc, куда включить раздел ссылок. Например:

```{r, child = "08_discussion.Rmd"} 
``` 

# References 

<div id="refs"></div> 

```{r, child = "09_appendix.Rmd"} 
``` 

Кредит: https://twitter.com/tjmahr/status/763435602935095296