なんだか入った研究室では、Sma4というソフトで散布図を描くのが伝統的になっているらしい。

Sma4 for Windowsのページ
http://hp.vector.co.jp/authors/VA002995/soft/sma4win.htm

確かに、マウスをカチカチしていると簡単にグラフが作れるため、再調整するときや見なおすときに非常に便利なソフトです。さらに、一工夫してやるとベクター画像のグラフが得られます。そのためには、WMF形式でエクスポート → 仮想プリンタでEPS出力 という手順を踏みます。

まず、Sma4 for Windows上で、作ったグラフをWMF(Windows Meta File)という形式でエクスポートします。これには、ファイル(F) → Export → メタファイル形式で出力(W) とします。

このときに、ファイルの種類(拡張子)は .wmf を指定します。

次に、このWMF形式のファイルを、EPS画像に変換します。このとき、WMF2EPSというソフトと仮想プリンタを用います。これらの設定については多少複雑なので、以下のサイトを参考にしてください。

TeXに差し込む図のepsをMS Office等から簡単に作る方法 – Kerosoft : Modus Operandi
http://mo.kerosoft.com/0155

WMF2EPSを起動し、WMFファイルをウィンドウにD&DすればSma4で作製したグラフが表示されるはずです。そこで、以下の位置にあるConvert Graphボタンを押します。すると、インストールとプリンタの設定が正しくされていれば、EPS形式のグラフが出力されます。

あとはTeXなどに埋め込めばOKです。

ebbコマンドをいちいち実行するのは面倒なので、スクリプトを書きます。ふだんはWin環境なので、PowerShellを使用します。

PowerShellでは、パイプラインで渡される複数のオブジェクトの入力に対して、その各オブジェクトに何らかの処理をしたいときには、 ForEach-Object というコマンドを用いれば良いようです。

ebbはjpg,png,pdfに対応しているようですが、pdfはちょっとややこしいのでjpgとpngのファイルのみからbbファイルを作成するようになっています。

Get-ChildItem -Name | Select-String "png|jgp" | ForEach-Object  -Begin {"starting..." } -Process { echo "making bb file from $_ ..." ; ebb $_ ; echo done} -End { "process done"}

Select-String はPowerShellにおけるgrepのようなものです。パイプラインを用いるときは、grepよりもこちらを使ったほうが良いようです。

,