R:未构建包小插图
R: package vignette not built
问题
我为我的公司创建了一个小的内部包。为了描述热用它,我写了一个小插图。但出于某种原因,当我在 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()
returns NULL
即使行
Suggests: knitr, rmarkdown
VignetteBuilder: knitr
包含在说明中。
小插图的 YAML header 如下所示:
---
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 header):
当我在小插图的 YAML header 中将 %\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_details
和create_var_overview
都是导出函数。举个例子:
...
#' @export
#'
create_var_details <- function(...
...
使用旧的 header,支票没问题。
我发现R没有找到pandoc
。因此,我将 pandoc
路径添加到 PATH
环境变量。我还按照 @R18.
的评论中的建议将 vignette enginge 更改为 %\VignetteEngine{knitr::rmarkdown}
现在,当我在 RStudio 中单击 安装并重新启动 时,小插图已正确构建。
但是检查包还是不行。请参阅我对问题的 EDIT。但这在另一个问题中:R package: Adding a vignette causes 'undefined exports'
问题
我为我的公司创建了一个小的内部包。为了描述热用它,我写了一个小插图。但出于某种原因,当我在 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()
returnsNULL
即使行Suggests: knitr, rmarkdown VignetteBuilder: knitr
包含在说明中。
小插图的 YAML header 如下所示:
--- 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 header):
当我在小插图的 YAML header 中将 %\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_details
和create_var_overview
都是导出函数。举个例子:
...
#' @export
#'
create_var_details <- function(...
...
使用旧的 header,支票没问题。
我发现R没有找到pandoc
。因此,我将 pandoc
路径添加到 PATH
环境变量。我还按照 @R18.
%\VignetteEngine{knitr::rmarkdown}
现在,当我在 RStudio 中单击 安装并重新启动 时,小插图已正确构建。
但是检查包还是不行。请参阅我对问题的 EDIT。但这在另一个问题中:R package: Adding a vignette causes 'undefined exports'