簡體   English   中英

如何在 RStudio 中為 R 包構建 API 文檔?

[英]How to build API documentation for an R package in RStudio?

我正在開發最新的 Windows 10 版本 RStudio 1.3.959,我剛剛安裝了最新的 MikTex。

我正在嘗試使用 RStudio 組合一個 R 包。 我可以構建包,並且函數文檔注釋正在轉換為 /man/*.Rd 文件。 當在 RStudio 控制台窗口中執行 ?function_name 時,這些將成功顯示。

不幸的是,我在構建 PDF 包 API 文檔(不要誤認為是小插圖;我可以構建)方面運氣不佳。 我已經查看了一些不錯的教程,但它們都沒有說明如何構建每個 R 包所期望的最終 PDF API 文檔。

我試過: Build[Windows]->More->Document ... 執行devtools::document(roclets = c('rd', 'collate', 'namespace', 'vignette'))

Build[Windows]->More->Build Source Package ... 執行devtools::document(roclets = c('rd', 'collate', 'namespace', 'vignette'))然后是devtools::build(binary = TRUE, args = c('--preclean'))

Build[Windows]->More->Build Binary Package ... 執行devtools::document(roclets = c('rd', 'collate', 'namespace', 'vignette'))然后是devtools::build(binary = TRUE, args = c('--preclean'))

所有這三個功能都按預期運行,但仍然沒有最終的軟件包手冊 pdf 文件。

在 Stack 上進行一些挖掘時,我注意到有人使用了以下命令:

devtools::build_manual()

我確信這就是我所需要的。 但是,當我執行該行代碼時,出現錯誤:

Converting Rd files to LaTeX ...
Warning in sys2(makeindex, shQuote(idxfile)) : '"makeindex"' not found
Error in texi2dvi(file = file, pdf = TRUE, clean = clean, quiet = quiet,  : 
  unable to run 'makeindex' on 'Rd2.idx'
Warning in sys2(makeindex, shQuote(idxfile)) : '"makeindex"' not found
Error in texi2dvi(file = file, pdf = TRUE, clean = clean, quiet = quiet,  : 
  unable to run 'makeindex' on 'Rd2.idx'
Error in running tools::texi2pdf()
Error: Failed to build manual

這讓我沒有更明智,盡管很明顯,由於缺少 makeindex,有些事情有點令人不安。 非常感謝幫助。

如果我理解正確,您的意思是標准參考手冊。 例如ggplot2 參考手冊 根據我的經驗,當您提交時,CRAN 會將其放在一起。 所有的手冊都是(據我所知)一個有據可查的包應該有的東西的集合,比如一個描述文件、一個命名空間文件,以及用於實際文檔的各種 .RD 文件。

即使在查看ggplot2的公共github 時,我們也會看到他們的存儲庫中沒有手冊。 此外,他們的.git*ignore文件中沒有任何證據表明他們自己制作了手冊。

但是,如果您想自己制作,則devtools::build_manual()是正確的函數調用。

我能夠使用 github 上預先存在的包制作手冊。 我建議嘗試重新安裝您的devtools包並確保沒有警告或錯誤。 以管理員身份運行會話以確保正確安裝可能會有所幫助。

祝你好運!


我在 MacOS High Serra 上使用 R 版本 3.4 和 RStudio 1.1.453。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM