R Markdown やSweaveを利用することではPDFファイルの作成が可能ですが、PDFの出力には外部プログラムとして\(\TeX/\LaTeX\)環境が必要です。\(\TeX/\LaTeX\)は様々なディストラクションがありますが、 RStudio の利用を前提とした場合、軽量でクロスプラットフォーム対応の TinyTeX がおすゝめです。TinyTeX は RStudio社 で R Markdown などの開発を担当しているYihui Xie氏によるTeX Liveをベースとした軽量ディストリビューションで、日本語関連のパッケージを入れても名前通りインストールサイズが300MB程度と非常にコンパクトなのが特徴です。
同名のtinytex
パッケージを用いることで R からインストールやメンテナンスができるようになります。特に\(\TeX/\LaTeX\)を利用するのは R Markdown だけという場合には最適です。
TinyTeX をインストールするには前述のように tinytex
パッケージを用います。
Package | Description |
---|---|
tinytex | Helper Functions to Install and Maintain ‘TeX Live’ |
インストール手順は以下のようになります。
tinytex
パッケージのインストールtinytex
パッケージの仕様上必要な手順です)
tinytex
パッケージのインストールR やRStudio のターミナルから以下のコマンド(関数)を実行するか、 RStudio のパッケージマネージャからtinytex
パッケージをインストールします。
install.packages("tinytex")
tinytex
パッケージがインストールされたら、 R や RStudio のターミナルから以下のコマンド(関数)を実行します。
tinytex::install_tinytex()
途中で以下のようなメッセージが表示されます。文字通り TinyTeX をインストール中にワーニングメッセージが表示されるのですが、これらが表示されもて TinyTeX のインストールには影響はありませんので気にしないで下さい。
その後、メッセージが止まるような時がありますが焦らずに気長に待ってください。回線にもよりますが10分程度でインストールは終わります。
PDFファイルの日本語には標準設定でIPAフォント(IPAexフォント)が適用されます。これらのフォントがインストールされていない場合、エラーとなりPDFファイルが作成されていませんので必ずインストールしてください。IPAフォントは こちら からダウンロードできます。IPAフォントがインストールされていない場合は、IPAフォントならびにIPAexフォントのすべての書体を必ずインストールしてください。
RStudio を再起動したら使用したい\(\LaTeX\)エンジンに応じたYAMLを記述した日本語を含む R Mardkown ファイルをknitして下さい。特に問題なくPDFファイルがビルドされるハズです。なお、 TinyTeX でパッケージが不足している場合にはknit中に自動的にインストールしてくれます。
xelatex
を使う場合のYAML設定例---
output:
pdf_document:
latex_engine: xelatex
pandoc_args: --top-level-division=chapter
documentclass: bxjsbook
classoption: xelatex, ja=standard
geometry: no
---
lualatex
を使う場合のYAML設定---
output:
pdf_document:
latex_engine: lualatex
pandoc_args: --top-level-division=chapter
documentclass: ltjsarticle
---
日本語を扱う場合、\(\LaTeX\)エンジンは前出のxelatex
かlualatex
の二択になります。残念ながら日本語組版に広く対応しているupLaTeX
はYAMLで指定しても RStudio からは直接利用できません注1 。xelatex
を選択するのが現状ではベストです。
LaTeX | 概要 |
---|---|
LuaLaTeX | 海外で広く使われているpdfLaTeXを拡張したLaTeX |
XeLaTeX | Unicodeが使えるLaTeX、日本語組版にも対応しているらしい |
upLaTeX | Unicodeに対応した日本語組版対応のLaTeX |
CC BY-NC-SA 4.0 , Sampo Suzuki [2019-05-10(JST)]