以前 bookdown で日本語 PDF を出力する方法を
に紹介しました. ここでは表題のように docker
で RStudio Server を起動し, bookdown
で日本語 pdf を表示する方法を紹介します.
docker で RStudio Server を起動するやり方は知られていて, kazutan さんにより
および
で紹介されてます. 基本は
および
を参考に作成しています. ただこれだけだと, bookdown で 日本語 PDF は出力できません. 最大の困難は Debian がインストールする texlive が 2014 のため色々必要なのものが導入されていないことです. 個別に導入してもよいかもしれませんが, わたしは
を参考に, texlive 2016 を一括に導入する Dockerfile を作成することにしました. その Dockerfile は以下にあります.
https://hub.docker.com/r/kenjimyzk/rstudio-latex/~/dockerfile/
使い方
まず Docker を導入する. そしてターミナル上で以下のコマンドを実行する.
docker pull kenjimyzk/rstudio-latex
つぎに RStudio Server の作業ディレクトリ, 例えば ~/work を作成する. そしてターミナル上で以下のコマンドを実行する.
docker run -d -p 8787:8787 -v ~/work:/home/rstudio/work kenjimyzk/rstudio-latex
そしてブラウザ上のアドレスで
localhost:8787
とする. ログイン時にユーザー名とパスワードを聞かれるのでともに rstudio とする.
RStudio Server が立ち上がるので, [tools] => [shell] としてシェルを立ち上げる. そこで
git clone https://github.com/kenjimyzk/bookdown_ja_template
とする. そうするとテンプレートがクローンできる.
RStudio Server の Files ペイン で, 先程クローンしたフォルダを開き,
bookdown_ja_template
をクリックして, プロジェクトを立ち上げる.
RStudio Server の Build ペイン で, Build book をクリック. 最初, いくつかのパッケージを導入するために名前空間がおかしくなって上手くコンパイルしない場合があるかもしれないけれど, 少なくとも二度目で上手くいくようです.
なお, 最後のクローンや私がよく使うライブラリを事前に導入した dockerfile が以下にあります.
まとめ
以上, Docker で booddown をつかって日本語 pdf を作成するやり方を紹介しました. xelatex や cairopdf ではフォントが機種依存になってしまうので, Docker を導入することでそれらが回避できます.
ただ現状 Docker コンテナが 6G というありえない大きさになっています. 今後は
https://raw.githubusercontent.com/kenjimyzk/rstudio-latex/master/installation.profile
を編集し, 導入パッケージの取捨選択し, サイズを小さくしたいと考えています.