the guide definitive r knitr r-markdown pandoc bookdown

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

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