Обновленный ответ (10 фев 2013)
Пакет rmarkdown : теперь rmarkdown
на github доступен пакет, который взаимодействует с Pandoc. Он включает в себя render
функцию. В документации довольно понятно, как конвертировать rmarkdown в pdf среди ряда других форматов. Это включает в себя включение форматов вывода в файл rmarkdown или выполнение задания формата вывода для функции rend. Например,
render("input.Rmd", "pdf_document")
Командная строка:
когда я запускаю render
из командной строки (например, используя make-файл), у меня иногда возникают проблемы с тем, что pandoc не может быть найден. Предположительно, его нет на пути поиска. Следующий ответ объясняет , как добавить pandoc в среде R .
Так, например, на моем компьютере под управлением OSX, где у меня есть копия pandoc через RStudio, я могу использовать следующее:
Rscript -e "Sys.setenv(RSTUDIO_PANDOC='/Applications/RStudio.app/Contents/MacOS/pandoc');library(rmarkdown); library(utils); render('input.Rmd', 'pdf_document')"
Старый ответ (около 2012 г.)
Итак, некоторые люди предположили, что Pandoc - это правильный путь. См. Примечания ниже о важности наличия последней версии Pandoc.
Использование Pandoc
Я использовал следующую команду для преобразования R Markdown в HTML (т. Е. Вариант этого make-файла ), где RMDFILE
это имя файла R Markdown без .rmd
компонента (также предполагается, что расширение есть, .rmd
а нет .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'))"
а затем эту команду для преобразования в pdf
Pandoc -s example-r-markdown.html -o example-r-markdown.pdf
Несколько замечаний по этому поводу:
- Я удалил ссылку в файле примера, который экспортирует графики в imgur для размещения изображений.
- Я удалил ссылку на изображение, размещенное на imgur. Представляется, что цифры должны быть местными.
- Параметры в
markdownToHTML
функции означают, что ссылки на изображения относятся к файлам, а не к данным, хранящимся в файле HTML (т. Е. Я удалил их 'base64_images'
из списка параметров).
- Результирующий выходной сигнал выглядел как это . Он явно создал документ в стиле LaTeX, в отличие от того, что я получаю, если распечатываю HTML-файл в pdf из браузера.
Получение последней версии Pandoc
Как упомянул @daroczig, для вывода PDF-файлов важно иметь последнюю версию Pandoc. На Ubuntu с 15 июня 2012 года я застрял с версией 1.8.1 Pandoc в диспетчере пакетов, но из журнала изменений видно, что для поддержки pdf вам нужна как минимум версия 1.9+ Pandoc.
Итак, я установил caball-install
. А потом побежал:
cabal update
cabal install pandoc
Pandoc был установлен в. ~/.cabal/bin/pandoc
Таким образом, когда я запускал, pandoc
он все еще видел старую версию. См. Здесь, чтобы добавить в путь .
knit
иmdconvert.sh
). Может быть трудно придумать общий подход, поскольку LaTeX слишком гибок; вы можете использовать все виды шаблонов для pandoc.