Hatena::ブログ(Diary)

My Life as a Mock Quant このページをアンテナに追加 RSSフィード

2014-02-03

RStudio(Windows)でSweave(.Rnw)を使って一発でpdf作りたい

| 21:15 | RStudio(Windows)でSweave(.Rnw)を使って一発でpdf作りたい - My Life as a Mock Quant を含むブックマーク

.Rnwじゃなくて、Mark downでいいんじゃないかと思いつつも、とりあえずpdf作れるようにしたんでそのメモ。

RStudioから作成できる拡張子「.Rnwファイル」ってのは、Rのソースコード+実行結果をTeXの中に突っ込めるってもんなんですが、

こいつを出力としてPDFにする時には

という流れを踏むわけです。

RStudioではこの[.Rnw]⇒[.pdf]までの変換を一発で行うための[Compile PDF]というボタンがあるのですが、こいつはちょっと設定してやらないとWindows環境下では動かない。

なんでその設定の仕方を揮発性メモリを搭載している俺が当然覚え続けていられるわけなんてないので、メモるわけです。

f:id:teramonagi:20140203151157p:image


ここで使うTeXはいちいちdviファイルを経由するのめんどいんで、LuaLaTeXにする*1

RStudioの[tool]⇒[options]⇒[Sweave]からたどれる「Typeset LaTeX into PDF using....」という項目を見ると

f:id:teramonagi:20140203095918p:image

  • 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

f:id:teramonagi:20140203095917p:image

ここに入れるのが一番いいのかはTeXが苦手なのでよくわからない。あるいは

にならって環境変数$TEXMFHOMEか$TEXMFLOCALのパス以下のtex/latexより下に配置すればいいのか。パッケージに関しては

もあわせて見ておくといい。


ここまでくれば設定完了で、例えば以下のソースを.Rnwファイルとして文字コードUTF-8*5で保存して、[Compile PDF]ボタンを押下すると,

f:id:teramonagi:20140203101616p:image:w640

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

たしかに

  • [.Rnw]⇒(Sweaveでtexへ)⇒[.tex]⇒(LuaLaTeXでpdfへ)⇒[.pdf]

という流れになっているのがわかる。いくつか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}

(主に私が辿る用の)参考サイト

*1platex+dvipdfmxでPDFにするやり方は当記事下部のLNK先見ればわかるので、そちらを参考に。ただし[Compile PDF]ボタンのように一発でやってくれるスタイルではない

*2:参考:http://qiita.com/wakuteka/items/a7864f187ef12de0735c

*3:私はTeXインストーラを使わせて頂いてるので、そのデフォルトインストール先のパスになってる

*4:ここでは私のRのインストール先の関係でC:\R\R-3.0.1\share\texmf\tex\latexになる

*5CP932でもいいかも?やってないからわからん

2014-01-29

LuaLaTeXやXeLaTeXって奴を使ってみたいんです、私

| 20:18 | LuaLaTeXやXeLaTeXって奴を使ってみたいんです、私 - My Life as a Mock Quant を含むブックマーク

モチベーション

PDFの作り方 - TeX Wiki」によると、PDFを作るためには

  • upLaTeX + dvipdfmx
  • upLaTeX + dvips + ps2pdf (Ghostscript)
  • pdfLaTeX
  • LuaLaTeX
  • LuaJITLaTeX
  • XeLaTeX

という方法があるらしいのですが、普段TeXを使っていると上でいう「pLaTeX + dvipdfmx」が多くて、その他の方法について全く無知な状態なわけです。

特に一番最後の2つ「lualatex」と「xelatex」ってのは名前だけは聞いた事あるんだけど、これらはどうもここによると「次世代TeX / LaTeX 環境」の候補らしいってことで、これどうやって使うもんなんじゃい?ってのを調べたそのまとめ。

特に、数式多めなプレゼンパワポだとしんどいのでTeXで作れるbeamerに移行しようと思っているんだけど、それが楽にできそうな方法だと嬉しいなって事でその点を主に調査。ちなみにTeXは特に苦手なので何か間違っていたり、的外れな事が書いてあるかもしれない、俺の備忘録だし。

TeXインストール

とりあえず、あべのり氏作の「TeXインストーラ 3」を使って突っ込んでおいた。

インストール後、コマンドプロンプトで「xelatex」や「lualatex」と打つとコマンドを認識していたので、よしよし。

ちなみにコンパイルオプションとして

-synctex=1

をつけると、TeXのソース⇔出力のPDFが行ったり来たり出来るようになって超便利*1

LuaLaTeX

とりあえず

を読んでおく感じか。それによると

LuaTeX-ja は LuaTeX, LuaLaTeX, LuaJITTeX, LuaJITLaTeX で日本語文書の組版を行うためのパッケージです.

な、なるほどわからん。もういっちょ掘って

をみると

LuaTeX は Lua が使える TeX です.

ほうほう、TeXの中でLuaが使えて何が嬉しいのかよくわからないけど、次世代感あるわー。

基本的な使い方は、ふつーのドキュメントならクラスファイルとしてltjsarticle を使用しとけばいいし、beamerならよく使うamsmathなんかと同様に

\usepackage{luatexja}

とやっておけばよかった。コンパイル

lualatex hogehoge.tex

で、一気にPDFが作成される。↓のコードで動作確認した(文字コードUTF-8)。

\documentclass{beamer}
% LuaLaTeX用の設定
\usepackage{luatexja}
%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usetheme{CambridgeUS}
\begin{document}
\title{はじめてのLuaLaTeX} 
\author[teramonagi]{teramonagi}
\institute[Teramonagi家]{Teramonagi家}
\date{January 29, 2014}
%タイトル
\begin{frame}
	\titlepage
\end{frame}
%目次
\begin{frame}
	\tableofcontents
\end{frame}
%コンテンツ
\section{はじめての, LuaLaTeX}
\begin{frame}
\frametitle{こんにちは, LuaLaTeX}
	\begin{itemize}
		\item あいうえお
		\item $f(x) := x^3 + 1$
	\end{itemize}
\end{frame}
\end{document}

XeLaTeX

XeTeX - TeX Wiki

を読んでもよくわからんけど、この辺

を見て、適当なBeamerのソースのプリアンブルに

\usepackage{xltxtra}
\setmainfont{MS Gothic}
\setsansfont{MS Gothic}
\setmonofont{MS Gothic}
\XeTeXlinebreaklocale "ja"

というおまじないを追記すれば、日本語でもコンパイルできた。

フォントIPAフォントとか入れるのめんどくさいので、MS Gothicで。

ちなみに自信の手元で使えるフォントを引くには、コマンドプロンプト

fc-list

と打つと一気に出てくる。

コンパイル

xelatex hogehoge.tex

で、一気にPDFになる。↓のコードで動作確認した(文字コードUTF-8)。

\documentclass{beamer}
% XeLaTeX用の設定
\usepackage{xltxtra}
\setmainfont{MS Gothic}
\setsansfont{MS Gothic}
\setmonofont{MS Gothic}
\XeTeXlinebreaklocale ``ja''
%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usetheme{CambridgeUS}
\begin{document}
\title{はじめてのXeLaTeX} 
\author[teramonagi]{teramonagi}
\institute[Teramonagi家]{Teramonagi家}
\date{January 29, 2014}
%タイトル
\begin{frame}
	\titlepage
\end{frame}
%目次
\begin{frame}
	\tableofcontents
\end{frame}
%コンテンツ
\section{はじめての, XeLaTeX}
\begin{frame}
\frametitle{こんにちは, XeLaTeX}
	\begin{itemize}
		\item あいうえお
		\item $f(x) := x^3 + 1$
	\end{itemize}
\end{frame}
\end{document}

感想

LuaLaTeXの方がXeLaTeXより使うの楽そうなんで、しばらくLuaLaTeXでいくことにした。

pLaTeXのようにコンパイル後いちいち出力をdvipdfmxする必要ないし。

*1TeXを書く環境にはTeXstudioを使用