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?
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
- R Markdown (
.Rmd
) le fichier dans un standard de markdown fichier (.md
) .Rnw
(Sweave) fichier dans.tex
format..Rhtml
le fichier en html.
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.