Relation entre R Markdown, Knitr, Pandoc et Bookdown

Quelle est la relation entre la fonctionnalité de R Markdown, Knitr, Pandoc, et Bookdown?

en particulier, Quelle est la "division du travail" entre ces paquets dans la conversion des documents markup avec le code R intégré (par exemple .Rnw ou .Rmd) dans les sorties finales (par exemple .pdf ou .html)? Et si Knitr est utilisé pour traiter RMarkdown, qu'est-ce que le rmarkdown package do et en quoi est-il différent du <!--5?

46
demandé sur RobinL 2016-11-12 16:45:42

1 réponses

Pandoc

Pandoc est un convertisseur de documents. Il peut passer d'un certain nombre de formats de markup différents à de nombreux autres formats, tels que .doc,.pdf etc.

Pandoc est un outil en ligne de commande sans interface graphique. Il est indépendant de logiciels, distincte de R. Cependant, il est livré avec R Studio car rmarkdown s'appuie sur elle pour la conversion de documents.

Pandoc convertit non seulement les documents, mais il ajoute également des fonctionnalités en plus de la langage de marquage de base pour permettre aux TI de prendre en charge des sorties plus complexes.

R Markdown

R Markdown est basé sur markdown:

Markdown (langage de balisage)

Markdown est un langage de balisage léger avec une syntaxe de formatage de texte simple conçu de sorte qu'il peut être converti en HTML et de nombreux autres formats. Un fichier markdown est un fichier texte qui est généralement donné l'extension .md.

Comme d'autres langages de balisage comme HTML et Latex, il est complètement indépendant de R.

il n'y a pas de norme de Markdown clairement définie. Cela a conduit à une fragmentation au fur et à mesure que les différents fournisseurs écrivent leurs propres variantes du langage pour corriger les défauts ou ajouter des fonctionnalités manquantes.

Markdown (R package)

markdown est un paquet R qui convertit .Rmd fichiers en HTML. Il est le prédécesseur de rmarkdown, qui offre beaucoup plus de fonctionnalités. Il n'est pas recommandé pour les utiliser.

R Markdown (langage de balisage)

R Markdown est une extension de la syntaxe markdown. R Les fichiers Markdown sont des fichiers texte qui ont typiquement l'extension de fichier .Rmd. Ils sont écrits en utilisant une extension de la syntaxe de markdown qui permet au code R d'y être intégré d'une manière qui peut être exécutée plus tard.

parce qu'on s'attend à ce qu'ils soient traités par rmarkdown package, il est possible d'utiliser Pandoc la syntaxe markdown dans un fichier r markdown. Il s'agit d'une extension de la syntaxe markdown originale qui fournit des fonctionnalités supplémentaires comme le HTML/Latex brut et les tables.

R Markdown (package)

Le package R rmarkdown est une bibliothèque qui processes et convertit .Rmd fichiers dans un certain nombre de formats différents.

La fonction de base est rmarkdown::render se tient sur les épaules du pandoc. Cette fonction 'rend le fichier d'entrée au format de sortie spécifié en utilisant pandoc. Si l'entrée nécessite tricoter ensuite knitr::knit est appelé avant pandoc.

L'Objectif Du paquet RMarkdown est tout simplement pour fournir des valeurs par défaut raisonnablement bonnes et une interface conviviale pour personnaliser les options Pandoc..

les métadonnées YAML vues en haut des fichiers RMarkdown sont spécifiquement pour passer des options à rmarkdown::render, pour guider le processus de construction.

notez que RMarkdown ne traite que de la syntaxe markdown. Si vous voulez convertir un .Rhtml et .Rnw file, vous devriez utiliser les fonctions de commodité intégrées dans Knitr, comme knitr::knit2html et knitr:knit2pdf

Knitr

Knitr prend un document en texte clair avec du code incorporé, exécute le code et "tricote" les résultats dans le document.

Pour par exemple, il convertit

La fonction de base est knitr::knit et par défaut cela va regarder le document d'entrée et essayer de deviner quel type c'est - Rnw, Rmd etc.

cette fonction principale remplit trois rôles: - Un analyseur de sources, qui examine le document d'entrée et détecte les parties qui sont du code que le utilisateur souhaite être évalué. - Un évaluateur de code, qui évalue ce code - Un rendu de sortie, qui renvoie les résultats de l'évaluation au document dans un format interprétable par le type de sortie brut. Par exemple, si le fichier d'entrée est un .Rmd, le rendu marque la sortie de l'évaluation du code en .md format.

conversion entre les formats de document

Knitr does conversion entre les formats de document - tels que la conversion d'un .md dans un .html. Cependant, il fournit certaines fonctions de commodité pour vous aider à utiliser d'autres bibliothèques pour le faire. Si vous utilisez le rmarkdown package, vous devez ignorer cette fonctionnalité, car elle a été remplacée par rmarkdown::render.

Un exemple knitr:knit2pdf: 'tricoter le document D'entrée Rnw ou Rrst, et compiler en PDF en utilisant texi2pdf ou rst2pdf'.

Une source potentielle de confusion est knitr::knit2html " est une fonction de convenance pour tricoter la source de markdown d'entrée et l'appel markdown::markdownToHTML pour convertir le résultat en HTML." il s'agit maintenant de la fonctionnalité legacy parce que le markdown le paquet a été remplacé par le rmarkdown package. Voir cette note.

Bookdown

le paquet bookdown est construit sur R Markdown, et hérite de la simplicité de la syntaxe Markdown , ainsi que la possibilité de plusieurs types de sortie formats (PDF/HTML/Word/...).

it offers features like multi-page HTML output, numbering and cross-referencing figures/tables/sections/equations, inserting parts / appendices, and imported the GitBook style (https://www.gitbook.com) pour créer des pages de livres HTML élégantes et attrayantes.

61
répondu RobinL 2016-11-14 08:22:46