r - app - tags link shiny
Uso de una viñeta de PDF estática(precreada) en el paquete R (2)
Con R.rsp (> = 1.19.0) puede incluir un archivo de texto ''vignettes / main.pdf'' estático agregando un pequeño archivo de texto ''vignettes / main.pdf.asis'' que contiene:
%/VignetteIndexEntry{My amazing package}
%/VignetteEngine{R.rsp::asis}
y asegúrate de tener:
Suggests: R.rsp
VignetteBuilder: R.rsp
en el archivo de DESCRIPCIÓN de su paquete. Esto también funciona para viñetas HTML estáticas. Esto también se explica en una de las viñetas de R.rsp .
¿Cuál es la forma correcta de incluir un archivo PDF estático como una "viñeta" en un paquete CRAN a partir de R 3.0?
El truco descrito en este documento de usar un código auxiliar vacío Rnw
no parece funcionar en R 3.0. El documento sugiere que ahora hay una mejor manera basada en /VignetteEngine{}
pero no está del todo claro cómo funciona esto para los archivos PDF estáticos.
ACTUALIZACIÓN 2014-06-08: Para una mejor solución para incluir archivos PDF estáticos y archivos HTML en un paquete R, vea mi otra respuesta en este hilo sobre cómo usar R.rsp (> = 0.19.0) y su R.rsp::asis
motor de viñetas de R.rsp::asis
.
Todo lo que necesita es un archivo <name>.Rnw
con un nombre que coincida con su archivo estático <name>.pdf
, por ejemplo
vignettes/
static.pdf
static.Rnw
donde <name>.Rnw
(aquí static.Rnw
) es un archivo Sweave válido mínimo, por ejemplo
%/VignetteIndexEntry{<title to be displayed on the R vignette index page>}
/documentclass{article}
/begin{document}
/end{document}
Este archivo fuente de viñeta ( <name>.Rnw
) engaña a R CMD build
para compilarlo, es decir, las tools::buildVignettes()
de R tools::buildVignettes()
primero Sweave <name>.Rnw
en <name>.tex
como de costumbre. Sin embargo, debido a la forma en que está diseñado buildVignettes()
, detectará nuestro archivo estático <name>.pdf
como ya fue creado por el motor Sweave y, por lo tanto, no compilará ese archivo TeX ficticio en un archivo PDF (que sobrescribiría nuestro archivo estático). ).
Lo que es importante comprender es que (i) las viñetas se "construyen" durante la compilación de R CMD build
, (ii) y cuando se crean se copian al directorio inst/doc/
(creado si falta) del paquete construido. Además, (iii) las vignettes/
directorio no formarán parte del paquete de compilación, es decir, el <pkgname>_<version>.tar.gz
. Por lo tanto, asegúrese de buscar en inst/doc/
.
Entonces, para que quede claro, el uso de un <name>.Rnw
podría considerarse un <name>.Rnw
que podría romperse si alguien decide evitar esta estrategia. Sin embargo, si eso sucede, es completamente posible crear un motor de viñetas que no sea de Sweave cuyo único propósito es compilar un archivo <name>.pdf
en un archivo ... <name>.pdf
. Esto es válido y posible debido a la compatibilidad sin Sweave agregada en R (> = 3.0.0). He estado considerando agregar dicho motor al paquete R.rsp, por ejemplo, / VignetteEngine {R.rsp :: StaticPDF}. Con eso, ni siquiera tendría que tener ese archivo Rnw ficticio, solo el archivo PDF.
Espero que esto ayude