luc*_*ano 27 markdown r pandoc knitr
我在R中使用knitr包和pandoc将.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"
}
Run Code Online (Sandbox Code Playgroud)
为了构建我的参考书目,我使用以下函数,取自: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"))
}
Run Code Online (Sandbox Code Playgroud)
我的.Rmd文件的内容是:
This is some text [@item1]
This is more text [@item2]
# References
Run Code Online (Sandbox Code Playgroud)
输出的PDF看起来像这样:

如果我尝试插入附录,则引用仍会在文档末尾打印,如下所示:

如何在引用后插入附录?
sco*_*coa 39
使用较新的pandoc版本,您可以使用source指定参考书目的位置<div id="refs"></div>
This is some text [@item1]
This is more text [@item2]
# References
<div id="refs"></div>
# appendix
Run Code Online (Sandbox Code Playgroud)
Joh*_*ane 13
最终引用处理将改变,以便可以将引用放在任何你喜欢的地方(https://github.com/jgm/pandoc/issues/771),但是现在没有简单的方法可以做到这一点.
如此处所示,您可以将附录放在单独的文件中,使用pandoc将其转换为LaTeX片段,然后使用该--include-after-body标志包含该片段.它将在参考书目之后出现.
在处理 Rmarkdown 文档时,在要放置引文的位置输入以下文本。它可以放置在文档的任何部分,以便根据需要添加其他材料(例如附录)。该方法依赖于 pandoc 的受防护的 div,它将在 Rmarkdown 中工作。
\n::: {#refs}\n:::\nRun Code Online (Sandbox Code Playgroud)\n上述代码不应位于 R 代码块中,而应单独放置在空行中。一旦 pandoc 通过 kitter 处理,该代码将产生与<div id="refs"></div>@soca 的答案中提到的相同的结果。这两行代码始终允许将引用精确放置在文档的任何部分中。
在下面的示例中,引用首先放置在同名标题下,而文档中的所有代码块随后放置在代码附录中。这是放置在 Rmarkdown 中的 pandoc fenced div,可用于生成下面的图像。
\n# References\n::: {#refs}\n:::\n\n# Appendix A: R Code\n```{r ref.label=knitr::all_labels(), echo=TRUE, eval=FALSE}\n\n```\nRun Code Online (Sandbox Code Playgroud)\n如果 yaml frontmatter 中标识了 .bib 文件,则前面的 Rmarkdown 会生成类似于以下内容的输出:\n
有用的网址:
\n| 归档时间: |
|
| 查看次数: |
6943 次 |
| 最近记录: |