dvi2ps出力をEPSとして使う方法
#!/usr/local/bin/perl
#
#	dvi2psなどの出力するPSファイルをEPSに変換する。
#
#	dvi2psの吐く@beginspecialはinitgraphicsなどを含んで
#	いるので-sでスケールを指定する必要がある
#
require 'getopts.pl';

&Getopts('s:');

if($opt_s){ $ws = $hs = $opt_s; }

$prologue = 1;
while(<>){
	if(/^%%EndProlog/){
		$prologue = 0;
	}
	if(/^%%Pages?:/){
		next;
	}
	if(/^%!PS-Adobe/ && $prologue){
		$_ = "%!PS-Adobe-2.0 EPSF-2.0\n";
	}
	if($ws && $hs){
		if(/^(\d+(\.\d*)?)\s+(@+hsize)$/){
			$_ = sprintf("%f $3\n",$1 * $hs);
		}
		elsif(/^(\d+(\.\d*)?)\s+(@+vsize)$/){
			$_ = sprintf("%f $3\n",$1 * $ws);
		}
	}
	# TeXDictと@で始まる名前を変更する
	s/TeXDict/$&X/g;
	if($prologue){
		s/@[^@]/@$&/g;
	}
	else {
		if(s/^@[^@]/@$&/){}
		elsif(s/ (@[^@])/ @$1/){}
	}
	print;
}