这就是我解决这个问题的方法。我从 RStudio 编织。奇怪的是,我不得不对日期和 csl 字段使用一种解决方案,而对参考书目字段使用不同的解决方案。 !expr 在日期或 csl 行中不起作用(对我来说)。并且引用的 r 代码在参考书目行中不起作用(对我而言)。我在一个包(inst/docs 文件夹)中有参考书目和 csl 文件。不属于该软件包的 rmarkdown 文件使用这些文件。
---
title: "Title"
date: '`r format(Sys.time(), "%d %B, %Y")`'
output: html_document
bibliography: !expr system.file("docs", "my.bib", package = "MyPackage")
csl: '`r system.file("docs", "my.csl", package = "MyPackage")`'
---
# Introduction
Yada yada [@MyRef04].
# References
my.bib 是带有 MyRef04 的 BibTex 文件。 csl 是样式文件
在这种情况下,一个人维护一个包含数据、代码、参考书目等的包。包编写者可能不知道的其他人从 GitHub 安装该包并编写或运行使用该包的 rmarkdown 文件。用户几乎可以肯定不使用 Git 或 GitHub,我不希望他们在从 GitHub 安装软件包后下载任何额外的文件。
更新:发布以上内容后,我碰巧从 GitHub 安装了 markdown,因为我需要在开发版本中的一些东西。使用 GitHub 上的 rmarkdown 版本“1.7.5”,您可以在参考书目行中使用 r 代码:
---
title: "Title"
date: '`r format(Sys.time(), "%d %B, %Y")`'
output: html_document
bibliography: '`r system.file("docs", "my.bib", package = "MyPackage")`'
csl: '`r system.file("docs", "my.csl", package = "MyPackage")`'
---
从 GitHub 安装 rmarkdown
library(devtools)
install_github("rstudio/rmarkdown")