ill-identified diary

所属組織の見解などとは一切関係なく小難しい話しかしません

[R] [TeX] rmarkdownでスライドをpdfで出力するフォーマットパッケージを作った

概要


タイトルの通り.

github.com

今の所, Linux (Ubuntu) と Mac (mojave) で動作確認した. 以下は出力例兼用例集

my_latex_templates/beamer_linux.pdf at master · Gedevan-Aleksizde/my_latex_templates · GitHub


なお, このリポジトリはもともと自分用のLaTeX関係のテンプレートを置いていたので, LyXや Jupyter Notebook に使うテンプレートも置いてある(後者はかなりやっつけ仕事). 基本的に自分用なのでレイアウトの改善要望には応えない可能性が高いが, 使うのは自由.

わからないことは R-wakalang などで質問してほしい.



詳細

いちおう補足しておくと, rmarkdown という, 背後でpandocなどを走らせてRのソースコードを含んだ文書をhtmlやpdfやdocxなどに変換するパッケージがある*1

しかし, pdfに関しては, 背後でLaTeXを使っており, これはデフォルトの設定では日本語を含む文書に関していろいろと調整が必要になる. 例えば伊東宏樹先生の以下のスライドでは, LuaLaTeX と beamer でスライドを作る例が紹介されている.

www.slideshare.net

で, 先月の第85回 Tokyo.R で以下のような発表があった

atusy.github.io

現状では日本語をうまく表示させるためにいろいろ設定を書く必要があったのだが, 上記で紹介されているようにRMarkdownフォーマットはRの関数であるので, 自分で作ることができる. atusyやkazutan氏などはhtml形式のスライドを作る方法に関する資料をいくつも残していてとても有用なのだが, LaTeXユーザーにとってはやはりpdfにレンダリングしたいということで作った.

要件と制約

リポジトリにも書いてあるが,

  • TeXLive が必要
  • XeCJK に依存しているため, レイアウトがたまにおかしくなる.

tinytexでは不十分な箇所があるのでTeX Live を別途インストールする必要がある. しかしバージョン違いであれこれ対処するのが面倒なのでそのうちtinytexの方をいじる必要がありそうだ.

当初はzxjatypeを使うようにしていたが, 最近のバージョンだとmicrotypeと競合することがわかり, 自分の LaTeX知識では難しくなったので妥協した. おそらく pandocのテンプレートなどもいじらないと解決できなさそう (lualatexで良いのではないか)

補足

beamerでなくhtmlで良いのならば既にもっと良い資料があるので以下を参考に.

kazutan.github.io

kazutan.github.io