pstoedit
pstoeditとは、PostScriptファイルをさまざま形式に変換するツールである。pstoeditを使うと、Rの出力をベクター形式のままグラフィックソフトで編集できる。
構文
pstoedit -f svm 入力ファイル 出力ファイル
使用例
> plot(runif(10),runif(10)) > dev.copy2eps() > q() $ pstoedit -f svm Rplot.eps Rplot.svm
次にOpenOffice,org Drawにて、挿入(I)→画像(U)→ファイルから(F)でRplot.svmを選択する。svmファイルはStarView/OpenOffice.org用のメタファイル形式。挿入した画像を右クリックして「切り離す」を選ぶと各部分に切り離される。
編集し終わったグラフィックはeps形式にエキスポートできます。
プレゼンテーションソフトウェアであるOpenOffice.org Impressなど他のOpenOffice.orgアプリケーションでももちろん同様にsvmファイルを使うことができる。
VineLinuxでフォントをJapan1GothicBBBにしている場合は下記のようにする。
$ GS_OPTIONS='-dNOKANJI' pstoedit -f svm Rplot.eps Rplot.svm
Tgifを参照
tgif2texは、tgif形式グラフィックの中で数式などのLaTeXコマンドを利用可能にするプログラムです。pstoeditとtgif2texを組み合わせることによって、Rの出力の中にLaTeXコマンドを入れることができます。
> x <- seq(0,15,length=100) > plot(x, dchisq(x, 5), xlab='$x$',ylab='$f(x)$', type='l') > title('Density Function of the $\\chi_{5}^{2}$ Distribution') > ps.options(family="Helvetica") > dev.copy2eps() $ pstoedit -f tgif Rplot.eps Rplot.obj $ tgif Rplot.obj
ここでTgifが起動しますので、Rの出力の範囲を四角で囲みます。このステップを行わないとうまくいきません*1。四角で囲んだら保存します*2。
$ tgif2tex Rplot.obj
これで、Rplot.ps Rplot.tps Rplot.dpsが出力されますが、必要なファイルはRplot.tpsとRplot.dpsの2つです。TeX文書にこの図を埋め込むときには\input{Rplot.tps}とします。 TeX文書をPostScriptにすると下記のようにちゃんと数式になっているはず*3。
構文
pstoedit -f latex2e 入力ファイル 出力ファイル
使用例
> plot(1:10,1:10,axes=FALSE,xlab="",ylab="",type="n") > polygon(c(5,7,7,5),c(5,5,7,7)) > text(6,6,"x") > ps.options(family="Times") > dev.copy2eps() > q() $ pstoedit -f latex2e Rplot.eps Rplot.tex
出力されたRplot.texの内容は下記の通り。
\begin{picture}(85.5295,76.5962)(245.728,240.689) \put(245.728027,240.689194){\line(1,0){85.529510}} \put(331.257538,240.689194){\line(0,1){76.596176}} \put(331.257538,317.285370){\line(-1,0){85.529510}} \put(245.728027,317.285370){\line(0,-1){76.596176}} \usefont{T1}{ptm}{m}{n} \fontsize{12.044999\unitlength}{12.044999\unitlength}\selectfont \put(285.486572,276.282166){x} \end{picture}
見ての通り、picure環境のコマンドが並んでいるただのTeXソースである。例えば、下から2行目のxを$x_i$などと数式に変えたり、日本語に差し替えたり、または、\putを追加したり、LaTeXコマンドを追加したり、自由に編集してから、\input{}でTeX文書に埋め込むことができる。\usefont{T1}{ptm}{m}{n}と\fontsize{12.044999\unitlength}{12.044999\unitlength}\selectfontはフォント指定(この場合はTimes)なので、本文と同じフォントにする場合は削除する。
VineLinuxであれば、VinePlus extrasにpstoeditが用意してあるので下記のようにする。
# apt-get install pstoedit
Windows による eps ファイル編集(ad*beソフトに頼らない方法)を参照。