第527回ではRStudioのインストール方法を,
TinyTeXで日本語PDFを生成できるようにする
第529回でも紹介しているように,
これは一般的なLinuxで使われているTeX Liveではパッケージサイズが大きくなりがちで,tlmgr
コマンドでインストールする仕組みになっています。またRの実行環境からtlmgr
コマンドを実行できる,tinytex
ライブラリーも同梱されています。
第529回同様,
$ sudo docker run --rm -d -p 8787:8787 --name verse rocker/verse
メニューからR Markdownファイルを作成し,output: pdf_
」
output:
pdf_document:
latex_engine: lualatex
documentclass: ltjsbook
この状態でKnitを実行するとdocumentclass
で指定したクラスファイルltjsbook.
」
実際,latex_
」lualatex
」ltjsbook.
ファイルを提供しているluatexjaパッケージのダウンロードを試みます。
tlmgr search --file --global '/ltjsbook.cls' Trying to automatically install missing LaTeX packages... tlmgr install luatexja (中略) tlmgr install luatexja tlmgr install: package already present: luatexja tlmgr path add tlmgr search --file --global '/ltjsbook.cls' ! LaTeX Error: File `ltjsbook.cls' not found.
しかしながら,
TinyTexにはR向けのtinytexライブラリーがあります。これを使えば,tlmgr
を実行できます。
> tinytex::tlmgr_search('/ltjsbook.cls') tlmgr search --file --global '/ltjsbook.cls' luatexja: texmf-dist/tex/luatex/luatexja/ltjsbook.cls > tinytex::tlmgr_install('luatexja') (中略) copy /opt/TinyTeX/tlpkg/texlive.tlpdb.tmp to /opt/TinyTeX/tlpkg/texlive.tlpdb failed: Operation not permitted at /opt/TinyTeX/tlpkg/TeXLive/TLPDB.pm line 628. tlmgr path add
今度は/opt/
以下の所有者はrootになっているものの,/opt/
以下を変更できるのです。
しかしながらプライマリグループはrstudioであるため,/opt/
」
- ※1
- このあたり不具合というよりは,
使い方の問題のような気もしています。
さてRコンソールからのTeXパッケージのインストールはうまくいきませんでした。そこで泥臭い方法ではありますが,--name verse
」tlmgr
を実行できます。
$ sudo docker exec -it verse tlmgr install luatexja \ luatexbase ctablestack adobemapping ms filehook running mktexlsr ... done running mktexlsr. tlmgr: package log updated: /opt/TinyTeX/texmf-var/web2c/tlmgr.log
luatexjaの依存関係から最低限必要なパッケージも列挙しています。
また日本語フォントもRockerイメージにはインストールされていませんので,
$ sudo docker exec -it verse apt update $ sudo docker exec -it verse apt install fonts-ipaexfont
あとはKnitを実行すれば,