#!/usr/dist/bin/perl print "\n\n"; #system("clear"); if($#ARGV != 0) { print "\n\n"; print "Usage: extractpgf file.tex"; print "\n\n"; exit(-1); } if(!-e "@ARGV[0]") { print "ERROR: file @ARGV[0] does not exist\n\n"; exit(-1); } $filename=`basename @ARGV[0] .tex`; chomp($filename); $texname="$filename.tex"; $extractpgf_filename_tex="$filename-extract.tex"; $extractpgf_filename_pdf="$filename-extract.pdf"; $extractpgf_filename_log="$filename-extract.log"; system("sed -e 's/usepackage{tikz}/usepackage{tikz}\\\\usepackage[active,tightpage]{preview}\\\\PreviewEnvironment{tikzpicture}/g' $texname > $extractpgf_filename_tex"); $FirstRun = system("pdflatex --interaction nonstopmode $extractpgf_filename_tex > FirstTeX.output"); if($FirstRun != 0) { print "\n\n"; print "There was a Fatal pdfLaTeX Error:\n"; print "--------------------------------------------------\n"; system("cat FirstTeX.output"); #write out the log file to stdout print "--------------------------------------------------\n\n"; #system("nedit $filename.bib &"); #system("rm FirstTeX.output"); exit(-1); } #we examine the successful output log to get the total number of pages $PageLine = `more FirstTeX.output | grep page`; #page or pages? chomp($PageLine); $PageLine=~m/\(([0-9]+) page/; $TotalNumberOfPages = $1; system("rm FirstTeX.output"); #add more code for proper file names if ever more than 9 figures if($TotalNumberOfPages == 1) { system("cp $extractpgf_filename_pdf pgf-fig001.pdf"); } else { for($i=1; $i<=$TotalNumberOfPages; $i++) { $FigureFileNumber=$i; $FigureFileName="pgf-fig00$FigureFileNumber.pdf"; print "name = $FigureFileName\n"; system("pdfnup --nup 1x1 --pages $i --outfile $FigureFileName $extractpgf_filename_pdf"); system("pdfcrop $FigureFileName $FigureFileName"); } } system("rm $extractpgf_filename_pdf"); system("rm $extractpgf_filename_tex"); system("rm $extractpgf_filename_log");