論文書きでお役立ち!EPSを自動的にトリミングする方法

TeXで貼り付けるEPS画像の余白を自動で切り取る方法を発見しました。
結論は一番下に書いてあるのでそちらに飛んでください。
一番下へ


EPSのBoundingBox

EPSとはベクターでかかれた画像データである。つまり拡大してもディザがでなくて…(ry (細かいことはググって調べてください。)
TeXで画像を貼りつけるときは一旦EPS形式にしないと貼り付けることができません。しかしそのまま貼りつけると余計な余白まで入ってしまいます。
その余白が入らないようにするにはテキストエディタでEPSを開いて編集するのです。開くと

%%BoundingBox: 0 0 595 841

のような行があります。この数字が切り出しの位置を表しているのです。どれがどれだかを解説する気はないのでググレカス

これをいちいち手で設定するのは大変です。
そこであれこれ調べました。イラレつかえば簡単だよとか言われそうですが、僕に言わせれば

  • 有料ソフト厨 m9(^Д^)プギャーーーーーーーーーwwwwww

ですね。フリーソフト&プログラミングでやってこなしてこそ漢です。





GSViewで自動的にトリミングするる方法

ぐぐったところ、こんなサイトが有りました!神www

でも、これも結局いちいちこの作業を繰り返さなきゃいけないんだよね…たりー

そこで本文中の「Automatically calculate Bounding Box」でぐぐってみたらこんなサイトが出てきた。(これが検索力)





EpsTool (忙しい人はここだけ読んでください)

こんなものがあるそうです。

このページのExampleにこんなのがあるじゃないですか!!!!

Adjust the BoundingBox of an existing EPS file, but don't add a preview: 
  epstool --copy --bbox golfer.eps golfer2.eps 

神降臨w

これでどうやって自動化するかって?浅学がにじみ出ていてよ

まずepstoolをPATHが通っているディレクトリ(例えばC:\Windows\System32がオススメ)にコピーします。
そして、バッチファイルを使うのです

@echo off
echo Adjusting EPS File...
epstool --copy --bbox %1 "%~dpn1_mod.eps"
echo Done
pause

これを拡張子batとして保存して、そこへEPSをドラッグしてみてください。もとのファイル名_mod.epsというファイル名でトリミングされたEPSが生成されているはずです。

複数のファイルが入力された場合に処理するスクリプトも書くことはできます。ただ、小生は浅学にして今すぐ思い出すことはできないので後日追記させていただきます。

あるいはファイルの関連付けでこのようにするとよいかもしれません

epstool.exe --copy --bbox %1 %1.mod.eps

ちなみに"%~dpn1"ってなんだよw と言う人はコマンドプロンプトで"for /?"を実行してみてください。



ふぅ…やっと寝れる…明日起きれるかな…