正如在this question中一样,我希望在函数文档中包含对文章的引用。我在所有文档中都使用roxygen2,而且似乎有一个到roxygen2的pull request,其中包含必要的功能,但是Hadley拒绝了它,因为roxygen2处于维护模式。从那时起,事情发生了变化吗?有没有其他方法可以引用/包含以BibTeX格式存储的文章引用?
发布于 2017-11-24 21:05:25
Rdpack package承诺提供您所请求的功能。
要进行设置,您还需要将行RdMacros: Rdpack添加到包的DESCRIPTION文件中(注意大写M),并将Rdpack添加到Imports:字段。
然后,您可以将bibtex库保存到inst/REFERENCES.bib中,并使用以下命令在文档中引用它们:
#' @references{
#' \insertRef{bibtexKey}{YourPackageName}
#' }
#'
#' # The below line ought to be included in at least one of your documentation
#' # sections, so that roxygen2 adds Rdpack to your NAMESPACE file.
#'
#' @importFrom Rdpack reprompt当我第一次使用这个包时,我最初遇到了一些错误;重新启动R似乎可以做到这一点。
如果使用devtools::document()构建文档,将会遇到有关unknown macro '\insertRef'的警告,因为devtools不读取描述文件的'RdMacros‘行;可以安全地忽略这些警告。devtools可能无法正确呈现引用,但最终构建包时会正确呈现;要在此期间以正确的格式查看它们,您可以从单独的命令窗口运行R CMD Rd2pdf。
发布于 2018-11-09 06:16:37
ms609很好地总结了这一点。我要补充的是,2018年发布的Rdpack还提供了引用宏,以及使用单个命令insertAllCited{}生成参考书目的能力。Vignette Inserting_bibtex_references也通过ms609链接,提供最新的信息。
Rdpack::viewRd()可用于查看呈现的引文,而无需构建包,如下所示:
Rdpack::viewRd("./man/filename.Rd") # text
Rdpack::viewRd("./man/filename.Rd", type = "html") # html这可能对roxygen2用户特别有用,因为roxygen2会处理Rd文件,但不会渲染引用。在调用Rdpack::viewRd()之前,不要忘记使用devtools::document()或其他合适的命令更新文档。
https://stackoverflow.com/questions/28190868
复制相似问题