Пандок
Pandoc - это конвертер документов. Он может конвертировать из ряда различных форматов разметки во многие другие форматы, такие как .doc
и .pdf
т. Д.
Pandoc - это инструмент командной строки без графического интерфейса. Это независимая часть программного обеспечения, отдельная от R. Однако она поставляется в комплекте с R Studio, поскольку rmarkdown
использует ее для преобразования документов.
Pandoc не только конвертирует документы, но и добавляет функциональность поверх базового языка разметки, чтобы он мог поддерживать более сложные выходные данные.
R Markdown
R Markdown основан на уценке:
Markdown (язык разметки)
Markdown - это облегченный язык разметки с синтаксисом форматирования простого текста, разработанный таким образом, чтобы его можно было преобразовать в HTML и многие другие форматы. Файл уценки - это простой текстовый файл, которому обычно присваивается расширение .md
.
Как и другие языки разметки, такие как HTML и Latex, он полностью независим от R.
Четко определенного стандарта Markdown не существует. Это привело к фрагментации, поскольку разные поставщики пишут свои собственные варианты языка для исправления недостатков или добавления недостающих функций.
Markdown (пакет R)
markdown
представляет собой пакет R, конвертирующий .Rmd
файлы в HTML. Это предшественник rmarkdown
, предлагающий гораздо больше функций. Больше не рекомендуется к использованию.
R Markdown (язык разметки)
R Markdown - это расширение синтаксиса уценки. Файлы R Markdown - это простые текстовые файлы, которые обычно имеют расширение .Rmd
. Они написаны с использованием расширения синтаксиса уценки, которое позволяет встраивать в них R-код таким образом, чтобы впоследствии его можно было выполнить.
Поскольку ожидается, что они будут обработаны rmarkdown
пакетом, можно использовать синтаксис разметки Pandoc как часть файла разметки R. Это расширение исходного синтаксиса уценки, которое обеспечивает дополнительные функции, такие как необработанный HTML / латекс и таблицы.
R Markdown (пакет)
Пакет R rmarkdown
- это библиотека, которая обрабатывает и преобразует .Rmd
файлы в различные форматы.
Основная функция - это то, rmarkdown::render
что стоит на плечах pandoc . Эта функция отображает входной файл в указанный выходной формат с помощью pandoc. Если ввод требует вязания, то knitr::knit
вызывается до pandoc.
Цель пакета RMarkdown - просто предоставить разумно хорошие настройки по умолчанию и удобный для R интерфейс для настройки параметров Pandoc. .
Метаданные YAML, отображаемые в верхней части файлов RMarkdown, специально предназначены для передачи параметров rmarkdown::render
, чтобы направлять процесс сборки.
Обратите внимание, что RMarkdown работает только с синтаксисом уценки. Если вы хотите преобразовать файл .Rhtml
или .Rnw
файл, вам следует использовать встроенные вспомогательные функции Knitr
, такие как knitr::knit2html
иknitr:knit2pdf
Knitr
Knitr берет обычный текстовый документ со встроенным кодом, выполняет код и «вяжет» результаты обратно в документ.
Например, он конвертирует
Основная функция - knitr::knit
и по умолчанию она просматривает входной документ и пытается угадать его тип - Rnw, Rmd и т. Д.
Эта основная функция выполняет три роли: - Анализатор исходного кода, который просматривает входной документ и определяет, какие части являются кодом, который пользователь хочет оценить. - Оценщик кода, который оценивает этот код. - Средство визуализации вывода, которое записывает результаты оценки обратно в документ в формате, который интерпретируется исходным типом вывода. Например, если входным файлом является файл .Rmd
, выходной рендер помечает выходные данные оценки кода в .md
формате.
Преобразование между форматами документов
Knitr вовсе не конвертировать между форматами документов - таких , как преобразование .md
в .html
. Однако он предоставляет некоторые удобные функции, которые помогут вам использовать для этого другие библиотеки. Если вы используете rmarkdown
пакет, вы должны игнорировать эту функцию, потому что она была заменена rmarkdown::render
.
Пример knitr:knit2pdf
: «Свяжите входной документ Rnw или Rrst и скомпилируйте в PDF с помощью texi2pdf или rst2pdf».
Потенциальный источник путаницы заключается в том knitr::knit2html
, что «удобная функция связывает входной источник уценки и вызывает markdown::markdownToHTML
преобразование результата в HTML». Теперь это унаследованная функция, поскольку markdown
пакет был заменен rmarkdown
пакетом. См. Эту заметку .
Bookdown
Пакет bookdown построен на основе R Markdown и наследует простоту синтаксиса Markdown, а также возможность использования нескольких типов выходных форматов (PDF / HTML / Word /…).
Он предлагает такие функции, как вывод многостраничного HTML, нумерацию и перекрестные ссылки на рисунки / таблицы / разделы / уравнения, вставку частей / приложений и импортирование стиля GitBook ( https://www.gitbook.com ) для создания элегантного и привлекательного HTML. книжные страницы.
knitr_opts
(я всегда забываю, как это называется), или через настраиваемые аргументы pandoc, или через дополнительные файлы yam, или через настраиваемый pandoc template ... Иногда это немного похоже на джунгли, особенно когда вы добавляете LaTeX в цепочку.pandoc
шагов, меньше магии, меньше путаницы. Просто по общему признанию крутая кривая обучения LaTeX. На мой взгляд, Rmarkdown отлично подходит, когда вас устраивают простые вещи по умолчанию. Но как только вам придется его настроить, сложность быстро возрастет.