💮ついに念願の「knitrで生成したPDF上で絵文字を出力する」ことに成功したぞ
進捗です。Rmarkdown (PDF)内にemoji ㊗ pic.twitter.com/geMjfSO8ip
— \x48\x65\x6c\x6c\x6f (@u_ribo) August 28, 2015
そういえば我々はRで絵文字を扱うことに情熱を燃やしていた時期があった(2月14日になにしてるんだ、と今思った)。
```{r 💣, eval=FALSE} みたいにchunk optionで絵文字が使えることを確認した。試してみるもんだな
— \x48\x65\x6c\x6c\x6f (@u_ribo) February 2, 2015
http://rpubs.com/yutannihilation/rollingsushi
君たちは頭がおかしい
— ホクソナギ (@teramonagi) February 14, 2015
Please use emoji in your next latex doc: https://t.co/uj8lc5Hodl !
— Hadley Wickham (@hadleywickham) June 10, 2015
{remoji}
を使えば、Rのコンソールやknitしたhtmlやmdに絵文字を出力させることができるようになるが、思うように絵文字を表示できず、猛者たちが挫折して文字コードの闇に落ちていった。残された課題は日本語を含んだPDFに絵文字を埋め込むことと、plotに絵文字を使うこと(いわゆるpch = 🍣)。であった。私はスターウォーズ エピソード5でのヨーダが如く、誰かがなんとかしてくれるのをじっと待つことにした(PDFに絵文字を埋め込むことが無理そうだったのでFont-Awesomeで代用しようとしていた
それから数ヶ月... 課題の一つである「knitしたPDFに絵文字」を使うことができるようになったので、その方法を整理しておく。
情熱よ再び
きっかけはこちらの記事。
coloremoji パッケージは大変有用で素晴らしいパッケージである。だがしかしチョット不満な点もある。それは、このパッケージが upLaTeX でしか使えないことである。LaTeX 文書でカラー絵文字を使うことがある程度の有用性を持つのであれば、pLaTeX や LuaLaTeX 等の他のエンジンでも当然使えるべきではないか。
……ということで、作ってみた。
自分が日本語を含んだRmarkdownをPDFとして出力する場合に使っているエンジンがXeLaTeXであったので、これは!!と思って実践することに。
必要なもの
- coloremoji
- bxcoloremoji
- remoji
devtools::install_github("richfitz/remoji")
それぞれのインストール方法について、ちょっと時間が経ってしまって忘れている部分が多い...。上記の記事等を参考にしてもらいたい。
Rmarkdown上で絵文字を扱う際の注意
RmdのYAMLは(最低限)次のように設定する。
XeLaTeXを使用する場合...
--- title: "Change the title" header-includes: - \usepackage[twitter]{bxcoloremoji} - \usepackage{zxjatype} - \setjamainfont{Hiragino Kaku Gothic Pro} - \usepackage{fontspec} output: pdf_document: latex_engine: xelatex ---
LuaLaTeXの場合...
--- title: "Change the title" header-includes: - \usepackage{luatexja} - \usepackage[twitter]{bxcoloremoji} output: pdf_document: latex_engine: lualatex ---
\coloremoji
では引数に絵文字をそのまま与えることで任意の絵文字を出力することができるが、Rmdで利用する場合にはremoji::emoji
を使うこともできる。その際は\coloremoji
に与える引数にインラインコードとしてremoji::emoji
で絵文字用の文字コードを渡す。
\coloremoji(🍣) \coloremoji{`r remoji::emoji("sushi")`}
どちらの方法でも寿司が表示される。やったぜ。
TeX職人の皆さまに感謝です。