113

R Markdown、Knitr、Pandoc、Bookdown的功能有什么关系?

.Rnw具体来说,在将带有嵌入式 R 代码(例如or .Rmd)的标记文档转换为最终输出(例如.pdfor )时,这些包之间的“分工”是什么.html?如果使用 Knitr 来处理 RMarkdown,这个rmarkdown包有什么作用,它与markdown package?

4

1 回答 1

173

潘多克

Pandoc 是一个文档转换器。它可以从许多不同的标记格式转换为许多其他格式,例如.doc.pdf等。

Pandoc 是一个没有 GUI 的命令行工具。它是一个独立的软件,独立于 R。但是,它与 R Studio 捆绑在一起,因为rmarkdown它依赖于它进行文档转换。

Pandoc 不仅转换文档,而且还在基本 Markdown 语言之上添加功能,使其能够支持更复杂的输出。

R 降价

R Markdown 基于降价:

Markdown(标记语言)

Markdown 是一种轻量级标记语言,具有纯文本格式语法,旨在将其转换为 HTML 和许多其他格式。降价文件是一个纯文本文件,通常以.md.

与 HTML 和 Latex 等其他标记语言一样,它完全独立于 R。

没有明确定义的 Markdown 标准。这导致了碎片化,因为不同的供应商编写了自己的语言变体来纠正缺陷或添加缺失的功能。

降价(R包)

markdown是一个将.Rmd文件转换为 HTML 的 R 包。它是 的前身rmarkdown,提供了更多的功能。不再推荐使用。

R Markdown(标记语言)

R Markdown 是 markdown 语法的扩展。R Markdown 文件是通常具有文件扩展名的纯文本文件.Rmd。它们是使用 markdown 语法的扩展编写的,使 R 代码能够以以后可以执行的方式嵌入其中。

因为它们预计会被rmarkdown包处理,所以可以使用Pandoc 降价语法作为 R 降价文件的一部分。这是对原始 Markdown 语法的扩展,提供了原始 HTML/Latex 和表格等附加功能。

R Markdown(包)

R 包rmarkdown是一个库,它.Rmd处理文件并将其转换为多种不同的格式。

核心功能是rmarkdown::render站在pandoc 的肩膀上。此函数使用 pandoc 将输入文件呈现为指定的输出格式。如果输入需要编织,则knitr::knit在 pandoc 之前调用。

RMarkdown 包的目的只是提供相当好的默认值和一个 R 友好的界面来自定义 Pandoc 选项。.

在 RMarkdown 文件顶部看到的 YAML 元数据专门用于将选项传递给rmarkdown::render,以指导构建过程。

请注意,RMarkdown 仅处理 markdown 语法。如果你想转换一个.Rhtml或一个.Rnw文件,你应该使用内置的便利函数Knitr,例如knitr::knit2htmlknitr:knit2pdf

针织品

Knitr 获取带有嵌入代码的纯文本文档,执行代码并将结果“编织”回文档中。

例如,它转换

核心功能是knitr::knit,默认情况下,它将查看输入文档并尝试猜测它是什么类型 - Rnw、Rmd 等。

此核心功能执行三个角色: - 源解析器,它查看输入文档并检测哪些部分是用户想要评估的代码。- 评估此代码的代码评估器 - 输出渲染器,它将评估结果以原始输出类型可解释的格式写回文档。例如,如果输入文件是.Rmd,则输出渲染以.md格式标记代码评估的输出。

在文档格式之间转换

Knitr 不会文档格式之间进行转换 - 例如将 a.md转换为.html. 但是,它确实提供了一些便利功能来帮助您使用其他库来执行此操作。 如果您正在使用该rmarkdown软件包,则应忽略此功能,因为它已被rmarkdown::render.

一个例子是knitr:knit2pdf'编织输入的 Rnw 或 Rrst 文档,并使用 texi2pdf 或 rst2pdf 编译为 PDF'。

一个潜在的混淆来源是knitr::knit2html,它“是一个方便的函数,用于编织输入降价源并调用markdown::markdownToHTML以将结果转换为 HTML。” 这现在是遗留功能,因为该markdown包已被该rmarkdown包取代。请参阅此说明

预订

bookdown 包建立在 R Markdown 之上,继承了 Markdown 语法的简单性,以及多种输出格式(PDF/HTML/Word/...)的可能性。

它提供多页 HTML 输出、编号和交叉引用图形/表格/部分/方程式、插入部分/附录等功能,并导入 GitBook 样式 ( https://www.gitbook.com ) 以创建优雅和吸引人的 HTML书页。

于 2016-11-12T13:45:42.133 回答