R Markdown、Knitr、Pandoc、およびBookdownの機能間の関係は何ですか?
具体的には、埋め込みRコードでマークアップドキュメントを変換する際のこれらのパッケージ間の「分業」とは何ですか(例:.Rnw
または .Rmd
)最終的な出力(例:.pdf
または .html
)?また、Knitrを使用してRMarkdownを処理する場合、rmarkdown
パッケージは何を行い、markdown package
?
Pandocはドキュメントコンバーターです。さまざまなマークアップ形式から、.doc
、.pdf
など、他の多くの形式に変換できます。
Pandocは、GUIのないコマンドラインツールです。 Rとは別の独立したソフトウェアです。ただし、rmarkdown
はドキュメント変換に依存しているため、R Studioにバンドルされています。
Pandocはドキュメントを変換するだけでなく、ベースマークダウン言語の上に機能を追加して、より複雑な出力をサポートできるようにします。
R Markdownはマークダウンに基づいています:
Markdownは、プレーンテキスト形式の構文がHTMLやその他の多くの形式に変換できるように設計された軽量のマークアップ言語です。マークダウンファイルは、通常.md
という拡張子が付けられたプレーンテキストファイルです。
HTMLやLatexのような他のマークアップ言語と同様に、Rから完全に独立しています。
明確に定義されたマークダウン標準はありません。これは、さまざまなベンダーが独自の言語のバリアントを作成して欠陥を修正したり、欠落している機能を追加したりするため、断片化につながりました。
markdown
は、.Rmd
ファイルをHTMLに変換するRパッケージです。 rmarkdown
の前身であり、より多くの機能を提供します。使用は推奨されなくなりました。
R Markdownは、マークダウン構文の拡張です。 R Markdownファイルは、通常ファイル拡張子.Rmd
を持つプレーンテキストファイルです。これらは、後で実行できるようにRコードを埋め込み可能なマークダウン構文の拡張を使用して記述されています。
rmarkdown
パッケージによって処理されることが期待されているため、Rマークダウンファイルの一部として Pandoc markdown syntax を使用することができます。これは、生のHTML/Latexやテーブルなどの追加機能を提供する元のマークダウン構文の拡張機能です。
Rパッケージrmarkdown
は、.Rmd
ファイルを処理し、さまざまな形式に変換するライブラリです。
コア関数はrmarkdown::render
で、これは がpandoc の肩の上にあります。この関数 'は、pandocを使用して入力ファイルを指定された出力形式にレンダリングします。入力に編みが必要な場合、knitr::knit
がpandocの前に呼び出されます。
RMarkdownパッケージの目的は、Pandocオプションをカスタマイズするための合理的な適切なデフォルト値とRフレンドリーなインターフェースを提供するための単純な です。 。
RMarkdownファイルの上部に表示されるYAMLメタデータは、ビルドプロセスをガイドするために、rmarkdown::render
にオプションを渡すことを具体的に示しています。
RMarkdownはマークダウン構文のみを扱うことに注意してください。 .Rhtml
または.Rnw
ファイルを変換する場合は、knitr::knit2html
やknitr:knit2pdf
などのKnitr
に組み込まれている便利な関数を使用する必要があります。
Knitrは、コードが埋め込まれたプレーンテキストドキュメントを受け取り、コードを実行し、結果をドキュメントに「編み込み」ます。
たとえば、変換します
.Rmd
) ファイルから標準のマークダウンファイル(.md
)へ.Rnw
(Sweave) ファイルを.tex
形式に変換します。.Rhtml
ファイルからhtmlへ。コア関数はknitr::knit
であり、デフォルトでは、これは入力ドキュメントを見て、Rnw、Rmdなどのタイプを推測します。
このコア機能は3つの役割を実行します。-ソースパーサー。入力ドキュメントを調べ、ユーザーが評価したいコード部分を検出します。 -このコードを評価するコードエバリュエーター-評価結果を生の出力タイプで解釈可能な形式でドキュメントに書き戻す出力レンダラー。たとえば、入力ファイルが.Rmd
の場合、出力レンダーは.md
形式でコード評価の出力をマークアップします。
Knitrはnot文書形式間の変換を行います-.md
を.html
に変換するなど。ただし、他のライブラリを使用してこれを行うのに役立ついくつかの便利な機能を提供します。 rmarkdown
パッケージを使用している場合、rmarkdown::render
で置き換えられているため、この機能を無視する必要があります。
例はknitr:knit2pdf
で、次のようになります。 '入力RnwまたはRrstドキュメントを編み、texi2pdfまたはrst2pdfを使用してPDFにコンパイルします。
潜在的な混乱の原因はknitr::knit2html
です。これは "入力マークダウンソースを編成し、markdown::markdownToHTML
を呼び出して結果をHTMLに変換する便利な関数です。"markdown
パッケージがrmarkdown
パッケージに置き換えられたため、これはレガシー機能になりました。 this note を参照してください。
BookdownパッケージはR Markdownの上に構築され、Markdown構文の単純さと、複数のタイプの出力形式(PDF/HTML/Word /…)の可能性を継承します。
マルチページHTML出力、図/表/セクション/式の番号付けと相互参照、部品/付録の挿入、GitBookスタイルのインポート( https://www.gitbookなど)の機能を提供します。 .com )を使用して、エレガントで魅力的なHTMLブックページを作成します。