R Markdown、 Knitr、 Pandoc 和 Bookdown 之间的关系

R Markdown、 Knitr、 Pandoc 和 Bookdown 的功能之间是什么关系?

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

23515 次浏览

潘多克

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

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

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

R 减价

R 降价是以降价为基础的:

标记(标记语言)

Markdown 是一个使用纯文本格式语法设计的轻量级标记语言,可以转换成 HTML 和许多其他格式。标记文件是一个纯文本文件,通常给出扩展名 .md

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

没有明确定义的降价标准。由于不同的供应商编写自己的语言变体来纠正缺陷或添加缺失的特性,这导致了分裂。

降价(R 包)

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

R Markdown (标记语言)

R Markdown 是 Markdown 语法的扩展。R Markdown 文件是纯文本文件,通常具有文件扩展名 .Rmd。它们是使用标记语法的扩展来编写的,这使得 R 代码可以以一种以后可以执行的方式嵌入到它们中。

因为它们需要由 rmarkdown包处理,所以可以使用 潘多克减价语法作为 R 标记文件的一部分。这是原始标记语法的一个扩展,它提供了诸如原始 HTML/Latex 和表之类的附加功能。

R Markdown (package)

R 包 rmarkdown是一个处理和转换 .Rmd文件到许多不同格式的库。

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

RMarkdown 软件包的目标仅仅是 提供相当好的默认值和一个 R 友好的界面来定制 Pandoc 选项。

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

注意,RMarkdown 只处理标记语法。如果要转换 .Rhtml.Rnw文件,应该使用内置在 Knitr中的方便函数,例如 knitr::knit2htmlknitr:knit2pdf

Knitr

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

例如,它可以转换

The core function is knitr::knit and by default this will look at the input document and try and guess what type it is - Rnw, Rmd etc.

这一核心职能发挥三种作用: - 源解析器,它查看输入文档并检测哪些部分是用户希望评估的代码。 - 代码计算器,用于计算此代码 - 输出渲染程序,以原始输出类型可解释的格式将评价结果写回文件。例如,如果输入文件是 .Rmd,则输出呈现将代码计算的输出标记为 .md格式。

在文档格式之间转换

Knitr 可以在不同的文档格式之间进行 没有转换,比如将 .md转换成 .html。但是,它确实提供了一些方便的函数来帮助您使用其他库来完成这项工作。如果您使用的是 ABC2包,那么您应该忽略这个功能,因为它已经被 rmarkdown::render取代了。

一个例子是 knitr:knit2pdf,它将: ’编织输入 Rnw 或 Rrst 文档,并使用 texi2pdf 或 rst2pdf 编译成 PDF’。

一个潜在的混淆来源是 knitr::knit2html"is a convenience function to knit the input markdown source and call markdown::markdownToHTML to convert the result to HTML."现在是遗留的功能,因为 markdown包已经被 rmarkdown包取代。见 这张纸条

登记

The bookdown package is built on top of R Markdown, and inherits the simplicity of the Markdown syntax , as well as the possibility of multiple types of output formats (PDF/HTML/Word/…).

它提供了诸如多页 HTML 输出、编号和交叉引用数字/表格/部分/方程、插入部分/附录等特性,并导入了 GitBook 样式(https://www.gitbook.com)来创建优雅和吸引人的 HTML 书籍页面。