在我正在使用R Studio进行开发的软件包中,我创建devtools::use_vignette("mydoc.Rnw")了一个vignettes via ,它提供了一个标准的插图标题
---
title: "Title"
author: "Michael Friendly"
date: "`r Sys.Date()`"
output: rmarkdown::html_vignette
vignette: >
%\VignetteIndexEntry{Title}
%\VignetteEngine{knitr::rmarkdown}
%\VignetteEncoding{UTF-8}
---
Run Code Online (Sandbox Code Playgroud)
我已按照http://yihui.name/knitr/demo/vignette/和http://r-pkgs.had.co.nz/vignettes.html中的所有说明进行操作.该插图被列出的包CRAN页面上,但他们似乎有从包R对话无法访问.
> 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
Run Code Online (Sandbox Code Playgroud)
我知道其他包含knitr-processed .Rmd晕影的包可以从包中访问,但无法弄清楚为什么我的不是.缺什么?
我的vignettes/目录只包含.Rmd文件(没有PDF),但这似乎与https://github.com/yihui/knitr/tree/master/vignettes相同.
Yih*_*Xie 31
注意devtools默认情况下,当你devtools::install()(对于某些install_*函数来说相同的东西install_github())来自目录的包时,不会构建晕影.您必须build_vignettes = TRUE在安装程序包时指定参数.目前,如果您只使用RStudio按钮,则无法使用devtools构建晕影Build & Reload.你必须Build Source Package,并R CMD INSTALL在tarball上运行.或者devtools::install(build_vignettes = TRUE)在R控制台中运行.
好吧,我找到了一种可以解决这种情况的黑魔法。
从 开始,RStudio 允许我们在单击按钮时Configure Build Tools...自定义选项。在当前的实现中,它的行为类似于在包目录的父目录中运行。事实证明,这些选项可以是任意字符串,甚至包括,从而使我们能够运行 bash 命令。R CMD INSTALLBuild & ReloadR CMD INSTALL [options] pkg;
例如,我们可以指定-v; cd pkg; cp vignettes/*html inst/doc; R CMD INSTALL --no-multiarch --with-keep.source .; echo
这样就-v使RStudio的R CMD INSTALL. 然后我们可以在使用我们自己的安装包之前将构建的 html 文件复制vignette/到。(让我们免于在后续命令中多次输入包名称。取消 RStudio 附加的包名称。inst/doc/R CMD INSTALLcd pkg;echo
我知道这个技巧有很多缺点,例如硬编码包名称,如果稍后更改包名称很容易出错。
需要您自担风险使用它。
希望RStudio尽快拿出一个优雅的解决方案。
| 归档时间: |
|
| 查看次数: |
3834 次 |
| 最近记录: |