2011-07-09 34 views
8

我可以在pkg/doc文件夾中包含一些PDF,以使vignette函數可以工作,但是沒有相應的Rnw,Rtex等存在嗎?R - 不是由Sweave製作的嗎?

我正在考慮幻燈片或包含用R塊編制的降價文本的文檔,這些R塊具有不同的構建過程,因此具有不同的文件擴展名。

編寫R擴展指南建議應該可以包含在安裝時無法生成的文檔,但vignette函數似乎尋找具有特殊擴展名(Rnw,Rtex等)的文件,也適用於文件名爲vignette.rds

任何提示表示讚賞。

+0

你爲什麼不只是建立了一個微型封裝,並嘗試它,看它是否工作? –

+0

這就是我想要做的......我卡住了。 –

+2

FWIW,'vignette'說'目前只能看PDF版本的小插曲。'其他所有內容都可供用戶自己查找。在這種情況下,'browseVignettes'可能會有所幫助。 –

回答

5

幾年前我問過這個問題,雖然Fritz Leisch接受這個想法,但他沒有時間去實施它。

+3

啊,所以,當我們會看到你的Swv2更換? –

+1

我認爲你的意思是'swv2';) – hadley

+1

無論哪一種,我都會把下劃線加在命令名中:) –

5

(從response I just left on R-help :)

作爲一種變通方法交叉貼,你可以包括你自己xvignette功能在你的包,見下文。 它不會告訴你指數,但它會拿起任何適當命名的文件,您在inst/doc目錄中的 包包括...

xvignette <- function(vname,pkg,ext="pdf") { 
    vname <- paste(vname,ext,sep=".") 
    fn <- system.file("doc",vname,package=pkg) 
    if (nchar(fn)==0) stop("file not found") 
    utils:::print.vignette(list(pdf=fn)) 
    invisible(fn) 
} 

你必須以某種方式提醒你的包的用戶這個替代文檔存在的事實 - 可能在包本身的幫助文件中。

你可能會填寫的pkg上面你的包名稱的默認值,使其對用戶更容易:我想過使用的getPackageName(environment(xvignette))一些變種來自動執行,但似乎太複雜了......

布賴恩·裏普利也是他到該問題的迴應中提到:

目前暗角()是指Sweave文件,因爲只有他們有 元數據如標題。這計劃很快就會改變。

...但我不知道什麼是「快」是指(這將是6個月左右,直到2.14.0出來,我認爲)

編輯http://article.gmane.org/gmane.comp.lang.r.devel/28449細節另一個解決辦法(創建結合了現有的PDF文件中的虛擬小插曲)

編輯2:與

+0

六個月直到2.14.0?通常不是四月和十月? –

+0

我想是。我在想最近2.13.1版本,並忘記了它的發佈6個月0.0之間,而不是發行點。所以只有2.5個月。 –

+0

downvote的任何解釋? –

5

這是原生支持爲R 3.0.0,請參閱http://yihui.name/knitr/demo/vignette/

說明使用knitr作爲小插曲引擎歸結爲:

  1. 添加%\VignetteEngine{knitr::knitr}Rnw源文件(注意,您仍然需要%\VignetteIndexEntry{}如前)
  2. 在包裝描述文件
  3. 指定 VignetteBuilder: knitr
  4. DESCRIPTION如果只需要護身符
  5. 添加

另請參閱有關該主題的official R documentation