J'ai déjà posé des questions sur les commandes de conversion de R Markdown en HTML .
Quel est le bon moyen de convertir des fichiers R Markdown en documents PDF?
Une bonne solution préserverait autant que possible le contenu (par exemple, des images, des équations, des tableaux html, etc.). La solution doit pouvoir être exécutée à partir de la ligne de commande. Une bonne solution serait également multiplateforme et, idéalement, minimiser les dépendances pour faciliter le partage de fichiers makefiles, etc.
Plus précisément, il existe de nombreuses options:
- S'il faut convertir RMD en MD en HTML en PDF; ou RMD vers MD vers PDF; ou RMD en PDF
- Si vous utilisez le
markdown
package dans R, quelles options spécifier - Que ce soit pour utiliser
pandoc
, un package intégré à R, ou autre chose
Voici un exemple de fichier rmd qui fournit vraisemblablement un test raisonnable de toute solution proposée. Il a servi de base à ce billet de blog .
r-markdown
knitr
pandoc
Jeromy Anglim
la source
la source
knit
etmdconvert.sh
). Il peut être difficile de proposer une approche générale car LaTeX est trop flexible; vous pouvez utiliser toutes sortes de modèles pour pandoc.Réponses:
Réponse mise à jour (10 février 2013)
Package rmarkdown : Il existe maintenant un
rmarkdown
package disponible sur github qui s'interface avec Pandoc. Il comprend unerender
fonction. La documentation explique assez clairement comment convertir rmarkdown en pdf parmi une gamme d'autres formats. Cela inclut l'inclusion des formats de sortie dans le fichier rmarkdown ou l'exécution de la fourniture d'un format de sortie à la fonction de rendu. Par exemple,Ligne de commande: lorsque je lance à
render
partir de la ligne de commande (par exemple, en utilisant un fichier makefile), j'ai parfois des problèmes avec pandoc introuvable. Vraisemblablement, ce n'est pas sur le chemin de recherche. La réponse suivante explique comment ajouter pandoc à l'environnement de R .Ainsi, par exemple, sur mon ordinateur exécutant OSX, où j'ai une copie de pandoc via RStudio, je peux utiliser ce qui suit:
Ancienne réponse (vers 2012)
Ainsi, un certain nombre de personnes ont suggéré que Pandoc est la voie à suivre. Voir les notes ci-dessous sur l'importance d'avoir une version à jour de Pandoc.
Utilisation de Pandoc
J'ai utilisé la commande suivante pour convertir R Markdown en HTML (c'est-à-dire une variante de ce makefile ), où
RMDFILE
est le nom du fichier R Markdown sans le.rmd
composant (cela suppose également que l'extension est.rmd
et non.Rmd
).puis cette commande pour convertir en pdf
Quelques notes à ce sujet:
markdownToHTML
fonction signifiaient que les références d'image sont vers des fichiers et non vers des données stockées dans le fichier HTML (c'est-à-dire que j'ai supprimé'base64_images'
de la liste d'options).Obtenir la version à jour de Pandoc
Comme mentionné par @daroczig, il est important d'avoir une version à jour de Pandoc afin de produire des fichiers PDF. Sur Ubuntu à partir du 15 juin 2012, j'étais bloqué avec la version 1.8.1 de Pandoc dans le gestionnaire de paquets, mais il semble d'après le journal des modifications que pour le support PDF, vous avez besoin d'au moins la version 1.9+ de Pandoc.
Ainsi, j'ai installé
caball-install
. Et puis a couru:Pandoc a été installé dans
~/.cabal/bin/pandoc
Ainsi, quand j'ai couru,pandoc
il voyait toujours l'ancienne version. Voir ici pour ajouter au chemin .la source
pandoc
est en version 1.12 même dans mon Ubuntu 13.04 désormais obsolète.Je pense que vous avez vraiment besoin de pandoc , quel excellent logiciel a été conçu et construit uniquement pour cette tâche :) Outre le pdf , vous pouvez convertir votre fichier md en docx ou odt, entre autres.
Eh bien, installer une version à jour de Pandoc peut être un défi sous Linux (car vous auriez besoin de tout le
haskell-platform
˙pour construire à partir des sources), mais vraiment facile sur Windows / Mac avec seulement quelques mégaoctets de téléchargement.Si vous avez le fichier de démarque brassé / tricoté, vous pouvez simplement appeler
pandoc
par exemple bash ou avec lasystem
fonction dans R. Une démo POC de ce dernier est implémentée dans laṖandoc.convert
fonction de mon petit paquet ( dont vous devez être terriblement ennuyé comme j'essaye de attirer votre attention là-bas à chaque occasion ).la source
--toc
serait utile sur la ligne de commande (résultant en une table de contenu Nics basée sur vos en-têtes) et la personnalisation du modèle LaTeX pour vos besoins (comme l'ajout ici\listoffigures
et / ou\listoftables
etc.) pourrait entraîner de merveilleux documents.apt-get install pandoc
?sources.list
et de faireapt-get install -t testing pandoc
ensuite l'installationhaskell-platform
et la compilation. (Habituellement, je fais cela avec expérimental. J'espère que cela fonctionne de la même manière dans les tests.)En ce moment (août 2014) Vous pouvez utiliser RStudio pour convertir R Markdown en PDF. Fondamentalement, RStudio utilise pandoc pour convertir Rmd en PDF.
Vous pouvez modifier les métadonnées en:
Pour plus de détails - http://rmarkdown.rstudio.com/pdf_document_format.html
la source
Pour une option qui ressemble plus à ce que vous obtenez lorsque vous imprimez à partir d'un navigateur,
wkhtmltopdf
fournit une option.Sur Ubuntu
Et puis la même commande que pour l'exemple pandoc pour accéder au HTML:
puis
Le fichier résultant ressemblait à ceci . Il ne semblait pas gérer le MathJax ( ce problème est discuté ici ), et les sauts de page sont laids. Cependant, dans certains cas, un tel style peut être préféré à une présentation de style LaTeX.
la source
system("wkhtmltopdf temp.html temp.pdf")
toute idée de comment résoudre ce problèmeSeulement deux étapes:
Installez la dernière version "pandoc" à partir d'ici:
https://github.com/jgm/pandoc/releases
Appelez la fonction
pandoc
dans lelibrary(knitr)
Ainsi, vous pouvez convertir votre "input.md" en "input.pdf".
la source
J'ai trouvé le moyen le plus simple d'utiliser R studio, mais si vous souhaitez contrôler à partir de la ligne de commande, un simple script R peut faire l'affaire en utilisant la commande rmarkdown render (comme mentionné ci-dessus). Détails complets du script ici
la source
Si vous ne voulez rien installer, vous pouvez générer du HTML. Ensuite, ouvrez le fichier html - il devrait s'ouvrir dans une fenêtre de navigateur, puis cliquez avec le bouton droit pour imprimer. Dans la fenêtre d'impression, sélectionnez "enregistrer au format pdf" dans le coin inférieur droit si vous êtes sur un Mac. Voila!
la source
Suivez ces étapes simples:
1: Dans le script Rmarkdown, exécutez Knit (Ctrl + Shift + K) 2: Ensuite, après l'ouverture du markdown html, cliquez sur Ouvrir dans le navigateur (en haut à gauche) et le html est ouvert dans votre navigateur Web 3: utilisez ensuite Ctrl + P et enregistrer au format PDF.
la source