以前に R MarkdownをHTMLに変換するコマンド について質問しました。
R MarkdownファイルをPDFドキュメントに変換する良い方法は何ですか?
適切なソリューションは、コンテンツ(画像、方程式、htmlテーブルなど)を可能な限り保存します。ソリューションは、コマンドラインから実行できる必要があります。優れたソリューションはクロスプラットフォームでもあり、理想的には依存関係を最小限に抑えて、メイクファイルなどを簡単に共有できるようにします。
具体的には、多くのオプションがあります。
markdown
パッケージを使用する場合、指定するオプションpandoc
、Rに組み込まれたパッケージ、または他の何かを使用するかどうか以下に例を示します rmd file これは、おそらく提案されたソリューションの妥当なテストを提供します。 このブログ投稿 の基礎として使用されました。
rmarkdown package:Pandocとインターフェースする rmarkdown
パッケージがgithubで利用可能 があります。 render
関数が含まれています。ドキュメントは、他のさまざまな形式間でrmarkdownをpdfに変換する方法をかなり明確にします。これには、rmarkdownファイルに出力形式を含めるか、rend関数に出力形式を指定して実行することが含まれます。例えば。、
render("input.Rmd", "pdf_document")
コマンドライン:コマンドラインからrender
を実行すると(たとえば、メイクファイルを使用して)、時々pandocで問題が発生しません見つかっています。おそらく、検索パスにはありません。次の回答では、 R環境にpandocを追加する方法 について説明しています。
したがって、たとえば、RStudioを介してpandocのコピーがあるOSXを実行しているコンピューターでは、次のものを使用できます。
Rscript -e "Sys.setenv(RSTUDIO_PANDOC='/Applications/RStudio.app/Contents/MacOS/pandoc');library(rmarkdown); library(utils); render('input.Rmd', 'pdf_document')"
そのため、多くの人々が、Pandocを使用する方法を提案しています。 Pandocの最新バージョンを使用することの重要性については、以下のメモを参照してください。
次のコマンドを使用して、R MarkdownをHTMLに変換します(つまり、 このmakefileのバリアント )。ここで、RMDFILE
は.rmd
コンポーネントなしのR Markdownファイルの名前です。 (また、拡張子が.rmd
ではなく.Rmd
であると想定しています)。
RMDFILE=example-r-markdown
Rscript -e "require(knitr); require(markdown); knit('$RMDFILE.rmd', '$RMDFILE.md'); markdownToHTML('$RMDFILE.md', '$RMDFILE.html', options=c('use_xhml'))"
そして、このコマンドはpdfに変換します
Pandoc -s example-r-markdown.html -o example-r-markdown.pdf
markdownToHTML
関数のオプションは、画像参照がHTMLファイルに保存されたデータではなくファイルを参照することを意味しました(つまり、オプションリストから'base64_images'
を削除しました)。@daroczigが述べたように、pdfを出力するためには、Pandocの最新バージョンを持つことが重要です。 2012年6月15日のUbuntuでは、パッケージマネージャーでPandocのバージョン1.8.1に固執していましたが、 変更ログ から、pdfサポートには少なくともバージョン1.9+のPandocが必要であるようです。
したがって、caball-install
をインストールしました。そして実行しました:
cabal update
cabal install pandoc
Pandocは~/.cabal/bin/pandoc
にインストールされました。したがって、pandoc
を実行したとき、まだ古いバージョンが表示されていました。 パスへの追加 についてはこちらをご覧ください。
pandoc が必要だと思います。このタスクのためだけに設計され、構築されたすばらしいソフトウェアです:)pdfに加えて、 mdファイルを例えばdocxまたはodtなど。
Pandocの最新バージョンをインストールする は、Linuxでは問題になるかもしれません(ソースからビルドするにはhaskell-platform
˙全体が必要になるため)、しかしWindows /ダウンロードがわずか数メガバイトのMac。
作成/編集されたマークダウンファイルがある場合は、bashなどでpandoc
を呼び出すか、R内のsystem
関数を使用します。後者のPOCデモは Ṗandoc.convert
私の小さなパッケージの機能 (あらゆる機会にそこに注意を向けようとするので、あなたはひどく退屈しなければなりません)。
現在(2014年8月)R MarkdownをPDFに変換するためにRStudioを使用できます。基本的に、RStudioはpandocを使用してRmdをPDFに変換します。
メタデータを次のように変更できます。
詳細については、- http://rmarkdown.rstudio.com/pdf_document_format.html
ブラウザから印刷したときに得られるものに似たオプションの場合、 wkhtmltopdf
が1つのオプションを提供します。
Ubuntuで
Sudo apt-get install wkhtmltopdf
そして、pandocの例と同じコマンドを使用してHTMLにアクセスします。
RMDFILE=example-r-markdown
Rscript -e "require(knitr); require(markdown); knit('$RMDFILE.rmd', '$RMDFILE.md'); markdownToHTML('$RMDFILE.md', '$RMDFILE.html', options=c('use_xhml'))"
その後
wkhtmltopdf example-r-markdown.html example-r-markdown.pdf
結果のファイルは this のように見えました。 MathJaxを処理していないようで( この問題についてはここで説明します )、改ページは見苦しくなります。ただし、場合によっては、このようなスタイルは、LaTeXスタイルのプレゼンテーションよりも優先されることがあります。
2つのステップのみ:
ここから最新リリースの「pandoc」をインストールします。
library(knitr)
で関数pandoc
を呼び出します
library(knitr)
pandoc('input.md', format = 'latex')
したがって、「input.md」を「input.pdf」に変換できます。
Rスタジオを使用するのが最も簡単な方法であることがわかりましたが、コマンドラインから制御したい場合は、単純なRスクリプトで rmarkdown renderコマンドを使用してトリックを実行できます(前述のとおり)。完全なスクリプトの詳細 こちら
#!/usr/bin/env R
# Render R markdown to PDF.
# Invoke with:
# > R -q -f make.R --args my_report.Rmd
# load packages
require(rmarkdown)
# require a parameter naming file to render
if (length(args) == 0) {
stop("Error: missing file operand", call. = TRUE)
} else {
# read report to render from command line
for (rmd in commandArgs(trailingOnly = TRUE)) {
# render Rmd to PDF
if ( grepl("\\.Rmd$", rmd) && file.exists(rmd)) {
render(rmd, pdf_document())
} else {
print(paste("Ignoring: ", rmd))
}
}
}
次の簡単な手順に従ってください。
1:RmarkdownスクリプトでKnit(Ctrl + Shift + K)を実行します2:その後、htmlマークダウンを開いた後、ブラウザーで開く(左上)をクリックし、Webブラウザーでhtmlを開きます3:次にCtrl + Pを使用してPDFとして保存します。
何もインストールしたくない場合は、htmlを出力できます。次に、HTMLファイルを開きます。ブラウザウィンドウで開き、右クリックして印刷します。 Macを使用している場合は、印刷ウィンドウの右下隅にある[pdf形式で保存]を選択します。出来上がり!