在我的计算机上运行devtools::check(),我可以使用我的.bib文件的绝对路径来强制构建我的包,而不会出错。但是由于我在包vignette中包含了我所有的引用,并试图指向包含所有bibtex引用的.bib文件,所以我还没有使用GitHub操作来构建包(其中绝对路径没有任何意义)。我正在寻求关于如何指向vignette的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头中使用相对路径,以便可以从任何位置构建vignette?
发布于 2021-01-01 01:22:53
似乎解决方案是在system.file调用中省略"inst"。感谢@Martin Morgan here的评论。工作的YAML标头现在显示为
bibliography: `'r system.file("REFERENCES.bib", package="mypackage")`'`在所有使用GitHub操作的系统上以及我的本地计算机上,构建都成功了。
https://stackoverflow.com/questions/65521581
复制相似问题