Отношения между R Markdown, Knitr, Pandoc и Bookdown
какова связь между функциональностью R Markdown, Knitr, Pandoc и Bookdown?
в частности, что такое "разделение труда" между этими пакетами при преобразовании документов разметки со встроенным кодом R (например,.Rnw
или .Rmd
) в конечные результаты (например,.pdf
или .html
)? И если Knitr используется для обработки RMarkdown, что делает rmarkdown
пакет do и как он отличается от markdown package
?
1 ответов
Pandoc
Pandoc-конвертер документов. Он может конвертировать из нескольких различных форматов разметки во многие другие форматы, такие как .doc
, .pdf
etc.
Pandoc-это инструмент командной строки без GUI. Это независимая часть программного обеспечения, отдельная от R. Однако, она поставляется в комплекте с R Studio, потому что rmarkdown
полагается на него для преобразования документов.
Pandoc не только преобразует документы, но и добавляет функциональность поверх базовый язык markdown, позволяющий поддерживать более сложные результаты.
R Markdown
R Markdown основан на markdown:
Markdown (язык разметки)
Markdown-это легкий язык разметки с синтаксисом форматирования обычного текста, предназначенный для преобразования в HTML и многие другие форматы. Файл markdown-это обычный текстовый файл, который обычно имеет расширение .md
.
как и другие языки разметки, такие как HTML и Latex, он полностью независим от R.
нет четко определенного стандарта Markdown. Это привело к фрагментации, поскольку разные поставщики пишут свои собственные варианты языка для исправления недостатков или добавления отсутствующих функций.
Markdown (R пакет)
markdown
является пакетом R, который преобразует .Rmd
файлы в HTML. Это предшественник rmarkdown
, который предлагает большую функциональность. Это не более длиной порекомендованный для пользы.
R Markdown (язык разметки)
R Markdown является расширением синтаксиса markdown. R Markdown файлы представляют собой текстовые файлы, которые обычно имеют расширение файла .Rmd
. Они написаны с использованием расширения синтаксиса markdown, которое позволяет встроить в них код R способом, который может быть выполнен позже.
потому что они, как ожидается, будут обработаны rmarkdown
пакет, можно использовать Pandoc синтаксис markdown как часть файла уценки R. Это расширение исходного синтаксиса markdown, которое предоставляет дополнительные функции, такие как raw HTML/Latex и таблицы.
R Markdown (пакет)
пакет R rmarkdown
- это библиотека, которая обрабатывает и преобразует .Rmd
файлы в различные форматы.
основные функции rmarkdown::render
, который стоит на плечах pandoc. Эта функция ' входной файл в указанный выходной формат с помощью pandoc. Если вход требует вязания, то knitr::knit
вызывается до pandoc.
цель пакета RMarkdown просто чтобы обеспечить разумно хорошие значения по умолчанию и R-дружественный интерфейс для настройки параметров Pandoc..
метаданные YAML, видимые в верхней части файлов RMarkdown, специально передаются в rmarkdown::render
, чтобы направлять процесс сборки.
обратите внимание, что RMarkdown только синтаксис Markdown. Если вы хотите преобразовать .Rhtml
или .Rnw
файл, вы должны использовать функции удобства, встроенные в Knitr
, например knitr::knit2html
и knitr:knit2pdf
Knitr
Knitr берет простой текстовый документ со встроенным кодом, выполняет код и "вяжет" результаты обратно в документ.
например, он преобразует
- An R Markdown (
.Rmd
) файл в стандарт файл markdown (.md
) - An
.Rnw
(Sweave) на . - An
.Rhtml
файл в html.
основные функции knitr::knit
и по умолчанию это будет смотреть на входной документ и пытаться угадать, какой это тип - Rnw,Rmd и т. д.
эта основная функция выполняет три роли:
- Исходный парсер, который смотрит на входной документ и определяет, какие части кода что пользователь хочет быть оцененным.
- Вычислитель кода, который оценивает этот код
- Выходной визуализатор, который записывает результаты оценки обратно в документ в формате, который интерпретируется типом raw output. Например, если входной файл является .Rmd
, выходной рендер отмечает вывод оценки кода в .
преобразование между форматами документа
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.