version 1.2, 2002/07/18 14:58:03
|
version 1.19, 2005/05/05 18:59:07
|
Line 33 if ( scalar(@ARGV) < 2 )
|
Line 33 if ( scalar(@ARGV) < 2 )
|
{ |
{ |
print (<<USAGE); |
print (<<USAGE); |
Usage: $0 texxml_file_name or |
Usage: $0 texxml_file_name or |
perl $0 -- texxml_file_name |
perl $0 -- texxml_file_name [epssource] [--with-filenames] |
where "texxml_file_name" does not include the .texxml suffix |
where "texxml_file_name" optionally includes the extension |
Output: texxml_file_name.dvi |
Output: texxml_file_name.dvi |
|
|
$0 renders texxml files into dvi files by copying the tex file |
$0 renders texxml files into dvi files by copying the tex file |
Line 46 If a second argument is passed, it is us
|
Line 46 If a second argument is passed, it is us
|
|
|
Must be run as somebody with permissions to write temp files and |
Must be run as somebody with permissions to write temp files and |
access /home/httpd/html/adm/help/eps. |
access /home/httpd/html/adm/help/eps. |
|
|
|
If thre is a second argument, it will be used as the path to the |
|
eps files, otherwise "../../loncom/html/adm/help/eps" is used. |
|
|
|
If the optional argument --with-filenames is included then |
|
the filename for each fragment is stuck into the finished file. |
USAGE |
USAGE |
|
|
exit(); |
exit(); |
Line 53 USAGE
|
Line 59 USAGE
|
|
|
my $tmpdir = tmpnam(); |
my $tmpdir = tmpnam(); |
my $fileroot = $ARGV[1]; |
my $fileroot = $ARGV[1]; |
my $epssource = "/home/httpd/html/adm/help/eps"; |
|
|
|
if ( defined ( $ARGV[2] ) ) # override eps source, for build on install |
if (substr($fileroot, -7) eq ".texxml") |
{ |
{ |
|
$fileroot = substr($fileroot, 0, -7); |
|
} |
|
|
|
my $epssource = "../../loncom/html/adm/help/eps"; |
|
# override eps source, for build on install |
|
if ( $ARGV[2] && $ARGV[2] ne '--with-filenames') { |
$epssource = $ARGV[2]; |
$epssource = $ARGV[2]; |
} |
} |
|
|
mkdir $tmpdir; |
my $include_filenames=''; |
|
if ( $ARGV[2] eq '--with-filenames' || $ARGV[3] eq '--with-filenames') { |
|
$include_filenames='--with-filenames'; |
|
} |
|
|
|
#my $redir = ">& /dev/null"; # empty this for easier debugging |
|
my $redir = "~/error_log.txt"; |
|
system("rm -f $redir"); |
|
$redir=">> $redir"; |
|
|
|
mkdir $tmpdir, 0755; |
|
|
print "Converting texxml to tex...\n"; |
print "Converting texxml to tex...\n"; |
system ( "perl texxml2latex.pl $fileroot.texxml > $tmpdir/$fileroot.tex" ); |
if (system ( "perl texxml2latex.pl $fileroot.texxml $include_filenames > $tmpdir/$fileroot.tex" )) { |
|
$! = 1; |
|
die "Terminated render because texxml2latex failed; see previous error message."; |
|
}; |
|
|
print "Copying .eps files...\n"; |
print "Copying .eps files...\n"; |
system ( "cp $epssource/* $tmpdir/" ); |
system ( "cp $epssource/* $tmpdir/" ); |
|
|
print "Running Latex...\n"; |
print "Running Latex...\n"; |
system ( "cd $tmpdir; latex $fileroot >& /dev/null; latex $fileroot >& /dev/null; latex $fileroot >& /dev/null; " ); |
system ( "cd $tmpdir; echo | latex $fileroot $redir; echo | latex $fileroot $redir; makeindex $fileroot.idx; echo | latex $fileroot\ $redir; " ); |
|
|
print "Running dvips...\n"; |
print "Running dvips...\n"; |
system ( "cd $tmpdir; dvips -f $fileroot.dvi > $fileroot.ps >& /dev/null " ); |
system ( "cd $tmpdir; dvips -Ppdf -G0 -f $fileroot.dvi > $fileroot.ps " ); |
|
|
print "Copying ps file...\n"; |
print "Copying ps file...\n"; |
system ( "cp $tmpdir/$fileroot.ps ."); |
system ( "cp $tmpdir/$fileroot.ps ."); |
|
|
|
print "Converting to PDF (may take a bit)...\n"; |
|
system ( "ps2pdf $fileroot.ps $fileroot.pdf" ); |
|
|
|
print "Rescuing log and tex file for debugging ...\n"; |
|
system ("cp $tmpdir/$fileroot.log ."); |
|
system ("cp $tmpdir/$fileroot.tex ."); |
|
|
print "Clearing temp directory...\n"; |
print "Clearing temp directory...\n"; |
system ( "rm -rf $tmpdir" ); |
system ( "rm -rf $tmpdir" ); |
|
|
print "$fileroot.ps is ready, if all went well.\n"; |
if ( -e $fileroot . ".ps" ) |
|
{ |
|
print "$fileroot.ps and $fileroot.pdf are ready.\n"; |
|
} |
|
else |
|
{ |
|
print "Generation of $fileroot.ps failed.\n"; |
|
} |