8
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

bookdown_ja_template でpdf出力を改善する

Last updated at Posted at 2017-02-20

この記事は
https://miyazakikenji.wordpress.com/2017/02/20/bookdown_ja_template/
を転記したものです.

bookdown

bookdown で日本語の PDF ファイルを出力できるテンプレートを作成しました.

https://github.com/kenjimyzk/bookdown_ja_template/

基本的には

https://github.com/kazutan/bookdown_ja_template/

をフォークしたものです. kazutan さんは主に html ファイルにおいていろいろ貢献しています. わたしの貢献は日本語 PDF を作るための設定です.

主な違いは以下です:

  • lualatex でなく xelatex にしている.
  • IPA font でなく IPAex font にしている
  • pdf で bxjsbook を使用していている
  • 日本語付きの図表の例を示している.
  • 日本語の索引と参考文献の例を示している.

使い方は全く同じで, 先のサイトや index.Rmd にかかれています. ここでは色々補足をします.

bxjsbook

PDF のためのスタイルファイルで bxjsbook を使いました. これについて

http://qiita.com/naqtn/items/7469a07ea797df5e2ecc

が参考になりました. ただ, このままだとなぜかコードの内の日本語が明朝体になってしまいます. 原因不明なので, 冗長ですが preamble.tex

\usepackage[ipa]{zxjafont}

をつけています.

また bxjsbook だと上手く章立てできないので,

pandoc_args: --chapters

を pandoc の引数にしております. ただこれは最新の pandoc だと機能が古いと怒られ

pandoc_args: --top-level-division=chapter

とするようにいわれますが, 現在の windows の RStudio に同封の pandoc ではバージョンが古いため後者は設定できません.

texlive 2016

texlive 2016 が導入されているのが前提になっています. 現在の最新版 2016 でないとスタイルファイル bxjsbook やユニコードに対応した索引作成ソフト upmendex が使えません.

Ubuntu で apt-get install でインストールした場合だと上手く動きません. これを機にこちらでインストールすることをオススメします:

https://github.com/scottkosty/install-tl-ubuntu

jeconunicode.bst

bibtex のスタイルファイルは

http://shirotakeda.org/ja/tex-ja/jecon-ja.html

にある jcon.bst のユニコード版 jecon_unicode.bst を使います. 最近第7版が出版された有名な「LaTeX2 ε美文書作成入門」技術評論社で bibtex の章の最後の文章で natbib に対応した日本語パッケージがないといっていますが, それは間違いです.

この武田さんの jcon.bst でバッチリ natbib に対応して 著者 (年) という社会科学で標準的に使われる表記で参考文献が作れます.
なお現在 texlive 20126 での upbibtex にバグがあるために一部機能がうまくいかないのですが, バグが直り, texlive 2017 で反映されるようです.

http://oku.edu.mie-u.ac.jp/tex/mod/forum/discuss.php?d=2006

あと YAML がうまく jecon_unicode.bst を読み込んでくれないので jeconunicode.bst にファイル名を変更してフォルダにおいています.
さらにこのファイルは自分用に少しだけ修正しております (Pull Request 中).

ipaex

日本語のフォントを R で表記するために IPAex フォントを使用しています.
古い IPA フォントとの違いは欧米フォントがプロポーシャルになってることです.
以下からダウンロードしてください。

http://ipafont.ipa.go.jp/

作図の際, 日本語フォントを含めた各種のフォントを作図に用いると警告が出る場合があります.
警告無しで使用するために extrafont というパッケージを用います. まず最初に

install.packages("extrafont")
extrafont::font_import(prompt=FALSE)

として読み込みます. 実際に使えるフォントは

extrafont::fonts()

で確認できます. その上でセッションごとに

extrafont::loadfonts(quiet=TRUE)

と実行するとよいでしょう.

R での日本語付きの作図について, いろいろ情報が錯綜し, 私自身いろいろ試行錯誤しました.

現時点の結論として, html 出力では png をデバイスとし, pdf 出力では cairo_pdf をデバイスとし, grDevices の設定を直接いじるのでなく, グラフィクパッケージごとにフォントファミリーを指定するのがよい考えております. そのために IPA フォントは事前にインストールするのが不可欠で, 環境依存になっていまいますが…

まとめ

以上 bookdown で日本語の pdf を作成するための紹介をしました. この bookdown が広まれば, 編集者にチェックをまかせていた参考文献や索引づくりが自分でできるようになり, ますます出版の敷居が下がってくるのではないでしょうか.

http://www.kyoritsu-pub.co.jp/series/205/

をみると, 「RStudio による Reproducible Research」高橋康介著が予定されています. きっと「ドキュメント・プレゼンテーション生成」の続編で, bookdown が言及されていると思いますので楽しみです.

現在, OS や環境依存を避けるための Docker 環境を構築することを模索しています. それが上手くいけばまた報告させていただきます.

8
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?