UPDATE 2014/06/08: Per una soluzione migliore per compresi i PDF statici e file HTML in un pacchetto R, vedere la mia altra risposta in questa discussione su come utilizzare R.rsp (> = 0.19.0) e la sua R.rsp::asis
motore di vignette.
Tutto ciò che serve è un file <name>.Rnw
con un nome corrispondente al file statico <name>.pdf
, ad es.
vignettes/
static.pdf
static.Rnw
dove <name>.Rnw
(qui static.Rnw
) è un file Sweave valida minimo, per esempio
%\VignetteIndexEntry{<title to be displayed on the R vignette index page>}
\documentclass{article}
\begin{document}
\end{document}
Questo file sorgente vignetta (<name>.Rnw
) trucchi R CMD build
costruirlo, vale a dire di R tools::buildVignettes()
sarà prima Sweave <name>.Rnw
in <name>.tex
come al solito. Tuttavia, a causa di come è progettato buildVignettes()
, verrà rilevato il nostro file statico <name>.pdf
come già creato dal motore Sweave e pertanto non verrà compilato quel file fittizio di TeX in un file PDF (che sovrascriverebbe il nostro file statico).
Ciò che è importante capire è che (i) le vignette sono "costruite" durante R CMD build
, (ii) e una volta compilate vengono copiate nella directory inst/doc/
(creata se mancante) del pacchetto creato. Inoltre, (iii) la directory vignettes/
corrisponderà a non come parte del pacchetto di build, ad esempio il file <pkgname>_<version>.tar.gz
. Quindi, assicurati di cercare in inst/doc/
.
Quindi, per essere chiari qui, l'utilizzo di un dummy <name>.Rnw
potrebbe essere considerato un hack che potrebbe interrompersi se qualcuno decide di evitare questa strategia. Tuttavia, se ciò accade, è completamente possibile creare un motore di vignette non Sweave il cui unico scopo è compilare un file <name>.pdf
in un file ... <name>.pdf
. Questo è valido e possibile a causa del supporto non Sweave aggiunto in R (> = 3.0.0). Ho pensato di aggiungere un tale motore al pacchetto R.rsp, ad es. \ {VignetteEngine R.rsp :: StaticPDF}. Con questo non avresti nemmeno bisogno di avere quel file Rnw fittizio - solo il file PDF.
Spero che questo aiuti
+1, mi piacerebbe includere anche vignette statiche nei miei pacchetti – sckott
Mi chiedevo anche questo ma mentre leggo il manuale e le foglie di tè, si sta spostando verso tutte le "vignette /" con un'attuazione ancora più severa nel futuro. –
Hmmm. In tal caso, penso che potrei avere solo collegamenti a pagine Web con le esercitazioni poiché la maggior parte dei miei pacchetti effettua chiamate API al web. A meno che non ci sia un motivo importante per avere vignette in realtà all'interno di pkgs? – sckott