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 une render
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,
render("input.Rmd", "pdf_document")
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:
Rscript -e "Sys.setenv(RSTUDIO_PANDOC='/Applications/RStudio.app/Contents/MacOS/pandoc');library(rmarkdown); library(utils); render('input.Rmd', 'pdf_document')"
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
).
RMDFILE=example-r-markdown
Rscript -e "require(knitr); require(markdown); knit('$RMDFILE.rmd', '$RMDFILE.md'); markdownToHTML('$RMDFILE.md', '$RMDFILE.html', options=c('use_xhml'))"
puis cette commande pour convertir en pdf
Pandoc -s example-r-markdown.html -o example-r-markdown.pdf
Quelques notes à ce sujet:
- J'ai supprimé la référence dans le fichier d'exemple qui exporte les tracés à imgur pour héberger des images.
- J'ai supprimé une référence à une image hébergée sur imgur. Les chiffres semblent devoir être locaux.
- Les options de la
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).
- La sortie résultante ressemblait à ceci . Il a clairement fait un document de style très LaTeX contrairement à ce que j'obtiens si j'imprime le fichier HTML en pdf à partir d'un navigateur.
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:
cabal update
cabal install pandoc
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 .
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.