RStudio(Windows)でSweave(.Rnw)を使って一発でpdf作りたい
.Rnwじゃなくて、Mark downでいいんじゃないかと思いつつも、とりあえずpdf作れるようにしたんでそのメモ。
RStudioから作成できる拡張子「.Rnwファイル」ってのは、Rのソースコード+実行結果をTeXの中に突っ込めるってもんなんですが、
こいつを出力としてPDFにする時には
という流れを踏むわけです。
RStudioではこの[.Rnw]⇒[.pdf]までの変換を一発で行うための[Compile PDF]というボタンがあるのですが、こいつはちょっと設定してやらないとWindows環境下では動かない。
なんでその設定の仕方を揮発性メモリを搭載している俺が当然覚え続けていられるわけなんてないので、メモるわけです。
ここで使うTeXはいちいちdviファイルを経由するのめんどいんで、LuaLaTeXにする*1。
RStudioの[tool]⇒[options]⇒[Sweave]からたどれる「Typeset LaTeX into PDF using....」という項目を見ると
- pdfLaTeX
- XeLaTeX
しか対応してないので、LuaLaTeX使うにはちょいと設定が必要で、
を見ると、(RStuio内のこれから.Rnwをコンパイルするのと同じ)Rのコンソールで
Sys.setenv(RSTUDIO_PDFLATEX="C:\\w32tex\\bin\\lualatex.exe")
とする。これでコンパイル時にはLuaLaTeXが使用される。毎回実行するのがめんどいなら.Rprofileにこの設定を書いておく*2。
当然、ここで指定しているLuaLaTeXのパスはTeXのインストール先に応じて切り替える必要がある*3。
次に、
のいずれかのLINKからダウンロードできる(CTANの方はダウンロードしたae.tds.zipの中にある)ae.styってファイルを
(Rのインストール先)\share\texmf\tex\latex
に突っ込んでやる*4。
ここに入れるのが一番いいのかはTeXが苦手なのでよくわからない。あるいは
にならって環境変数$TEXMFHOMEか$TEXMFLOCALのパス以下のtex/latexより下に配置すればいいのか。パッケージに関しては
もあわせて見ておくといい。
ここまでくれば設定完了で、例えば以下のソースを.Rnwファイルとして文字コードUTF-8*5で保存して、[Compile PDF]ボタンを押下すると,
なPDFファイルが得られる。ここで、LuaLaTeXの環境で日本語使うために.Rnw中に
\usepackage{luatexja}
と記述するのを忘れない事。ログをみると
> grDevices::pdf.options(useDingbats = FALSE); utils::Sweave('test.Rnw', encoding='UTF-8') Writing to file test.tex Processing code chunks with options ... 1 : echo keep.source term verbatim (test.Rnw:10) 2 : keep.source term verbatim pdf (test.Rnw:15) You can now run (pdf)latex on 'test.tex' > > Running lualatex.exe on test.tex...completed Created PDF: ~/test.pdf Issues: 4 warnings
たしかに
という流れになっているのがわかる。いくつかwarningが出てるけど、それはそのうち直す方向で。
\documentclass[a4paper]{article} \usepackage{luatexja} \title{はじめてのSweave} \author{teramonagi(テラモナギ)} \begin{document} \SweaveOpts{concordance=TRUE} \maketitle Hello, Sweave!あいうえお。 <<>>= summary(cars) @ \begin{center} <<fig =TRUE, echo =FALSE>>= plot(cars) @ \end{center} \end{document}
(主に私が辿る用の)参考サイト