Пандок вставить приложение после библиографии

Я использую пакет knitr и pandoc в R для преобразования файла.Rmd в PDF. Pandoc связан с файлом.bib и автоматически вставляет библиографию в конец PDF-файла. Записи в моем файле.bib выглядят так, взято с http://johnmacfarlane.net/pandoc/demo/biblio.bib:

@Book{item1,
        author="John Doe",
        title="First Book",
        year="2005",
        address="Cambridge",
        publisher="Cambridge University Press"
  }

@Article{item2,
         author="John Doe",
         title="Article",
         year="2006",
         journal="Journal of Generic Studies",
         volume="6",
         pages="33-34"
}

Для создания моей библиографии я использую следующую функцию, взятую из: http://quantifyingmemory.blogspot.co.il/2013/02/reproducible-research-with-r-knitr.html

knitsPDF <- function(name) {
  library(knitr)
  knit(paste0(name, ".Rmd"), encoding = "utf-8")
  system(paste0("pandoc -o ", name, ".pdf ", name, ".md --bibliography /Users/.../Desktop/test.bib --csl /Users/.../Desktop/taylor-and-francis-harvard-x.csl"))
}

Содержимое моего файла.Rmd:

This is some text [@item1]

This is more text [@item2]

# References

И выведенный PDF выглядит так:

Если я пытаюсь вставить приложение, ссылки по-прежнему печатаются в конце документа, например так:

Как вставить приложение после ссылок?

3 ответа

Решение

В конечном итоге обработка ссылок изменится, чтобы можно было размещать ссылки в любом месте ( https://github.com/jgm/pandoc/issues/771), но сейчас простого способа сделать это не существует.

Как предлагается здесь, вы можете поместить свое приложение в отдельный файл, использовать pandoc для преобразования его во фрагмент LaTeX, а затем включить этот фрагмент, используя --include-after-body флаг. Это тогда прибывало бы после библиографии.

В более новых версиях Pandoc вы можете указать позицию библиографии с помощью <div id="refs"></div> источник

This is some text [@item1]

This is more text [@item2]

# References

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

# appendix

При работе с документом Rmarkdown введите следующий текст, где должны быть размещены цитаты. Его можно разместить в любой части документа, позволяя при необходимости следовать другим материалам, например, приложению.

      ::: {#refs}
:::

Вышеупомянутый код не должен находиться в фрагменте кода R, его следует размещать отдельно на пустых строках. После обработки pandoc через вязальщицу этот код, как я полагаю, создаст <div id="refs"></div>упомянутый в ответе @soca. Две строки кода позволяют точно разместить ссылки в любом разделе документа.

В приведенном ниже примере ссылки сначала помещаются под одноименным заголовком, а все фрагменты кода в документе затем помещаются в приложение кода. Вот Rmarkdown, используемый для создания следующего изображения.

      # References
::: {#refs}
:::

# Appendix A: R Code
```{r ref.label=knitr::all_labels(), echo=TRUE, eval=FALSE}

```

При условии, что существует файл .bib, указанный в yaml frontmatter, предыдущий Rmarkdown производит вывод, подобный следующему:

Полезные ссылки:

Другие вопросы по тегам