cutter hoge.tex
すると、hedderというファイルと数式部分のファイルが多数ぶち撒かれる。要
注意だ。
#!/usr/bin/perl -w
# file:cutter
# TeX source cutter to get headder and equation part of tex
$TimeStamp="Time-stamp: <05/09/09 03:10:03 fu7mu4>";
$Version="2.3macosx-vine";
# Special Thanks to ------- .
###Options##
# $NoNumber="YES" : remove all equation number , ="NO" : don't remove
$NoNumber="YES" ;
# $Eqpart is output file name , ex. "$EqFile$i" :$i = 1,2,3...
$EqFile="eqpart" ;
# headder file name
$HeadderFile = "headder" ;
###CODE###
#initialize
@mathenv = ( "equation" , "eqnarray" , "gather" , "align" , "alignat" , "multline" );
$FileNum = 0 ;
#version and help
print <<EOD;
cutter Version $Version is wriiten at $TimeStamp
cutter USAGE
cutter file
or
cat \*\.tex | cutter
No input , send me Ctrl-D
EOD
while (<>) {
s/\%.*$// ; #remove all comments
s/\\label\{.*\}// ; #remove all label commands
s/\\tag(\*)?{.*\}// ; #remove all tags command
if ( $_ =~ /\\document/ ) {
$FileName = "$HeadderFile";
open(W,">${FileName}");
select W;
}
if ( $_ =~ /\\\[|\\begin\{(equation|eqnarray|gather|align|alignat|multline)\*?\}/ ) {
$FileNum++ ;
$FileName = "${EqFile}".$FileNum;
open(W,">${FileName}");
select W;
}
if ( ${NoNumber} eq "YES" ) {
foreach $env (@mathenv ) {
s/\\begin\{$env\}/\\begin\{$env\*\}/g ;
s/\\end\{$env\}/\\end\{$env\*\}/g ;
}
# for jlatex
s/\\begin\{equation\*\}/\\\[/;
s/\\end\{equation\*\}/\\\]/;
}
# s/^.*?(\\\[|\\begin\{equation\})/$1/;
# s/(\\\]|\\end\{equation\}).*$/$1/;
foreach $env (@mathenv ) {
s/^.*?(\\\[|\\begin\{$env\*?\})/$1/;
s/(\\\]|\\end\{$env\*?\}).*$/$1/;
}
print $_;
if ( $_ =~ /\\begin\{document\}/) {
close W;
select STDOUT;
}
if ( $_ =~ /\\\]|\\end\{(equation|eqnarray|gather|align|alignat|multline)\*?\}/ ) {
close W;
select STDOUT;
}
}
print <<EOD;
see , there are $FileNum files
EOD