在我使用R Studio开发的程序包中,我通过devtools::use_vignette("mydoc.Rnw")
创建小插图,它提供了一个标准的小插图标题,例如
---
title: "Title"
author: "Michael Friendly"
date: "`r Sys.Date()`"
output: rmarkdown::html_vignette
vignette: >
%\VignetteIndexEntry{Title}
%\VignetteEngine{knitr::rmarkdown}
%\VignetteEncoding{UTF-8}
---
我已按照http://yihui.name/knitr/demo/vignette/和http://r-pkgs.had.co.nz/vignettes.html中的所有说明进行操作。程序包的CRAN页面上列出了vigttes ,即,但在加载了程序包的R session 中似乎无法访问。
> browseVignettes("matlib")
No vignettes found by browseVignettes("matlib")
> library(tools)
> names(vignetteEngine(package = 'matlib'))
Error in getEngine(name, package) :
None of packages ‘matlib’ have registered vignette engines
我知道可以使用
knitr
-processed .Rmd vignettes的其他程序包,但是无法弄清楚为什么我的程序不可用。什么东西少了?
我的
vignettes/
目录仅包含.Rmd文件(不包含PDF),但这似乎与https://github.com/yihui/knitr/tree/master/vignettes相同。 最佳答案
注意 devtools 在您从目录打包devtools::install()
(某些install_*
功能,例如install_github()
)时,默认情况下不会构建小插图。安装软件包时,必须指定参数build_vignettes = TRUE
。当前,如果仅使用RStudio按钮Build & Reload
,则无法使用 devtools 构建小插图。您必须Build Source Package
,并在tarball上运行R CMD INSTALL
。或在R控制台中运行devtools::install(build_vignettes = TRUE)
。