guide - Relación entre R Markdown, Knitr, Pandoc y Bookdown
bookdown bibliography (1)
¿Cuál es la relación entre la funcionalidad de R Markdown, Knitr, Pandoc y Bookdown?
Específicamente, ¿cuál es la ''división del trabajo'' entre estos paquetes al convertir documentos de marcado con código R incrustado (por ejemplo,
.Rnw
o
.Rmd
) en resultados finales (por ejemplo
.pdf
o
.html
)?
Y si Knitr se usa para procesar RMarkdown, ¿qué hace el paquete
rmarkdown
y en qué se diferencia del
markdown package
?
Pandoc
Pandoc es un convertidor de documentos.
Se puede convertir de varios formatos de marcado diferentes a muchos otros formatos, como
.doc
,
.pdf
, etc.
Pandoc es una herramienta de línea de comandos sin GUI.
Es un software independiente, separado de R. Sin embargo, viene incluido con R Studio porque
rmarkdown
depende de él para la conversión de documentos.
Pandoc no solo convierte documentos, sino que también agrega funcionalidad en la parte superior del lenguaje de marcado de base para permitirle admitir salidas más complejas.
R Markdown
R Markdown se basa en Markdown:
Markdown (lenguaje de marcado)
Markdown es un lenguaje de marcado ligero con sintaxis de formato de texto plano diseñado para que pueda convertirse a HTML y muchos otros formatos.
Un archivo de rebaja es un archivo de texto sin formato que normalmente recibe la extensión
.md
.
Al igual que otros lenguajes de marcado como HTML y Latex, es completamente independiente de R.
No existe un estándar Markdown claramente definido. Esto ha llevado a la fragmentación ya que diferentes proveedores escriben sus propias variantes del lenguaje para corregir fallas o agregar características faltantes.
Markdown (paquete R)
markdown
es un paquete R que convierte archivos
.Rmd
a HTML.
Es el predecesor de
rmarkdown
, que ofrece mucha más funcionalidad.
Ya no se recomienda su uso.
R Markdown (lenguaje de marcado)
R Markdown es una extensión de la sintaxis de markdown.
Los archivos R Markdown son archivos de texto sin formato que normalmente tienen la extensión de archivo
.Rmd
.
Se escriben usando una extensión de sintaxis de descuento que permite incrustar el código R en ellos de una manera que luego se puede ejecutar.
Debido a que se espera que sean procesados por el paquete
rmarkdown
, es posible usar la
sintaxis de
rmarkdown
como parte de un archivo de reducción de R.
Esta es una extensión de la sintaxis de rebajas original que proporciona funcionalidad adicional como HTML / Latex sin formato y tablas.
R Markdown (paquete)
El paquete R
rmarkdown
es una biblioteca que procesa y convierte archivos
.Rmd
en varios formatos diferentes.
La función principal es
rmarkdown::render
que se
encuentra sobre los hombros de pandoc
.
Esta función
''procesa el archivo de entrada al formato de salida especificado usando pandoc.
Si la entrada requiere tejer, se
knitr::knit
antes de pandoc.
El objetivo del paquete RMarkdown es simplemente proporcionar valores predeterminados razonablemente buenos y una interfaz amigable con R para personalizar las opciones de Pandoc. .
Los metadatos de YAML que se ven en la parte superior de los archivos de RMarkdown son específicamente para pasar opciones a
rmarkdown::render
, para guiar el proceso de compilación.
Tenga en cuenta que RMarkdown solo se ocupa de la sintaxis de rebajas.
Si desea convertir un
.Rhtml
o
.Rnw
, debe usar las convenientes funciones integradas en
Knitr
, como
knitr::knit2html
y
knitr:knit2pdf
Knitr
Knitr toma un documento de texto sin formato con código incrustado, ejecuta el código y "teje" los resultados nuevamente en el documento.
Por ejemplo, convierte
-
Un archivo
R Markdown (
.Rmd
) en un archivo estándar de.md
(.md
) -
Un
.Rnw
(Sweave) en formato.tex
. -
Un archivo
.Rhtml
en html.
La función principal es
knitr::knit
y, de forma predeterminada, mirará el documento de entrada e intentará adivinar de qué tipo es: Rnw, Rmd, etc.
Esta función principal desempeña tres funciones: - Un analizador de origen, que examina el documento de entrada y detecta qué partes son código que el usuario desea evaluar.
- Un evaluador de código, que evalúa este código - Un renderizador de salida, que escribe los resultados de la evaluación en el documento en un formato que es interpretable por el tipo de salida sin formato.
Por ejemplo, si el archivo de entrada es un
.Rmd
, el renderizado de salida marca la salida de la evaluación de código en formato
.md
.
Conversión entre formatos de documento
Knitr
no
convierte entre formatos de documentos, como convertir un
.md
en un
.html
.
Sin embargo, proporciona algunas funciones convenientes para ayudarlo a usar otras bibliotecas para hacer esto.
Si está utilizando el paquete
rmarkdown
, debe ignorar esta funcionalidad porque ha sido reemplazada por
rmarkdown::render
.
Un ejemplo es
knitr:knit2pdf
que:
''Tejerá el documento Rnw o Rrst de entrada y compilará a PDF usando texi2pdf o rst2pdf''.
Una fuente potencial de confusión es
knitr::knit2html
, que
"es una función conveniente para tejer la fuente de marcado de entrada y llamar a
markdown::markdownToHTML
para convertir el resultado a HTML".
Esta es ahora una funcionalidad heredada porque el paquete
markdown
ha sido reemplazado por el paquete
rmarkdown
.
Ver
esta nota
.
Bookdown
El paquete bookdown está construido sobre R Markdown y hereda la simplicidad de la sintaxis de Markdown, así como la posibilidad de múltiples tipos de formatos de salida (PDF / HTML / Word / ...).
Ofrece características como salida HTML de varias páginas, numeración y referencias cruzadas de figuras / tablas / secciones / ecuaciones, inserción de partes / apéndices e importó el estilo GitBook ( https://www.gitbook.com ) para crear HTML elegante y atractivo páginas del libro