Ubuntu14.04とRで、knitrで日本語のPDFを出力するための設定方法をお伝えする。

Rでの作業は実際にはRStudioを用いている。

それでは、Ubuntuの設定からお伝えする。

Ubuntuの設定

Ubuntuに日本語のTex環境をインストールする。


$ sudo apt-get install texlive texlive-lang-cjk xdvik-ja

次に、R markdownファイルをPDFに出力するための実行エンジンとなるxetexをインストールする。


$ sudo apt-get install texlive-xetex

Texの組版の元となるBXjsclsを設定する。
BXjsclsは「https://github.com/zr-tex8r/BXjscls」からダウンロードしておく。


# zipの解凍
$ unzip BXjscls-master

# ディレクトリ名の変更
$ mv BXjscls-master BXjscls

# ディレクトリとその配下に対して、所有者とグループの変更
$ sudo chown -R root:root BXjscls

# ディレクトリの移動
$ sudo mv BXjscls /usr/share/texmf/tex/latex

最後に、BXjsclsをきちんと認識させるために texlive-doc-ja パッケージをインストールする。


sudo apt-get install texlive-doc-ja

 

もし、texlive-doc-ja パッケージがすでにインストールされていた場合は、一度アンインストール「sudo apt-get remove texlive-doc-ja」した後に、再度texlive-doc-jaをインストールする。

そうしないと、RStudio上で(ドキュメントクラスbxjsarticleを用いた)PDF出力の際に、次のようなエラーが発生する。


! Package keyval Error: xelatex undefined.

See the keyval package documentation for explanation.
Type  H   for immediate help.
 ...                                              

l.232 \ProcessOptions\relax

pandoc: Error producing PDF from TeX source
 エラー: pandoc document conversion failed with error 43
 実行が停止されました

RStudioの設定

RStudioを立ち上げた後、次のコマンドで knitr パッケージをインストールする。
すでにインストールしてあれば、次のコマンドを実行する必要はない。
また、PDF出力の際に他に必要なパッケージをインストールするよう催促された場合は、
そのパッケージもインストールする必要がある。


> install.packages("knitr")

グラフの日本語対応

ここまでで、knitr を用いたPDF出力の準備が整ったが、
グラフ中に日本語を用いた時に警告が表示されるという問題がある。

次のR markdownを実行してみると、


---
title: "サンプル"
author: "山田 太郎"
date: "2015年11月1日"
output: 
    pdf_document:
        latex_engine: xelatex
        number_sections: true
        toc: true
documentclass: bxjsarticle
classoption: xelatex,ja=standard
geometry: no
mainfont: Takao Pゴシック
monofont: Takao Pゴシック
---

# 最初

これはサンプルです。

## 次

```{r}
plot(x = iris$Sepal.Length, y = iris$Sepal.Width, xlab = 'がく片の長さ', ylab = 'がく片の幅')
```

次のような大量の警告がPDF内に入ってしまい、また、グラフの日本語も「.(ドット)」に置き換えられてしまう。


## Warning in title(...): 'mbcsToSbcs' 中の ' がく片の⻑さ ' で変換に失敗 : 
## をドットで置き換えました

how-to-set-up-for-outputting-a-pdf-of-the-japanese-at-knitr-in-ubuntu-1404-and-r -1

この問題の対応は
Windows 環境下での PDF 生成で日本語文字を問題なく扱える R Markdown 設定
が参考になる。

次のようにR markdownを書き換えると、正しくPDF出力される。


---
title: "サンプル"
author: "山田 太郎"
date: "2015年11月1日"
output: 
    pdf_document:
        latex_engine: xelatex
        number_sections: true
        toc: true
documentclass: bxjsarticle
classoption: xelatex,ja=standard
geometry: no
mainfont: Takao Pゴシック
monofont: Takao Pゴシック
---

```{r, include=FALSE}
library(knitr)

# 出力フォーマットが TeX(PDF含む)の場合のみ対処する
if (knitr::opts_knit$get("rmarkdown.pandoc.to") %in% c("beamer", "latex")) {

  # conversion failure on '...' in 'mbcsToSbcs' の Warning 発生の workaround
  options(device = function(file, width = 7, height = 7, ...) {
    cairo_pdf(tempfile(), width = width, height = height, ...)
  })
  
  ## 1. cairo_pdf を使う方法
  # * family には OS にインストールされているフォント名を指定する。
  knitr::opts_chunk$set(dev="cairo_pdf", dev.args=list(family="Takao Pゴシック"))
}
```

# 最初

これはサンプルです。

## 次

```{r}
plot(x = iris$Sepal.Length, y = iris$Sepal.Width, xlab = 'がく片の長さ', ylab = 'がく片の幅')
```

how-to-set-up-for-outputting-a-pdf-of-the-japanese-at-knitr-in-ubuntu-1404-and-r -2

関連する記事

  • Ubuntu,R h2oパッケージのインストールの方法Ubuntu,R h2oパッケージのインストールの方法 Rのパッケージh2oは、さまざまなクラスタ環境内のニューラルネットワーク(ディープラーニング)、ランダムフォレスト、勾配ブースティングマシン、一般化線形モデルなどの並列分散機械学習アルゴリズムを計算するビッグデータのためのオープンソースの数学エンジンH2O用のRスクリプト機能である。 ここでは、ubuntu14.04環境下でh2oパッケージのインストールの仕方についてお […]
  • WindowsでHeidiSQLを使用してMariaDBをバックアップ・リストアするの方法WindowsでHeidiSQLを使用してMariaDBをバックアップ・リストアするの方法 WindowsでHeidiSQLを使用してMariaDBをバックアップおよびリストア(復元)する方法をお伝えいたします。 MariaDBのバックアップ方法はいくつかありますが、今回ご紹介する方法は、ダンプファイルの作成という方法になります。MariaDBのダンプファイルの作成は、通常、CUI(黒い文字だけの画面)でmysqldumpというコマンドラインツールを用いて行い […]
  • 平均的に分類する方法の考察(2)平均的に分類する方法の考察(2) 前回は、100人の学生のスコアを求めて、スコアの昇順に3つのグループに振り分ける方法を試した。振り分け方は、単純に、3つのグループに属する学生の少ないほうからである。前回の終わりに、各インデックスの平均値を考慮したものを考えてみると書いたが、その前に、一つ確認しておかなければならないことを忘れていたので、今回はその確認をしようと思う。 何を確認し忘れたかというと、全体の […]
  • C++ Boostによるコマンドライン引数処理C++ Boostによるコマンドライン引数処理 boost::program_optionsを用いると、コマンドライン引数(オプション)を比較的容易に解析することができる。 #include <iostream> #include <string> #include <boost/program_options.hpp> int main(int argc, char **argv) […]
  • 経営戦略に使えるABC分析の基礎知識と活用法経営戦略に使えるABC分析の基礎知識と活用法 ABC分析は売上に関する経営戦略を立てるうえで、最も基本となる分析手法である。ABC分析とは、販売管理、顧客管理で使われる分析の一つで、ある期間で対象を重要度によって分類することにより現状を把握し易くする分析手法だ。 それでは早速解説していく。 ABC分析の手順 期間を過去一年間、対象を商品、重要度を売上とした場合を例に取り、ABC分析を行う手順を説明していく。 […]
Ubuntu,R knitrで日本語のPDFを出力するための設定

Ubuntu,R knitrで日本語のPDFを出力するための設定」への1件のフィードバック

コメントは受け付けていません。