以前、「RStudioからLaTeXを使ってPDFで出力したい時の日本語設定について」というエントリーを書いた時は、RStudioではSweaveが便利だと言いました。
ところが最近はエラーが多く、RMarkdownを使うようになったので、その場合の設定についてメモします。
RMarikdownを使う場合
新規ファイル作成
New FileからRMarkdownでbeamerプレゼンテーションを選びます
プリアンブルを丸っと入れ替える
注意点が幾つかあります
- Beamerは変なサイズをしているので"\usepackage[size=a4,scale=3.5]{beamerposter}"でA4サイズになるようにする
- 日本語のフォントを指定する"\usepackage{zxjatype}"," \setjamainfont{Noto Sans CJK JP}"
- latexのエンジンをデフォルトから変更する。私の場合はxelatexが日本語との相性が良いと思いますので、"latex_engine: xelatex"を追記。 この際にインデントをするのも重要です。
--- title: "年齢別インターネットの利用機器状況" author: "yhy" date: "2016/10/29" header-includes: - \usepackage[size=a4,scale=3.5]{beamerposter} - \usepackage{zxjatype} - \setjamainfont{Noto Sans CJK JP} - \usetheme{boxes} - \usecolortheme{seagull} output: beamer_presentation: latex_engine: xelatex ---
ggplotの中でフォントを指定する
ggplotの中でもRが認識できる日本語フォントを使用する必要があります
riyoukiki_nenrei_g <- riyoukiki_nenrei_g + theme_bw(base_family="Japan1GothicBBB")
表はxtableの方が便利
表は、kableと xtableがありますが、xtableの方が便利だと感じました。主な注意点は以下です
- xtableをprintする時にscaleboxでサイズを調整する
- xtableをprintする時にlatexと明示する
- xtableをprintする時にcommentをFALSEにしておく
- 個別のセルのサイズを「p{~cm}」で固定すると横幅が入りきる
チャンクの中のコードは以下のようになります
{r echo=FALSE,warning=FALSE,error=FALSE,message=FALSE,results="asis"} library("xtable", lib.loc="C:/hogehoge/r/R-3.2.3/library") riyoukiki_nenrei_tb <- xtable(riyoukiki_nenrei,caption="%") align(riyoukiki_nenrei_tb) <- "|l|l|p{3cm}|p{3cm}|p{3cm}|p{3cm}|p{3cm}|p{3cm}|p{3cm}|p{3cm}|p{3cm}|p{3cm}|" print(riyoukiki_nenrei_tb,type="latex",comment = FALSE,scalebox=0.7)
※xtableの設定について
https://cran.r-project.org/web/packages/xtable/vignettes/xtableGallery.pdf
出力結果イメージ
コード全体
今回は総務省のデータを加工して使用しました
※コードの前後は、チャンク「```」で囲んでいます
--- title: "年齢別インターネットの利用機器状況" author: "yhy" date: "2016/10/29" header-includes: - \usepackage[size=a4,scale=3.5]{beamerposter} - \usepackage{zxjatype} - \setjamainfont{Noto Sans CJK JP} - \usetheme{boxes} - \usecolortheme{seagull} output: beamer_presentation: latex_engine: xelatex --- ## 日本語の入ったグラフ 総務省「平成27年通信利用動向調査」補問 インターネットの利用機器(加工2) {r echo=FALSE,warning=FALSE,error=FALSE,message=FALSE} library("dplyr", lib.loc="C:/hogehoge/R-3.2.3/library") library("reshape2", lib.loc="C:/hogehoge/R-3.2.3/library") library("ggplot2", lib.loc="C:/hogehoge/R-3.2.3/library") library("RColorBrewer", lib.loc="C:/hogehoge/R-3.2.3/library") riyoukiki_nenrei <- read.csv("kosein15_2_1.csv",header = TRUE) riyoukiki_nenrei_m <- melt(riyoukiki_nenrei,id.vars = c("Age")) riyoukiki_nenrei_g <- ggplot(data=riyoukiki_nenrei_m, aes(x=variable,y=value,fill=variable,color=variable)) riyoukiki_nenrei_g <- riyoukiki_nenrei_g + geom_bar(stat="identity",position="dodge") riyoukiki_nenrei_g <- riyoukiki_nenrei_g + theme_bw(base_family="Japan1GothicBBB") riyoukiki_nenrei_g <- riyoukiki_nenrei_g + ggtitle("インターネットの利用機") riyoukiki_nenrei_g <- riyoukiki_nenrei_g + ylab("%") riyoukiki_nenrei_g <- riyoukiki_nenrei_g + xlab("") riyoukiki_nenrei_g <- riyoukiki_nenrei_g + geom_text(aes(x=variable,y=value,label=value),vjust=-0.5,color="black",size=4) riyoukiki_nenrei_g <- riyoukiki_nenrei_g + scale_fill_brewer(palette = "Spectral") riyoukiki_nenrei_g <- riyoukiki_nenrei_g + scale_color_brewer(palette = "Spectral") riyoukiki_nenrei_g <- riyoukiki_nenrei_g + facet_wrap(~Age,scales = "fixed") riyoukiki_nenrei_g <- riyoukiki_nenrei_g + theme(axis.text.x=element_blank()) riyoukiki_nenrei_g <- riyoukiki_nenrei_g + scale_y_continuous(breaks=seq(0,100,by=10),limits = c(0,100)) plot(riyoukiki_nenrei_g) ## 日本語の入った表 総務省「平成27年通信利用動向調査」補問 インターネットの利用機器(加工2) {r echo=FALSE,warning=FALSE,error=FALSE,message=FALSE,results="asis"} library("xtable", lib.loc="C:/hogehoge/R-3.2.3/library") riyoukiki_nenrei_tb <- xtable(riyoukiki_nenrei,caption="%") align(riyoukiki_nenrei_tb) <- "|l|l|p{3cm}|p{3cm}|p{3cm}|p{3cm}|p{3cm}|p{3cm}|p{3cm}|p{3cm}|p{3cm}|p{3cm}|" print(riyoukiki_nenrei_tb,type="latex",comment = FALSE,scalebox=0.7)
「reveal.js」でも出力できます
最近流行りのHTMLでのプレゼンテーションに出力することもRMarkdownなら簡単です
プリアンブルの変更
最初に「revealjs」パッケージをインストールしておきます。 アウトプットの出力をrevealjsに変更して、テーマを選べば終わりです。
--- title: "年齢別インターネットの利用機器状況" author: "yhy" date: "2016/10/29" output: revealjs::revealjs_presentation: theme: default center: true fig_height: 5 reveal_options: slideNumber: true ---
諸々の設定についてはこちら
出力例
表について
プリアンブルの下にCSSの指定を入れるとカスタマイズできて、文字色や背景色は変更できるのですが、表のサイズを上手く変更できませんでした。 こちらは、詳しい人にお願いします!!