RStudio on Windows で R Markdown から日本語PDFをKnitする

この記事を書いたのは 2015/8/10 です

RStudio で利用できる R Markdown は 通常のMarkdown記法 にRの実行コマンドを追加したようなもので、書き上がったドキュメントはHTMLやMS Wordなんかにちゃちゃっと変換できます。ただし、PDFに変換するには一手間必要になるのと、場合によってはエラーにハマることがあるので、今回はそれを実践した時の事をメモしておきます。

環境

MikTeXの準備

R MarkdownからPDFへの変換は途中LaTeXを経由するため、LaTeXの処理系が必要になります。そのためのMikTeXを調達します。MikTeXのダウンロードページ からBasic MikTeXを入手。64bit版は "Other Downloads" から。

インストーラを実行してインストール。"Install missing packages on-the-fly" はYesで良いでしょう。

終わったら スタートメニュー → MikTeX → Maintenance (Admin) → Update (Admin) で、念のため既存パッケージを最新状態にアップデート。

次に スタートメニュー → MikTeX → Maintenance (Admin) → Package Manager (Admin) を起動。
"Keywords" のフィールドに「mathspec」と入力して検索を掛け、mathspecをInstallします。(これを省くとエラーにハマるのは後述)

RStudioの設定

20141224-rstudio-pdf-001.png

Tools → Global Options… から、左メニューのSweaveを開きます。これは新しくR Markdownを作成するときのデフォルト値になります。

R MarkdownからPDF作成

R Markdownの先頭に以下を記述します。

---
title: "たいとる"
author: "おーさー"
date: "Wednesday, December 24, 2014"
output:
  pdf_document:
    latex_engine: xelatex
mainfont: Meiryo
monofont: Meiryo
---

ポイントは `output` と `(main|mono)font`。

まず、`output` を指定してやらないとPDF自体を作ってくれません。`latex_engine` も必ず指定します。

そして `mainfont` と `monofont` で、日本語のフォントを指定します。これをしないと標準では英字フォントが選択されるので、フォントに載っていない文字、つまり日本語が真っ白けになるというわけです。

ひとまずここまでやれば、[Knit PDF] でPDFが作成できます。

おまけ: setmainfontのエラーでハマった件

僕が最初に knit PDF したときは、RStudioにこんなエラーが出ました。

output file: testpdf.knit.md

! Undefined control sequence.
\fontspec_calc_scale:n ...ec_tmpb_dim }\fp_div:Nn 
                                                  \l_fontspec_tmpa_fp {\l_fo...
l.21     \setmainfont{Meiryo}

pandoc.exe: Error producing PDF from TeX source
 ?G???[: pandoc document conversion failed with error 43

何やら `setmainfont` する段階でpandocがコケている様子。R Markdownから `(main|mono)font` を抜けば正常にPDFは作れましたが、もちろん日本語文字は表示されません。

悩んだ末に判明した原因が、mathspec なるパッケージの不足です。

このパッケージ、標準ではMikTeXには導入されていませんが、R Markdownの雛形ファイル `Program Files\R\R-x.x.x\library\rmarkdown\rmd\latex\default.tex` を覗くと、XeLaTeX環境では `usepackage{fontspec}` の代わりに `usepackage{mathspec}` される設定になっていました。

参考

RStudioで日本語PDF - ぼやかないつもりのメモ
RStudioから使えるR Markdownで日本語のPDFを作成する - りんごがでている
RStudioを使ったPDF文書の作成 - uri@Qiita


添付ファイル: file20141224-rstudio-pdf-001.png 45件 [詳細]

トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2023-06-05 (月) 05:23:53