--- loncom/interface/printout.pl 2003/07/24 14:57:54 1.31
+++ loncom/interface/printout.pl 2003/09/01 03:30:57 1.37
@@ -1,9 +1,38 @@
#!/usr/bin/perl
+# CGI-script to run LaTeX, dvips, ps2ps, ps2pdf etc.
+#
+# $Id: printout.pl,v 1.37 2003/09/01 03:30:57 albertel Exp $
+#
+# Copyright Michigan State University Board of Trustees
+#
+# This file is part of the LearningOnline Network with CAPA (LON-CAPA).
+#
+# LON-CAPA is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# LON-CAPA is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with LON-CAPA; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+#
+# /home/httpd/html/adm/gpl.txt
+#
+# http://www.lon-capa.org/
+#
+
use IO::File;
use Image::Magick;
print "Content-type: text/html\n\n";
print "
\n";
my ($texfile,$laystyle,$numberofcolumns,$selectionmade) = split(/&/,$ENV{'QUERY_STRING'});
+ my $advans_role=0;
+ if ($selectionmade>=10000) {$selectionmade=$selectionmade/10000; $advans_role=1;}
my $figfile = $texfile;
$figfile =~ s/^([^\.]+printout)[^t]+\.tex/$1\.dat/;
my $duefile = $texfile;
@@ -49,6 +78,13 @@ use Image::Magick;
my $path_file = $1.'/';
chdir $path_file;
system("latex $name_file 1>/dev/null 2>/dev/null");
+ if ($selectionmade>=10) {system("latex $name_file 1>/dev/null 2>/dev/null");} #to create table of contents
+ my $idxname=$name_file;
+ $idxname=~s/\.tex$/\.idx/;
+ if ($selectionmade>=100) {
+ system("makeindex $idxname");
+ system("latex $name_file 1>/dev/null 2>/dev/null");
+ } #to create index
#Do we have a latex error in the log file?
my $logfilename = $texfile;
$logfilename =~ s/\.tex$/\.log/;
@@ -80,7 +116,27 @@ use Image::Magick;
if ($sygnal) {
print "$content_of_file[$i]
";
}
- }
+ }
+ if ($advans_role) {
+ print "The link to ";
+ $logfilename=~s/\/home\/httpd//;
+ print "Your log file ";
+ print "\n";
+ #link tooriginal LaTeX file (included according Michael Hamlin desire)
+ my $tex_temporary_file=IO::File->new($texfile) || die "Couldn't open file for reading: $!\n";
+ my @tex_content_of_file = <$tex_temporary_file>;
+ close $tex_temporary_file;
+ my $body_tex_file = join(' ',@tex_content_of_file);
+ $texfile =~ s/\.tex$/aaaaa\.html/;
+ $tex_temporary_file = IO::File->new('>'.$texfile);
+ print $tex_temporary_file 'LOGFILE'.$body_tex_file.'
'."\n";
+ print "
";
+ print "The link to ";
+ $texfile=~s/\/home\/httpd//;
+ print "Your original LaTeX file ";
+ print "\n";
+ }
+
} elsif ($body_log_file=~m//) {
my $whereitbegins = index $body_log_file,'';
print "You are running LaTeX in the batch mode.";
@@ -88,7 +144,7 @@ use Image::Magick;
my $tempobegin=$whereitbegins;
$whereitbegins = rindex $body_log_file,'STAMPOFPASSEDRESOURCESTART',$whereitbegins;
my $whereitends = index $body_log_file,'STAMPOFPASSEDRESOURCEEND',$whereitbegins;
- print "
It has found an error in".substr($body_log_file,$whereitbegins+26,$whereitends-$whereitbegins-26)." and corrected it.\n";
+ print "
It has found an error in".substr($body_log_file,$whereitbegins+26,$whereitends-$whereitbegins-26)."
and corrected it.\n";
print "Usually this correction is valid but you probably need to check the indicated resource one more time and implement neccessary corrections by yourself.\n";
$whereitbegins = index $body_log_file,'',$tempobegin+10;
}
@@ -125,11 +181,26 @@ use Image::Magick;
# unlink @garb;
unlink $duefile;
print "Your PDF document";
- print "
";
- print "The link to ";
- $logfilename=~s/\/home\/httpd//;
- print "Your log file ";
- print "\n";
+ if ($advans_role) {
+ print "
";
+ print "The link to ";
+ $logfilename=~s/\/home\/httpd//;
+ print "Your log file ";
+ print "\n";
+ #link tooriginal LaTeX file (included according Michael Hamlin desire)
+ my $tex_temporary_file=IO::File->new($texfile) || die "Couldn't open file for reading: $!\n";
+ my @tex_content_of_file = <$tex_temporary_file>;
+ close $tex_temporary_file;
+ my $body_tex_file = join(' ',@tex_content_of_file);
+ $texfile =~ s/\.tex$/aaaaa\.html/;
+ $tex_temporary_file = IO::File->new('>'.$texfile);
+ print $tex_temporary_file 'LOGFILE'.$body_tex_file.'
'."\n";
+ print "
";
+ print "The link to ";
+ $texfile=~s/\/home\/httpd//;
+ print "Your original LaTeX file ";
+ print "\n";
+ }
}
} else {
#LaTeX successfully parsed tex file