2015-06-22 54 views
11

我正在準備一個提交到CRAN的包。 我使用R CMD build myPackage,然後R CMD check myPackage --as-cran,它通過所有沒有註釋或警告的檢查。 然而,每一個我試圖提交的時間,我從CRAN維護者之一收到以下錯誤信息:如何爲R包預構建一個小插曲索引?

包有VignetteBuilder場,但沒有預置的小插曲指數。

作爲一個開始,我希望能夠在我自己的系統上重現上述錯誤消息(R version 3.0.1)。

暗角.Rnw文件看起來是這樣的:

%\VignetteEngine{knitr::knitr} 
%\VignetteIndexEntry{myVignetteName} 
\documentclass{article} 
\begin{document} 
Here is some code: 
<<>>= 
plot(1:10, 10:100) 
@ 
\end{document} 

我曾嘗試添加INDEX文件的根目錄下有一個小插曲進入這樣的:

myFunction  a brief description 
abc-vignette  vignette description 

再次,這通過0​​但我收到相同的錯誤消息。

我也試過R CMD build myPackage --md5強制創建一個MD5文件,無濟於事。

當我看到myPackage.Rcheck/00_pkg_src/myPackage/inst/doc時,我發現預案中的小插曲文件.Rnw.pdf

DESCRIPTION文件具有以下條目:

VignetteBuilder: knitr 
Suggests: knitr 

當我看着myPackage.Rcheck/myPackage/Meta我看到一個條目vignette.rds。但是這似乎是一個二進制文件,所以我無法理解它。

這是「寫R附加軟件」:

在安裝時在包中所有插曲的HTML索引自動從\ VignetteIndexEntry語句,除非文件是index.html,存在於創建 目錄'inst/doc'。該索引從包的HTML幫助索引鏈接而來。如果你確實提供了一個'inst/doc/index.html'文件,它應該只包含安裝在'doc'目錄下的文件的相對鏈接,或者對HTML幫助文件或'DESCRIPTION'文件可能(不是真正的索引) 。

所以,我需要手動創建index.html和任何人都可以指向這應該是什麼樣子的例子?

This question顯示密切相關,但我不(有意)有一個.Rbuildignore文件。 This is also related,儘管我沒有使用devtools來創建包。我也看過this question,但沒有看到簡單的答案。

更新07月01日

對於重現的實例中,包是可用here on github。下載和安裝(例如與devtools::install_github()應該允許這個錯誤被重現。

回答

1

我收集Vignette命令必須在序言,即低於documentclass,從而使文件myVignette.Rnw應該閱讀:

\documentclass{article} 

% \VignetteIndexEntry{myVignette} 
% \VignetteEngine{knitr::knitr} 

\usepackage[]{graphicx} 
... 

這似乎很好地工作。

錯誤消息來自開發R CMD check版本,它目前3.3.0。我一直在使用舊的'穩定'版本,它是而不是推薦的方式來檢查提交給CRAN時的軟件包。

我仍然不確定使用手冊index.html文件的優點 - 看起來沒有必要,但如果任何人都可以對此進行說明,我會很樂意改變接受的答案。

0

This可能會有所幫助,或者您可以轉向devtools來構建您的軟件包。