Ответ 1
Pandoc
Pandoc - это конвертер документов. Он может конвертировать из нескольких разных форматов разметки во многие другие форматы, такие как .doc
, .pdf
и т.д.
Pandoc - это инструмент командной строки без GUI. Это независимая часть программного обеспечения, отдельно от R. Однако она поставляется в комплекте с R Studio, потому что rmarkdown
полагается на нее для преобразования документа.
Pandoc не только преобразует документы, но также добавляет функциональность поверх базового языка разметки, чтобы он мог поддерживать более сложные выходы.
R Markdown
R Markdown основан на уценке:
Markdown (язык разметки)
Markdown - это легкий язык разметки с синтаксисом форматирования текста, разработанным так, чтобы его можно было преобразовать в HTML и многие другие форматы. Файл уценки - это обычный текстовый файл, который обычно присваивается расширением .md
.
Как и другие языки разметки, такие как HTML и латекс, он полностью не зависит от 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 принимает простой текстовый документ со встроенным кодом, выполняет код и "вставляет" результаты обратно в документ.
Например, он преобразует
- Файл R Markdown (
.Rmd
) в стандартный файл разметки (.md
) - Файл
.Rnw
(Sweave) в формате.tex
. -
.Rhtml
файл в html.
Основная функция - knitr::knit
, и по умолчанию это будет смотреть на входной документ и попытаться угадать, какой тип это - Rnw, Rmd и т.д.
Эта основная функция выполняет три роли:
- Исходный синтаксический анализатор, который смотрит на входной документ и определяет, какие части являются кодом, который пользователь хочет оценить.
- Оценщик кода, который оценивает этот код
- Средство вывода, которое записывает результаты оценки обратно в документ в формате, который интерпретируется сырым типом вывода. Например, если входным файлом является .Rmd
, вывод выводит вывод оценки кода в формате .md
.
Преобразование между форматами документов
Knitr не конвертирует между форматами документов - например, преобразование a .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-книги.