Yaml knitr/Rmarkdown/pandoc:如何在.Rmd文件中全局设置书目路径

Yaml knitr/Rmarkdown/pandoc:如何在.Rmd文件中全局设置书目路径,yaml,r-markdown,knitr,pandoc,pandoc-citeproc,Yaml,R Markdown,Knitr,Pandoc,Pandoc Citeproc,[供参考:这个问题与 在LaTeX文档中,甚至在Rmarkdown.Rnw中,我可以简单地使用 \bibliography{graphics, statistics, timeref} 让BibTeX搜索文件graphics.bib,statistics.bib,以及timeref.bib 在我的本地texmf目录下 在.Rmd文件中,使用yaml头,我被迫使用 绝对路径(不可移植)或相对路径(笨重、容易出错)。以下是最近的一个示例: --- title: "My Cool Paper" au

[供参考:这个问题与

在LaTeX文档中,甚至在Rmarkdown
.Rnw
中,我可以简单地使用

\bibliography{graphics, statistics, timeref}
让BibTeX搜索文件
graphics.bib
statistics.bib
,以及
timeref.bib
在我的本地
texmf
目录下

.Rmd
文件中,使用
yaml
头,我被迫使用 绝对路径(不可移植)或相对路径(笨重、容易出错)。以下是最近的一个示例:

---
title: "My Cool Paper"
author: "Me"
date: "`r format(Sys.time(), '%d %B, %Y')`"
output:
  html_document

bibliography:
  - "../../../localtexmf/bibtex/bib/graphics.bib"
  - "../../../localtexmf/bibtex/bib/statistics.bib"
  - "../../../localtexmf/bibtex/bib/timeref.bib"
---
问题:正如我可以使用
r格式(Sys.time(),'%d%B,%Y')
来使用r来填充日期一样,我可以使用一些r表达式来查找/填充
参考书目下.bib文件的路径:

好的,从前面的问题来看,我试着使用

bibliography:
  - "`r system('kpsewhich graphics.bib')`"
  - "`r system('kpsewhich statistics.bib')`"
  - "`r system('kpsewhich timeref.bib')`"
这会找到正确的路径,但只是将它们作为R标记日志中的输出生成,而不是生成到
yaml
标题中。我看到了:

processing file: Vis-MLM.Rmd
  |........                                                              |  11%
   inline R code fragments

C:/Users/friendly/Dropbox/localtexmf/bibtex/bib/graphics.bib
C:/Users/friendly/Dropbox/localtexmf/bibtex/bib/statistics.bib
C:/Users/friendly/Dropbox/localtexmf/bibtex/bib/timeref.bib

我差点就猜对了,但忘了
intern=TRUE

这项工作:

bibliography:
  - "`r system('kpsewhich graphics.bib', intern=TRUE)`"
  - "`r system('kpsewhich statistics.bib', intern=TRUE)`"
  - "`r system('kpsewhich timeref.bib', intern=TRUE)`"

有趣的问题!你看过这篇文章吗?是的,我看过那篇文章,但它(实际上)回答了一个不同的问题。这个问题和类似的问题暴露了
yaml
->{
r-markdown
pandoc citeproc
}中的缺陷/限制chain.我之所以发布这篇文章,是因为我认为对于我描述的特定问题可能有一个巧妙的解决方法。通过相对路径包含参考书目实际上是很有帮助的。在我的例子中,参考文件位于父目录中,所以
参考书目:-“r system('kpsewhich../references.bib',intern=TRUE)`”
成功了:)