#contents ---- ---- * Sweave 関連サイト集 [#j9419080] - [[マニュアル、サンプル:http://www.ci.tuwien.ac.at/~leisch/Sweave/]] - [[Sweaveの機能を拡張したJSweave:http://www.seinan-gu.ac.jp/~shito/jsweave/]] * 利用例 [#l7186dc7] ** Makefileの準備 [#z356e0a5] TEX = platex R = R .SUFFIXES:.Rnw .tex.dvi: $(TEX) $< .Rnw.tex: echo "options(width=80);Sweave(?"$<?")"| $(R) -q --no-save --no-restore 前部分の空白はタブであることに注意. .SUFFIXES:は便宜書き換えを行う必要があるやもしれない. Msys環境でも,コマンド(cmd.exe+nmake)でも多分使えると思われる ** hoge.Rnwの準備 [#r669f41e] \documentclass[a4j]{jarticle} \usepackage{graphicx} \begin{document} <<fig=TRUE,echo=FALSE,eps=TRUE,pdf=FALSE>>= hist(runif(1000)) @ \end{document} ** hoge.dviの生成 [#rb2cfdba] $ make hoge.dvi * Tips [#yc992074] ** グラフの幅の調整 [#g7925077] \setkeys{Gin}{width=1.0?textwidth} デフォルトは0.8 ** Rコードの色を変えたい [#da336af7] \documentclass[a4j]{jarticle} \usepackage{graphicx} \usepackage{color} \begin{document} \DefineVerbatimEnvironment{Sinput}{Verbatim}{formatcom={?color{blue}}} \DefineVerbatimEnvironment{Soutput}{Verbatim}{formatcom={?color{red}}} <<echo=TRUE>>= runif(10) @ \end{document} ** xtableをminipageで使用する [#a9846cfc] -print.xtableを使用する \documentclass[a4j]{jsarticle} \usepackage[dvipdfm]{graphicx} \title{Happy xtable} \date{} \begin{document} <<minipage,echo=T>>= library(xtable) set.seed(123) X<-array(runif(10*5),dim=c(10,5)) @ \begin{table}[ht] \begin{minipage}{0.5\hsize} <<fig=F,echo=F,results=tex>>= print.xtable(xtable(X)[1:5,],floating=F) @ \end{minipage} \begin{minipage}{0.5\hsize} <<fig=F,echo=F,results=tex>>= print.xtable(xtable(X)[6:10,],floating=F) @ \end{minipage} \end{table} \end{document}\documentclass[a4j]{jsarticle} \usepackage[dvipdfm]{graphicx} \title{Happy xtable} \date{} \begin{document} <<minipage,echo=T>>= library(xtable) set.seed(123) X<-array(runif(10*5),dim=c(10,5)) @ \begin{table}[ht] \begin{minipage}{0.5\hsize} <<fig=F,echo=F,results=tex>>= print.xtable(xtable(X)[1:5,],floating=F) @ \end{minipage} \begin{minipage}{0.5\hsize} <<fig=F,echo=F,results=tex>>= print.xtable(xtable(X)[6:10,],floating=F) @ \end{minipage} \end{table} \end{document} -xtableの出力を書き換える(sinkで出力するのがミソ) minipage.output <- function(x, y, output="ouput.tex", work="work") { sub.func1 <- function(z) { sink(work) print(xtable(z)) sink() return(scan(work, what="", sep="\n")) } sub.func2 <- function(str1) { cat("\\begin{minipage}{0.5\\hsize}\n", file=fn) cat(str1[4:(length(str1)-1)], sep="\n", file=fn) cat("\\end{minipage}\n", file=fn) } # ここから開始 require(xtable) fn <- file(output, open="w") str1 <- sub.func1(x) cat(str1[1:3], sep="\n", file=fn) sub.func2(str1) str2 <- sub.func1(y) sub.func2(str2) cat("\\end{table}\n", file=fn) } x <- data.frame(matrix(1:12, 2)) y <- data.frame(matrix(51:62, 2)) minipage.output(x, y) すると,こんなものができあがる。 % latex table generated in R 2.3.1 by xtable 1.3-2 package % Fri Jun 9 11:52:40 2006 \begin{table}[ht] \begin{minipage}{0.5\hsize} \begin{center} \begin{tabular}{rrrrrrr} \hline & X1 & X2 & X3 & X4 & X5 & X6 \\ \hline 1 & 1.00 & 3.00 & 5.00 & 7.00 & 9.00 & 11.00 \\ 2 & 2.00 & 4.00 & 6.00 & 8.00 & 10.00 & 12.00 \\ \hline \end{tabular} \end{center} \end{minipage} \begin{minipage}{0.5\hsize} \begin{center} \begin{tabular}{rrrrrrr} \hline & X1 & X2 & X3 & X4 & X5 & X6 \\ \hline 1 & 51.00 & 53.00 & 55.00 & 57.00 & 59.00 & 61.00 \\ 2 & 52.00 & 54.00 & 56.00 & 58.00 & 60.00 & 62.00 \\ \hline \end{tabular} \end{center} \end{minipage} \end{table} *Windows 7におけるSweaveの使用について [#o9a32b8e] **セットアップ [#y28800f8] (1) TeX Liveをインストールする。 (2) 下記のフォルダ C:\Program Files\R\R-3.2.0\share\texmf の中身を C:\texlive\texmf-local\tex にコピーする。 (3) CTANからae.zipをダウンロードする。 http://www.ctan.org/tex-archive/fonts/ae/ (4) ae.zipの tfm内のファイル -> C:\texlive\texmf-local\fonts\tfm\ae vf内のファイル -> C:\texlive\texmf-local\fonts\vf\ae へそれぞれコピーする。 (5) mktexlsrを実行する。 **Sweaveの実行 [#e21dd667] library(tools) Sweave("hoge.Rnw") のようにR上で入力すると、texファイルが出力されます。 そこでtexでコンパイルしようとするとエラーが出てしまいます。 原因はこの行のパスが理解できないようなので、 \usepackage{C:/PROGRA~1/R/R-3.2.0/share/texmf/Sweave} を、面倒ですが、 \usepackage{Sweave} のように書き換えるとうまく動きました。 - ---- - "PROGRA~1"が良くないのだと思います。C:/Rへのインストールをお勧めします。 -- &new{2007-09-11 (火) 07:11:01}; - SweaveTips集のページにあるSweave関連サイトのJSweaveのリンク先を http://www.seinan-gu.ac.jp/~shito/jsweave に変更頂けますでしょうか? -- [[wshito]] &new{2009-05-11 (月) 19:11:48}; - すみません.自分で更新できました.お騒がせしました. -- [[wshito]] &new{2009-05-11 (月) 19:13:47}; - TeX Liveに実装されたSyncTeXサポートと、R-forgeのpatchDVIパッケージを使って、Meadow上のRnw⇔PDFの相互ジャンプができている方はいらっしゃいませんか?もしこれができたら、Sweaveが飛躍的に使いやすくなるのですが…。 -- &new{2009-08-03 (月) 18:36:46}; - ↑[[R掲示板:http://www.okada.jp.org/RWiki/?R%B7%C7%BC%A8%C8%C4#te9b5017]]を参照 #comment ---- * MacOS X の場合 [#qbfa9abd] ** pTeX における Sweave の使用 [#ze90abfd] *** セットアップ [#q9e08a1d] TeXは、[[MacPorts:http://www.macports.org/]]のものが簡単に思えます。 MacPortsをdmgファイルからダウンロードすると、/opt/以下に基本的なツールがインストールされます。 環境変数PATH, MANPATHにMacPortsのパスを追加して... (たとえば、下記2行を ~/.bash_profileに記入するなど) export PATH=/opt/local/bin:/opt/local/sbin:$PATH export MANPATH=/opt/local/man:$MANPATH pTeX(UTF-8対応バージョン)をインストールします。 $ sudo port install ptex +utf8 +nox11 Sweave.sty等へのパスを、TEXINPUTSに追加します。環境変数を使ってもいいですが、TeXShopでの使用を考えるなら、/opt/local/share/texmf/web2c/texmf.cnf を変更したほうが便利でしょう。 /opt/local/share/texmf/web2c/texmf.cnf にある、以下の行を TEXINPUTS.platex = $platex2e_inputs TEXINPUTS.platex = $platex2e_inputs;/Library/Frameworks/R.framework/Resources/share/texmf// に変更します。 これで、platexコマンドでSweave.styを使用したTeXソースをタイプセットすることが可能になるはずです。 -TexShop で Sweave [[ここ:http://cameron.bracken.bz/sweave-for-texshop]]を参照。 ** UpTeX + TeXShop における Sweave の使用について [#g3d6c7ee] *** セットアップ [#q9e08a1d] I. [[JIS X0212 Characters for pTeX:http://www2.kumagaku.ac.jp/teacher/herogw/index.html]] から~ +「Drag & Drop UpTeX」をダウンロードする。 + ダブルクリックして解凍後「UpTeX.app」をアプリケーションフォルダへ移動する。 + TeXShop を起動する。 + Sweave.sty など,必要な style file などを /Application/UpTeX.app/teTeX/share/texmf/ptex/platex フォルダへ,コピーする(アプリケーションフォルダの UpTeX.app を,コマンドキーを押しながらクリックし,「パッケージの内容を表示」を選択し,順次パスをたどる)。 II. [[TeXShop (v 3.26) Release 11/05/2013:http://darkwing.uoregon.edu/~koch/texshop/texshop.html]] から~ + [Lion] タグ の,「TeXShop Latest Version, requires Lion」をダウンロードして,TeXShop.app をアプリケーションフォルダへ移動する。 + TeXShop の環境設定 III. sweave.engine を書く~ + オプションキーを押しながらメニューバーの「移動」をクリックし,ユーザディレクトリのライブラリを開く + TeXShop/Engines に Sweave.engine ファイルを作る(以下からダウンロードし,TeXShop/Engines へコピー。ファイルアクセス権限は 766 にでも)~ &ref(Sweave.engine); ***Sweaveの実行 [#i7a689d8] I. .Rnw ファイルを書く 上述の Sweave.engine では,.Rnw のエンコーディングは euc-jp としている(したがって,TeXShop の環境設定もそれにあわせてある)。utf-8 を使う人はしかるべき箇所を変更のこと。~ 例 &ref(example.Rnw); II. TeXShop で Sweave を選び「タイプセット」する &ref(TeXShop.png);~ 使用した Sweave.engine は,参照が不完全な場合には複数回自動的にタイプセットするように書かれている。つまり,LaTeX を単独で使用しているときのように,参照が完全になるまで手動で何回かタイプセットするというようなことは不要である。~ 仕上がり例 &ref(example.pdf); III. tips~ + bar.Rnw をクリックしても TeXShop で開かれない。~ 対処法は,bar.Rnw の「情報を見る」で,「このアプリケーションで開く」として TeXShop を指定する。~ 抜本的には,新規ファイルは TeXShop で作り,保存するときに「rnw で保存」を選ぶようにしておく。 * patchDVI + Sweaveによる日本語処理 [#i11f049b] - 2013年度の[[R研究集会:http://prcs.ism.ac.jp/useRjp/hiki.cgi]]で招聘した[[Duncan Murdoch先生:http://www.stats.uwo.ca/faculty/murdoch/]]が、uplatex + dvipdfmxを処理できるようにpatchDVIパッケージをアップデートしてくれました。WindowsおよびMacの双方に対応しています。詳細は、以下のページからどうぞ。 -- [[patchDVIパッケージによるSweaveの日本語処理:http://prcs.ism.ac.jp/useRjp/hiki.cgi?patchDVI%A5%D1%A5%C3%A5%B1%A1%BC%A5%B8%A4%CB%A4%E8%A4%EBSweave%A4%CE%C6%FC%CB%DC%B8%EC%BD%E8%CD%FD]] --- 現在、MacでTeXShopを利用する場合のみの記述です。WindowsでTeXWorksを利用する方法は、後日追加の予定です。お急ぎの方は、 #ref(patchDVI.pdf) および #ref(Japanese.pdf) をご覧ください