pstoedit

pstoeditとは、PostScriptファイルをさまざま形式に変換するツールである。pstoeditを使うと、Rの出力をベクター形式のままグラフィックソフトで編集できる。

利用例1:OpenOffice.org Drawで編集する。

構文

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用のメタファイル形式。挿入した画像を右クリックして「切り離す」を選ぶと各部分に切り離される。

pstoedit-draw.png

編集し終わったグラフィックはeps形式にエキスポートできます。

プレゼンテーションソフトウェアであるOpenOffice.org Impressなど他のOpenOffice.orgアプリケーションでももちろん同様にsvmファイルを使うことができる。

VineLinuxでフォントをJapan1GothicBBBにしている場合は下記のようにする。

$ GS_OPTIONS='-dNOKANJI' pstoedit -f svm Rplot.eps Rplot.svm

利用例2:tgifで編集する

Tgifを参照

利用例3:tgif+tgif2texでRグラフィックに数式を入れる

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-tgif2tex.png

利用例4:LaTeXのpicture環境を利用

構文

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)なので、本文と同じフォントにする場合は削除する。

インストールと設定

Linux

VineLinuxであれば、VinePlus extrasにpstoeditが用意してあるので下記のようにする。

# apt-get install pstoedit

Windows

Windows による eps ファイル編集(ad*beソフトに頼らない方法)を参照。

リンク

コメント



*1 このステップがなければ、全ての手順が自動化できるのですが、残念。
*2 ここでpsに出力しなければならないと解説するWebサイトがいくつもありますが、その必要はないようです。
*3 tgif2texはPostScriptのSpecialを使っています。古いxdviやdvipdfmxだと正しく処理できない可能性があります。

添付ファイル: filepstoedit-draw.png 2820件 [詳細] filepstoedit-tgif2tex.png 2544件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2023-03-25 (土) 11:19:16