【问题标题】:How to include inst/REFERENCES.bib in vignette如何在小插图中包含 inst/REFERENCES.bib
【发布时间】:2021-01-01 01:22:53
【问题描述】:

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

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

我的 YAML 标头内容如下:

---
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 标头中使用相对路径,以便从任何位置构建小插图?

【问题讨论】:

  • 为什么不将 bibfile 存储在 vignettes 文件夹中?这适用于我的包,您可以在 YAML 标头中使用 bibliography: REFERENCES.bib
  • 谢谢@J_F!这是否会导致在您的函数的 roxygen cmets 中包含引用时出现任何问题?我按照Rdpack 包的说明进行操作,该说明将它们保存在inst/ 文件夹中。 geobosh.github.io/Rdpack/#org88fb0a7

标签: r package knitr vignette


【解决方案1】:

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

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

并且在所有使用 GitHub Actions 的系统以及我的本地计算机上构建成功。

【讨论】:

    猜你喜欢
    • 2019-07-05
    • 1970-01-01
    • 2019-02-19
    • 2020-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多