てふ・文字化け

  • RのSweave()を使って.Rnwファイルを.texファイルとしてそれをTeXWorksでpdfにする。日本語フォントを使う
  • 目次:以下の段階でそれぞれの対処
    • 1. てふのもろもろのインストール
    • 2. texファイルの作成とエンコーディング
    • 3. Sweave()関数
    • 4. texファイル処理のコマンド
  • 1. てふのもろもろのインストール
  • 2. texファイルの作成とエンコーディング
    • TexWorksを使う(他のでももちろんよいけれど…)(こちら)
    • TexWorksを使って新規にファイルを作り始めると、そのエンコーディングUTF-8(添付画像の底に「UTF-8」と書いてある)
      • その「UTF-8」をクリックするとたくさんのエンコーディングがリストとして表示されるので、そのうち、適当なものを選び(チェック記号が入る)、その上で、そのリストの一番上にある、「選択した文字コードで再読み込みをする」を選ぶ
\documentclass{jarticle}

\usepackage{Sweave}
\begin{document}
いろは

\end{document}
||
[f:id:ryamada:20121226090619p:image]
--ここからpdfLaTeXすれば文字化けしないでpdfファイルができる
--Windows上の他のテキストエディタ等でてふファイルを作ると、デフォルトでSJISだったりする。そのファイルをTeXWorksで開くと文字化けする。それはUTF-8のつもりで開いているから。
>|tex|
\documentclass{jarticle}

\usepackage{Sweave}
\begin{document}
いろは

\end{document}

    • TeXWorksで対応するエンコーディングを選ぶには、こんな画面を出して、変えたいコードを選び「選択した文字コードで再読み込みする」を選択する

    • こうしておけば、このままpdf化可能

  • 3. Sweave()関数
\documentclass{article}

\usepackage{ascmac}
\SweaveOpts{eps=TRUE}
\begin{document}
\section{日本語も使おう}
Rの内側では日本語を使わない方が無難かも
<<fig=TRUE>>=

data<-runif(100)
sort(data)
plot(sort(data))

@

\end{document}
    • Windows上のRはWindowsのデフォルトのコードを取りこんでそれで動くのを基本としているのだが、Sweave()は文字コードを指定する必要がある(ようだ。以前は不要だったのだが)
      • SJISファイルの.Rnwを読み込んで、SJISの.texファイルを出力する
    • ここで、注意するべきは、
\SweaveOpts{eps=TRUE}
    • これを書くことですべての図の出力がepsとpdfの両方になる
    • 重複して出て、邪魔くさいが、pdfを取り込むタイプのtexコマンドとepsを取り込むタイプのtexコマンドがあり、どちらを使うかわからないので、両方出しておく方が無難
Sweave("test9.Rnw",encoding="SJIS")
    • うまく回ると
> Sweave("test9.Rnw",encoding="SJIS")
Writing to file test9.tex
Processing code chunks with options ...
 1 : echo keep.source term verbatim eps pdf 

You can now run (pdf)latex on ‘test9.tex’
  • 4. texファイル処理のコマンド
    • test9.texというファイルとtest9-001.pdf,test9-001.epsという2つの画像ファイルができている
      • test9.texの中身はこんな感じ
\documentclass{article}

\usepackage{ascmac}

\usepackage{Sweave}
\begin{document}
\section{日本語も使おう}
Rの内側では日本語を使わない方が無難かも
\begin{Schunk}
\begin{Sinput}
> data<-runif(100)
> sort(data)
\end{Sinput}
\begin{Soutput}
  [1] 0.01502144 0.03709996 0.04607618 0.04959499 0.05517076 0.05994936
  [7] 0.09028610 0.10692749 0.11688174 0.12395790 0.12474637 0.12800117
 [13] 0.16122770 0.16159245 0.16518906 0.16862616 0.17233768 0.18916429
 [19] 0.19790598 0.22689187 0.22951569 0.24160323 0.24771238 0.25454111
 [25] 0.26100827 0.26249501 0.27439013 0.30136098 0.30315644 0.32056440
 [31] 0.38909488 0.42191913 0.43324298 0.44903463 0.45375795 0.45796025
 [37] 0.46465569 0.47787336 0.47787824 0.48090425 0.48114462 0.49716989
 [43] 0.51296979 0.52166171 0.53800502 0.54143353 0.54309544 0.54563801
 [49] 0.54565926 0.54868219 0.55278919 0.55830918 0.55988859 0.56000162
 [55] 0.56361566 0.56375073 0.57418965 0.58500517 0.59250566 0.60094658
 [61] 0.61797900 0.61949051 0.63480170 0.63845865 0.64478699 0.64864364
 [67] 0.64989374 0.65285731 0.66514486 0.67581914 0.68337210 0.69463897
 [73] 0.70132337 0.71590750 0.73334351 0.73936720 0.74289992 0.75169131
 [79] 0.75178146 0.76600283 0.76823333 0.78698827 0.78804321 0.79041538
 [85] 0.79119897 0.82807376 0.83097175 0.83910420 0.84326932 0.84342933
 [91] 0.86319715 0.88431532 0.89733356 0.91219363 0.94049719 0.94797356
 [97] 0.95117214 0.95129122 0.95673310 0.96591105
\end{Soutput}
\begin{Sinput}
> plot(sort(data))
> 
\end{Sinput}
\end{Schunk}
\includegraphics{test9-001}

\end{document}
    • TeXWorksでtest9.texを開くと、SJISなので文字化けしている。上記の方法でSJIS対応にすると文字化けは解消する
    • 前項のSweave()関数の実行画面で"You can now run (pdf)latex on 'text9.tex' " とあるので、TeXWorks上でpdfLaTeXで変換すれば、日本語の文字を反映したpdfファイルができる
    • ただし、この.texファイルはSweave仕様なので、それを理解させるためのスタイルファイルが読み込まれる必要がある
    • styファイル2つ(Sweave.sty,ae.styが必要(Sweave.styだけかも…)
    • とってきて(テキストファイルとして、Sweave.sty,ae.styという名前で保存して、Rnwファイルと同じフォルダに置く)(しかるべき場所に置いてパスを通してももちろんよい)
  • この記事を書くための調べ物をごちゃごちゃと書いたのはこちら。調べ物のリンク先などがある