【问题标题】:R: package vignette not builtR:未构建包小插图
【发布时间】:2018-03-08 11:19:33
【问题描述】:

问题

我为我的公司创建了一个小型内部包。为了描述热使用它,我写了一个小插曲。但由于某种原因,当我在 RStudio 中点击 Install and Restart 时,没有构建小插图。

更多信息

  • 我使用 roxygen 作为包文档

  • 有趣的是,Install and Restart 的输出表明它已安装:

    ==> devtools::document(roclets=c('rd', 'collate', 'namespace'))
    
    Updating DataReportR documentation
    Loading DataReportR
    Documentation completed
    
    ==> Rcmd.exe INSTALL --no-multiarch --with-keep.source DataReportR
    
    * installing to library 'C:/Program Files/R/library'
    * installing *source* package 'DataReportR' ...
    ** R
    ** preparing package for lazy loading
    ** help
    *** installing help indices
    ** building package indices
    ** installing vignettes
    ** testing if installed package can be loaded
    * DONE (DataReportR)
    
  • devtools::build_vignettes() 会返回 NULL,即使有这些行

    Suggests: knitr, rmarkdown
    VignetteBuilder: knitr
    

    包含在说明中。

  • 小插图的 YAML 标头如下所示:

    ---
    title: "My title"
    output: rmarkdown::html_vignette
    vignette: >
      %\VignetteIndexEntry{Generate LaTeX tables for Data Reports}
      %\VignetteEngine{rmarkdown::render}
      %\usepackage[utf8]{inputenc}
    ---
    
  • 我还尝试通过devtools::build(vignettes = TRUE) 强制构建小插图,但没有任何改变。

编辑(更改 YAML 标头):

当我将小插图的 YAML 标头中的 %\VignetteEngine{rmarkdown::render} 更改为 %\VignetteEngine{knitr::rmarkdown} 时,devtools::build_vignettes() 会起作用并将构建的小插图放置在 /inst/doc/ 中。

但是,当我在 RStudio 中检查包时,在这个位置检查失败:

** installing vignettes
** testing if installed package can be loaded
Error in namespaceExport(ns, exports) : 
  undefined exports: create_var_details, create_var_overview
Error: loading failed
Execution halted
ERROR: loading failed

create_var_detailscreate_var_overview 都是导出函数。举个例子:

... 
#' @export
#' 
    create_var_details <- function(...
...

使用旧标题,检查没问题。

【问题讨论】:

  • 你可以尝试写%\VignetteEngine{knitr::rmarkdown}而不是%\VignetteEngine{rmarkdown::render}吗?我之前也创建了一个小包,这就是我的独特之处。
  • @R18:这会在devtools::check():** testing if installed package can be loaded Error in namespaceExport(ns, exports) : undefined exports: create_var_details, create_var_overview 期间导致错误。但是这些功能是导出的...另外,我在另一个项目中使用%\VignetteEngine{rmarkdown::render}没有问题。
  • 您的代码中有create_var_detailscreate_var_overview 函数或对象吗?
  • 导出的函数。来自命名空间:# Generated by roxygen2: do not edit by hand export(create_var_details) export(create_var_overview)
  • 我记得有一次,当我删除roxygen2generates 的文件并再次运行它工作的代码并再次生成文件时。可能不是这样,。 . .

标签: r r-package vignette


【解决方案1】:

我发现 R 没有找到 pandoc。因此,我将pandoc 路径添加到PATH 环境变量。我还按照@R18 在 cmets 中的建议将小插图 enginge 更改为 %\VignetteEngine{knitr::rmarkdown}

现在,当我在 RStudio 中单击 Install and Restart 时,小插图已正确构建。

但是,检查包仍然不起作用。请参阅我的 EDIT 问题。但这是另一个问题:R package: Adding a vignette causes 'undefined exports'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-09-07
    • 2021-03-27
    • 1970-01-01
    • 2019-11-13
    • 2015-11-24
    • 1970-01-01
    • 1970-01-01
    • 2021-06-01
    相关资源
    最近更新 更多