Ранее я спрашивал о командах для преобразования R Markdown в HTML .
Как лучше конвертировать файлы R Markdown в документы PDF?
Хорошее решение сохранит как можно больше содержимого (например, изображения, уравнения, таблицы HTML и т. Д.). Решение должно быть запущено из командной строки. Хорошим решением также будет кроссплатформенность и, в идеале, минимизация зависимостей, чтобы упростить совместное использование make-файлов и т. Д.
Конкретно вариантов очень много:
- Преобразовывать ли RMD в MD в HTML в PDF; или RMD в MD в PDF; или RMD в PDF
- При использовании
markdown
пакета в R, какие параметры указать - Независимо от того, использовать
pandoc
ли пакет, встроенный в R, или что-то еще
Вот пример файла rmd, который предположительно обеспечивает разумную проверку любого предлагаемого решения. Он был использован в качестве основы для этого сообщения в блоге .
r-markdown
knitr
pandoc
Джероми Энглим
источник
источник
knit
иmdconvert.sh
). Может быть трудно придумать общий подход, поскольку LaTeX слишком гибок; вы можете использовать все виды шаблонов для pandoc.Ответы:
Обновленный ответ (10 фев 2013)
Пакет rmarkdown : теперь
rmarkdown
на github доступен пакет, который взаимодействует с Pandoc. Он включает в себяrender
функцию. В документации довольно понятно, как конвертировать rmarkdown в pdf среди ряда других форматов. Это включает в себя включение форматов вывода в файл rmarkdown или выполнение задания формата вывода для функции rend. Например,Командная строка: когда я запускаю
render
из командной строки (например, используя make-файл), у меня иногда возникают проблемы с тем, что pandoc не может быть найден. Предположительно, его нет на пути поиска. Следующий ответ объясняет , как добавить pandoc в среде R .Так, например, на моем компьютере под управлением OSX, где у меня есть копия pandoc через RStudio, я могу использовать следующее:
Старый ответ (около 2012 г.)
Итак, некоторые люди предположили, что Pandoc - это правильный путь. См. Примечания ниже о важности наличия последней версии Pandoc.
Использование Pandoc
Я использовал следующую команду для преобразования R Markdown в HTML (т. Е. Вариант этого make-файла ), где
RMDFILE
это имя файла R Markdown без.rmd
компонента (также предполагается, что расширение есть,.rmd
а нет.Rmd
).а затем эту команду для преобразования в pdf
Несколько замечаний по этому поводу:
markdownToHTML
функции означают, что ссылки на изображения относятся к файлам, а не к данным, хранящимся в файле HTML (т. Е. Я удалил их'base64_images'
из списка параметров).Получение последней версии Pandoc
Как упомянул @daroczig, для вывода PDF-файлов важно иметь последнюю версию Pandoc. На Ubuntu с 15 июня 2012 года я застрял с версией 1.8.1 Pandoc в диспетчере пакетов, но из журнала изменений видно, что для поддержки pdf вам нужна как минимум версия 1.9+ Pandoc.
Итак, я установил
caball-install
. А потом побежал:Pandoc был установлен в.
~/.cabal/bin/pandoc
Таким образом, когда я запускал,pandoc
он все еще видел старую версию. См. Здесь, чтобы добавить в путь .источник
pandoc
находится в версии 1.12 даже в моем уже устаревшем Ubuntu 13.04.Я думаю, вам действительно нужен pandoc , отличное программное обеспечение, которое было разработано и построено именно для этой задачи :) Помимо pdf , вы можете преобразовать ваш файл md, например, в docx или odt .
Что ж, установка
haskell-platform
последней версии Pandoc может быть сложной задачей для Linux (так как вам потребуется вся ˙ для сборки из исходных кодов), но очень просто на Windows / Mac с загрузкой всего нескольких мегабайт.Если у вас есть сваренный / связанный файл уценки, вы можете просто вызвать,
pandoc
например, bash илиsystem
функцию в R.Демонстрация POC этого последнего реализована вṖandoc.convert
функции моего маленького пакета ( который вам, должно быть, ужасно скучно, поскольку я пытаюсь обращайте на это внимание при каждой возможности ).источник
--toc
было бы полезно в командной строке (что привело бы к таблице содержимого nics на основе ваших заголовков), а также настройка шаблона LaTeX для ваших нужд (например, добавление туда\listoffigures
и / или\listoftables
т. Д.) Может привести к прекрасным документам.apt-get install pandoc
?sources.list
и выполнение, аapt-get install -t testing pandoc
затем установкуhaskell-platform
и компиляцию. (Обычно я делаю это экспериментально. Надеюсь, что при тестировании он работает точно так же.)Прямо сейчас (август 2014 г.) вы можете использовать RStudio для преобразования R Markdown в PDF. По сути, RStudio использует pandoc для преобразования Rmd в PDF.
Вы можете изменить метаданные на:
Подробнее - http://rmarkdown.rstudio.com/pdf_document_format.html
источник
Для параметра, который больше похож на то, что вы получаете при печати из браузера,
wkhtmltopdf
предоставляется один вариант.На Ubuntu
А затем та же команда, что и в примере pandoc, чтобы перейти к HTML:
а потом
Полученный файл выглядел это . Похоже, он не справлялся с MathJax ( эта проблема обсуждается здесь ), а разрывы страниц уродливые. Однако в некоторых случаях такой стиль может быть предпочтительнее более представления в стиле LaTeX.
источник
system("wkhtmltopdf temp.html temp.pdf")
Любые идеи, как это исправитьВсего два шага:
Установите последнюю версию "pandoc" отсюда:
https://github.com/jgm/pandoc/releases
Вызовите функцию
pandoc
вlibrary(knitr)
Таким образом, вы можете преобразовать ваш "input.md" в "input.pdf".
источник
Я нашел, что использовать R studio самый простой способ, но если вы хотите управлять из командной строки, тогда простой сценарий R может сделать трюк с помощью команды рендеринга rmarkdown (как упоминалось выше). Полная информация о сценарии здесь
источник
Если вы не хотите ничего устанавливать, вы можете вывести html. Затем откройте файл html - он должен открыться в окне браузера, затем щелкните правой кнопкой мыши, чтобы распечатать. В окне печати выберите «Сохранить как pdf» в правом нижнем углу, если вы используете Mac. Вуаля!
источник
Следуйте этим простым шагам:
1: В сценарии Rmarkdown запустите Knit (Ctrl + Shift + K) 2: Затем после открытия HTML-разметки нажмите Открыть в браузере (вверху слева), и HTML откроется в вашем веб-браузере 3: Затем используйте Ctrl + P и сохранить как PDF.
источник