0に立ち返ってのSweave

  • Sweave()とRnwファイル
    • Sweave()はhoge.Rnwという拡張子のファイルを読み込んでhoge.texというファイルを出力する
    • オオマカニtex文書であって、Rのソースを書きこみ、そのソースを実行した結果をプロット画像をtexの中に埋め込んでくれる仕組み
  • Sweave()を使ったtex文書は、Tex文書のスタイルの一つなので、styファイルが必要
    • Sweave.styとae.styの2つ
    • それぞれを「texの作業フォルダ」に「じかおき」する(初心者なので失敗しないため。作業場所を引っ越すときは、一緒にお引っ越し)
    • これ(Sweave,sty)とこれ(ae.sty)をコピーして、それぞれテキストファイルとして保存する(名前は"Sweave.sty","ae.sty")
  • Sweave()関数を使ってみる
    • ただのtexファイルをRのSweave()関数に処理させることもできる
      • 前の記事のtest.texを拡張子だけつけかえた"testSw.Rnw"としてみよう("test.Rnw"のままだと、Sweave()関数が"test.tex"を作ろうとしてバッティングするので名前をいじっただけ)
      • もちろんRの作業ディレクトリは、texファイル、Rnwファイル、styファイルのあるディレクトリにしておく
      • encoding対策としてSweave()関数の引数に注意
Sweave("testSw.Rnw",encoding="SJIS")
    • testSw.RnwとそれからできたtestSw.texとを以下に示す。1(2)カ所違う。
      • 1箇所目はtestSw.texの20行目に入った"\usepackage{Sweave}"の行
      • 2箇所目は最後に改行が入って行数が増えたこと(これはもとのRnwファイルの最後が改行されていれば変わらなかったのだろう)
      • このことからわかるように、Sweave()関数は、次の2つの仕事をする
        • Rnwという拡張子だが、基本はtex形式のファイルに"Sweave"パッケージを使うよ、という宣言を書きこむ
        • Rnwファイルに書かれたRのコードやその出力をしかるべきファイル名で作成しながら、texファイルに書き込んだり、ファイルの呼び込み行を書きこんだりする
    • "testSw.Rnw"ファイル
\documentclass[11pt,a4paper]{jsarticle}
%
\usepackage{amsmath,amssymb}
\usepackage{bm}
\usepackage{graphicx}
\usepackage{ascmac}
%
\setlength{\textwidth}{\fullwidth}
\setlength{\textheight}{39\baselineskip}
\addtolength{\textheight}{\topskip}
\setlength{\voffset}{-0.5in}
\setlength{\headsep}{0.3in}
%
\newcommand{\divergence}{\mathrm{div}\,}  %ダイバージェンス
\newcommand{\grad}{\mathrm{grad}\,}  %グラディエント
\newcommand{\rot}{\mathrm{rot}\,}  %ローテーション
%
\pagestyle{myheadings}
\markright{\footnotesize \sf 物理のかぎしっぽ \ \texttt{ http://www12.plala.or.jp/ksp/}}
\begin{document}
%
%
\section*{◆タイトル◆}

%
%
\end{document}
    • "testSw.tex"ファイル
\documentclass[11pt,a4paper]{jsarticle}
%
\usepackage{amsmath,amssymb}
\usepackage{bm}
\usepackage{graphicx}
\usepackage{ascmac}
%
\setlength{\textwidth}{\fullwidth}
\setlength{\textheight}{39\baselineskip}
\addtolength{\textheight}{\topskip}
\setlength{\voffset}{-0.5in}
\setlength{\headsep}{0.3in}
%
\newcommand{\divergence}{\mathrm{div}\,}  %ダイバージェンス
\newcommand{\grad}{\mathrm{grad}\,}  %グラディエント
\newcommand{\rot}{\mathrm{rot}\,}  %ローテーション
%
\pagestyle{myheadings}
\markright{\footnotesize \sf 物理のかぎしっぽ \ \texttt{ http://www12.plala.or.jp/ksp/}}
\usepackage{Sweave}
\begin{document}
%
%
\section*{◆タイトル◆}

%
%
\end{document}