TeXShop で用意されている engine に Sweave 用のものがないので,作ってみた。
基本的には,以下のようであるが,肝は Sweave 関数の前に,Sys.setlocale("LC_ALL", "ja_JP.UTF-8") を置くこと。これがないと locale が "C" になっているので,日本語が正しく処理されない。
このファイルを Sweave.engine と名付けて,Engines フォルダに放り込んでおく。選択肢に "Sweave" が加わる。
#!/usr/local/bin/Rscript --vanilla --default-packages=methods,datasets,utils,grDevices,graphics,stats
file = sub("\\.Rnw", "", commandArgs(TRUE)[1])
Sys.setlocale("LC_ALL", "ja_JP.UTF-8")
Sweave(file, encoding="utf-8")
system(sprintf("/Library/TeX/texbin/uplatex %s.tex", file))
system(sprintf("/Library/TeX/texbin/dvipdfmx %s.dvi", file))