如何在小插图中包含 inst/REFERENCES.bib

How to include inst/REFERENCES.bib in vignette

运行 devtools::check() 在我的计算机上,我可以使用我的 .bib 文件的绝对路径强制构建我的包而不会出错。但是由于我将所有引用都包含在包小插图中并试图指向包含所有 bibtex 引用的 .bib 文件,所以我还没有使用 GitHub Actions 构建包(绝对路径没有感觉)。我正在寻求有关如何在小插图的 YAML header.

中指向 .bib 文件的建议

.bib 文件在 inst/ 目录中的位置允许我使用包的 .Rd 文档中的引文(如此处建议:https://geobosh.github.io/Rdpack/#org88fb0a7),所以我主要是对让我在该位置引用文件而不是将其保存在备用目录中的解决方案感兴趣。

我的 YAML header 显示:

---
title: "Using_my_package"
output: rmarkdown::html_vignette
bibliography: "where/I/keep/my/package/inst/REFERENCES.bib"
latex_engine: xelatex
vignette: >
  %\VignetteIndexEntry{Using_my_package}
  %\VignetteEngine{knitr::rmarkdown}
  %\VignetteEncoding{UTF-8}
  %\SweaveUTF8
  
---

我也试过了

 bibliography: `'r system.file("inst", "REFERENCES.bib", package="mypackage")`'`

如何在 YAML header 中使用相对路径,以便我可以从任何位置构建小插图?

看来解决方案是在 system.file 调用中省略 "inst"。感谢@Martin Morgan here 的评论。工作 YAML header 现在读取

bibliography: `'r system.file("REFERENCES.bib", package="mypackage")`'`

并且在具有 GitHub 操作的所有系统以及我的本地计算机上构建成功。