Sweaveで日本語を扱う

実験の手順を記録するためにSweaveを使い始めました.
Sweaveについてはhttp://www.okada.jp.org/RWiki/?Sweave%20%B4%D8%CF%A2%BE%F0%CA%F3などを参照してください.


2012/05/16 更新
Rnwに\usepackageを書いておけば後でTeXファイルを編集する必要が無いようです.

\documentclass[a4paper]{article}
\title{plot}
\author{2GMon}
\usepackage{mediabb}
\usepackage{graphicx}
\begin{document}
\maketitle
Sweaveで日本語を扱う
<<>>=
x <- 1:10
y <- 1:10
@
\begin{center}
<<fig = TRUE, echo = FALSE>>=
plot(x,y)
@
\end{center}
\end{document}

上のような日本語を含むファイル(temp.Rnw)をTeXに変換したい時はエンコードを指定しなければ上手くできません.

R CMD temp.Rnw --encoding=UTF-8

あとは,これによって生成されたTeXファイルをコンパイルするだけです.


これ以下は古い内容です.

\documentclass[a4paper]{article}
\title{plot}
\author{2GMon}
\begin{document}
\maketitle
Sweaveで日本語を扱う
<<>>=
x <- 1:10
y <- 1:10
@
\begin{center}
<<fig = TRUE, echo = FALSE>>=
plot(x,y)
@
\end{center}
\end{document}

上のような日本語を含むファイル(temp.Rnw)をTeXに変換したい時はエンコードを指定しなければ上手くできません.

R CMD temp.Rnw --encoding=UTF-8

次に,TeXコンパイルします.
Sweaveではpdflatexを使うことを前提としているみたいなのですが,pdflatexは日本語が扱えないのでplatexコンパイルします.
platexはpdf画像直接読み込むことができないので,Sweaveによって生成されたTeXファイルの修正が必要となります.
修正するのは少しだけで,

  • \usepackage{mediabb}の追加
  • \usepackage{graphicx}の追加
  • \includegraphicsに拡張子pdfを指定する

だけです.
以上の修正をしたTeXファイルは以下のようになります.

\documentclass[a4paper]{article}
\title{plot}
\author{2GMon}
\usepackage{Sweave}
\usepackage{mediabb}
\usepackage{graphicx}
\begin{document}
\maketitle
Sweaveで日本語を扱う
\begin{Schunk}
\begin{Sinput}
> x <- 1:10
> y <- 1:10
\end{Sinput}
\end{Schunk}
\begin{center}
\includegraphics{temp-002.pdf}
\end{center}
\end{document}