#!/usr/local/bin/perl # # texifout.pl: TeX ソースファイルの \newif を考慮し # 'true' 部のみを抜き出す # # Apr. 3,'96. OSHIRO Naoki. # [1997/01/07] OSHIRO Naoki. \else への対応部を修正 # # $Log:$ # @curif=(1); while (<>) { if (/^\\(\w+)(true|false)\s*$/) { $texif{$1}=($2 eq 'true'); } if (/^\s*\\if(\w+)(\\?)/) { unshift(@curif, ($curif[0] && $texif{$1})); $_="$2$'"; next if (/^\s*$/); } if (/^\s*\\fi\s*(%.+)?$/) { shift(@curif); next; } if (/^\s*\\else\s*$/) { if ($curif[0]) { $curif[0]=!$curif[0]; } elsif ($curif[1]) { $curif[0]=!$curif[0]; } next; } print if ($curif[0]); }