Подтвердить что ты не робот

Связь между R Markdown, Knitr, Pandoc и Bookdown

Какова связь между функциональностью R Markdown, Knitr, Pandoc и Bookdown?

В частности, что такое "разделение труда" между этими пакетами при преобразовании документов разметки со встроенным R-кодом (например, .Rnw или .Rmd) в конечные выходы (например, .pdf или .html)? И если Knitr используется для обработки RMarkdown, что делает пакет rmarkdown и как он отличается от markdown package?

4b9b3361

Ответ 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 принимает простой текстовый документ со встроенным кодом, выполняет код и "вставляет" результаты обратно в документ.

Например, он преобразует

Основная функция - 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-книги.