#! /usr/bin/perl # # draft.pl # Copyright(c) 1997 by Jun-ichiro itojun Itoh . # All rights reserved. Absolutely no warranty. Freely redistributable. # $Id: draft.pl,v 1.2 1997/11/26 01:58:14 itojun Exp $ # # description: # 日本の計算機系学会誌のほとんどには、「投稿用の原稿の図は末尾に # まとめて出力しなければならない」という規則があります。 # それならそういうTeXスタイルファイルをsupplyしてくれりゃ # 問題はないんですが、大抵の場合そういうわけでもないので、対策 # するためにこのスクリプトを書きました。 # LaTeXのtable環境とfigure環境で書かれた部分を\end{document}の # 直前に移します。 # # なんでこんな作業しなきゃいけないんだろう。 # ばかばかしいったらないよね。やってられないす。 # # itojun@欝 # $serial = 0; $mode = ''; print "%\n% automagically generated. do not edit.\n%\n"; while (<>) { if ($mode eq '' && $_ =~ /^\\begin{figure/) { $mode = 'infigure'; } elsif ($mode eq '' && $_ =~ /^\\begin{table/) { $mode = 'intable'; } # printf("%-6s %s", $mode, $_); if ($mode eq 'infigure') { $figure{$serial} .= $_; } elsif ($mode eq 'intable') { $table{$serial} .= $_; } else { if ($_ =~ /^\\documentstyle\[/ && $_ =~ /ipsjpapers/ && $_ !~ /draft/) { $_ =~ s/\[/\[draft,/; } elsif ($_ =~ /^\\end{document}/) { &flush; } print $_; } if ($mode eq 'infigure' && $_ =~ /^\\end{figure/) { $mode = ''; $serial++; } elsif ($mode eq 'intable' && $_ =~ /^\\end{table/) { $mode = ''; $serial++; } } sub flush { local($i); for ($i = 0; $i < $serial; $i++) { print "\\clearpage\n"; if ($figure{$i} && !$table{$i}) { print $figure{$i}; } elsif (!$figure{$i} && $table{$i}) { print "{\\small\n"; print $table{$i}; print "}\n"; } else { die "strange\n"; } } $serial = 0; %figure = %table = (); }