Risposta aggiornata (10 feb 2013)
pacchetto rmarkdown : ora c'è un rmarkdown
pacchetto disponibile su github che si interfaccia con Pandoc. Include una render
funzione. La documentazione rende abbastanza chiaro come convertire rmarkdown in pdf tra una vasta gamma di altri formati. Ciò include l'inclusione dei formati di output nel file rmarkdown o l'esecuzione di un formato di output per la funzione rend. Per esempio,
render("input.Rmd", "pdf_document")
Riga di comando:
quando corro render
dalla riga di comando (ad esempio, usando un makefile), a volte ho problemi con pandoc che non viene trovato. Presumibilmente, non è sul percorso di ricerca. La risposta che segue spiega come aggiungere Pandoc per l'ambiente R .
Ad esempio, sul mio computer che esegue OSX, dove ho una copia di Pandoc tramite RStudio, posso usare quanto segue:
Rscript -e "Sys.setenv(RSTUDIO_PANDOC='/Applications/RStudio.app/Contents/MacOS/pandoc');library(rmarkdown); library(utils); render('input.Rmd', 'pdf_document')"
Vecchia risposta (circa 2012)
Quindi, un certo numero di persone ha suggerito che Pandoc è la strada da percorrere. Vedi le note seguenti sull'importanza di disporre di una versione aggiornata di Pandoc.
Usando Pandoc
Ho usato il seguente comando per convertire R Markdown in HTML (cioè una variante di questo makefile ), dove RMDFILE
è il nome del file R Markdown senza il .rmd
componente (presuppone anche che l'estensione sia .rmd
e 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'))"
e quindi questo comando per convertire in pdf
Pandoc -s example-r-markdown.html -o example-r-markdown.pdf
Alcune note a riguardo:
- Ho rimosso il riferimento nel file di esempio che esporta grafici in imgur per ospitare immagini.
- Ho rimosso un riferimento a un'immagine ospitata su imgur. Le figure sembrano aver bisogno di essere locali.
- Le opzioni nella
markdownToHTML
funzione significavano che i riferimenti alle immagini sono relativi ai file e non ai dati memorizzati nel file HTML (ovvero, ho rimosso 'base64_images'
dall'elenco delle opzioni).
- L'output risultante sembrava questo . Ha chiaramente creato un documento in stile LaTeX in contrasto con quello che ottengo se stampo il file HTML in pdf da un browser.
Ottenere la versione aggiornata di Pandoc
Come accennato da @daroczig, è importante disporre di una versione aggiornata di Pandoc per la produzione di pdf. Su Ubuntu dal 15 giugno 2012, ero bloccato con la versione 1.8.1 di Pandoc nel gestore dei pacchetti, ma dal registro delle modifiche sembra che per il supporto pdf sia necessaria almeno la versione 1.9+ di Pandoc.
Quindi ho installato caball-install
. E poi corse:
cabal update
cabal install pandoc
Pandoc è stato installato in ~/.cabal/bin/pandoc
Così, quando ho funzionato pandoc
, stava ancora vedendo la vecchia versione. Vedi qui per l' aggiunta al percorso .
knit
emdconvert.sh
). Potrebbe essere difficile trovare un approccio generale poiché LaTeX è troppo flessibile; puoi usare tutti i tipi di template per pandoc.