[LON-CAPA-cvs] cvs: loncom /interface printout.pl

sakharuk lon-capa-cvs@mail.lon-capa.org
Tue, 22 Jul 2003 14:46:44 -0000


This is a MIME encoded message

--sakharuk1058885204
Content-Type: text/plain

sakharuk		Tue Jul 22 10:46:44 2003 EDT

  Modified files:              
    /loncom/interface	printout.pl 
  Log:
  Error diagnostic for batch mode is implemented. Needs some additional work.
  
  
--sakharuk1058885204
Content-Type: text/plain
Content-Disposition: attachment; filename="sakharuk-20030722104644.txt"

Index: loncom/interface/printout.pl
diff -u loncom/interface/printout.pl:1.28 loncom/interface/printout.pl:1.29
--- loncom/interface/printout.pl:1.28	Thu Jun  5 22:29:48 2003
+++ loncom/interface/printout.pl	Tue Jul 22 10:46:44 2003
@@ -43,77 +43,123 @@
       unlink $figfile;
   }
   #print "$texfile\n"; #name of the tex file for debugging only
-  $texfile =~ m/^(.*)\/([^\/]+)$/; 
-  my $name_file = $2;
-  my $path_file = $1.'/';
-  chdir $path_file;
-  system("latex $name_file 1>/dev/null 2>/dev/null");
-  #Do we have a latex error in the log file?
-  my $logfilename = $texfile;
-  $logfilename =~ s/\.tex$/\.log/;
-  my $temporary_file=IO::File->new($logfilename) || die "Couldn't open file for reading: $!\n";
-  my @content_of_file = <$temporary_file>;
-  close $temporary_file; 
-  my $body_log_file = join(' ',@content_of_file); 
-  if ($body_log_file=~m/!\s+Emergency stop/) {
-      #LaTeX failed to parse tex file 
-      print "<h2>LaTeX could not successfully parse your tex file.</h2>";
-      print "It probably has errors in it.<br />";
-      my $whereitbegins = rindex $body_log_file,'STAMPOFPASSEDRESOURCESTART';
-      my $whereitends = rindex $body_log_file,'STAMPOFPASSEDRESOURCEEND';
-      if ($whereitbegins!=-1 and $whereitends!=-1) {
-	print "With very high probability this error occured in ".substr($body_log_file,$whereitbegins+26,$whereitends-$whereitbegins-26)."<br /><br />";
-      }
-      print "Here are the error messages in the LaTeX log file</br><br />";
-      my $sygnal = 0;
-      for (my $i=0;$i<=$#content_of_file;$i++) {
-          if ($content_of_file[$i]=~m/^Runaway argument?/ or $content_of_file[$i]=~m/^!/) {
-	      $sygnal = 1;
-	  } 
-	  if ($content_of_file[$i]=~m/Here is how much of/) {
-	      $sygnal = 0;
+  if (-e $texfile) {
+      $texfile =~ m/^(.*)\/([^\/]+)$/; 
+      my $name_file = $2;
+      my $path_file = $1.'/';
+      chdir $path_file;
+      system("latex $name_file 1>/dev/null 2>/dev/null");
+      #Do we have a latex error in the log file?
+      my $logfilename = $texfile;
+      $logfilename =~ s/\.tex$/\.log/;
+      my $temporary_file=IO::File->new($logfilename) || die "Couldn't open file for reading: $!\n";
+      my @content_of_file = <$temporary_file>;
+      close $temporary_file; 
+      my $body_log_file = join(' ',@content_of_file); 
+      if ($body_log_file=~m/!\s+Emergency stop/) {
+	  #LaTeX failed to parse tex file 
+	  print "<h2>LaTeX could not successfully parse your tex file.</h2>";
+	  print "It probably has errors in it.<br />";
+	  my $whereitbegins = rindex $body_log_file,'STAMPOFPASSEDRESOURCESTART';
+	  my $whereitends = rindex $body_log_file,'STAMPOFPASSEDRESOURCEEND';
+	  if ($whereitbegins!=-1 and $whereitends!=-1) {
+	      print "With very high probability this error occured in ".substr($body_log_file,$whereitbegins+26,$whereitends-$whereitbegins-26)."<br /><br />";
+	  }
+	  print "Here are the error messages in the LaTeX log file</br><br />";
+	  my $sygnal = 0;
+	  for (my $i=0;$i<=$#content_of_file;$i++) {
+	      if ($content_of_file[$i]=~m/^Runaway argument?/ or $content_of_file[$i]=~m/^!/) {
+		  $sygnal = 1;
+	      } 
+	      if ($content_of_file[$i]=~m/Here is how much of/) {
+		  $sygnal = 0;
+	      } 
+	      if ($sygnal) {
+		  print "$content_of_file[$i]<br />";
+	      }  
 	  } 
-	  if ($sygnal) {
-	      print "$content_of_file[$i]<br />";
-	  }  
-      } 
-  } else {
-      #LaTeX successfully parsed tex file 
-      $name_file =~ s/\.tex/\.dvi/;
-      my $new_name_file = $name_file;
-      $new_name_file =~ s/\.dvi/\.ps/;
-      my $comma = "dvips -Ppdf -G0 -o $new_name_file";
-      system("$comma $name_file 1>/dev/null 2>/dev/null");
-      if (-e $new_name_file) {
-	  print "<h1>Successfully created PDF output file (see link below)</h1>\n";
-	  $new_name_file =~ m/^(.*)\./;
-	  my $tempo_file = $1.'temporar.ps';
-	  my $name_file = $1.'.pdf';
-	  if ($laystyle eq 'album' and $numberofcolumns eq '2') {
-	      $comma = "psnup -2 -s1.0 $new_name_file";
-	      system("$comma $tempo_file 1>/dev/null 2>/dev/null"); 
-	      system("ps2pdf $tempo_file $name_file 1>/dev/null 2>/dev/null");
-	  } elsif ($laystyle eq 'book' and $numberofcolumns eq '2') {
-	      $comma = 'pstops -pletter "2:0+1(0.48w,0)"';
-	      system("$comma $new_name_file $tempo_file 1>/dev/null 2>/dev/null");
-	      system("ps2pdf $tempo_file $name_file 1>/dev/null 2>/dev/null");
-	  } else {
-	      system("ps2pdf $new_name_file $name_file 1>/dev/null 2>/dev/null");
-	  }	    
-	  my $texlog = $texfile;
-	  my $texaux = $texfile;
-	  my $texdvi = $texfile;
-	  my $texps = $texfile;
-	  $texlog =~ s/\.tex/\.log/;
-	  $texaux =~ s/\.tex/\.aux/;
-	  $texdvi =~ s/\.tex/\.dvi/;
-	  $texps =~ s/\.tex/\.ps/;
-	  my @garb = ($texlog,$texaux,$texdvi,$texps);
+      } elsif ($body_log_file=~m/<inserted text>/) {
+	  my $whereitbegins = index $body_log_file,'<inserted text>';
+	  $whereitbegins = rindex $body_log_file,'STAMPOFPASSEDRESOURCESTART',$whereitbegins;
+	  my $whereitends = index $body_log_file,'STAMPOFPASSEDRESOURCEEND',$whereitbegins;
+	  print "You are running LaTeX in the <b>batch mode</b>. \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";
+	  $name_file =~ s/\.tex/\.dvi/;
+	  my $new_name_file = $name_file;
+	  $new_name_file =~ s/\.dvi/\.ps/;
+	  my $comma = "dvips -Ppdf -G0 -o $new_name_file";
+	  system("$comma $name_file 1>/dev/null 2>/dev/null");
+	  if (-e $new_name_file) {
+	      print "<h1>PDF output file (see link below)</h1>\n";
+	      $new_name_file =~ m/^(.*)\./;
+	      my $tempo_file = $1.'temporar.ps';
+	      my $name_file = $1.'.pdf';
+	      if ($laystyle eq 'album' and $numberofcolumns eq '2') {
+		  $comma = "psnup -2 -s1.0 $new_name_file";
+		  system("$comma $tempo_file 1>/dev/null 2>/dev/null"); 
+		  system("ps2pdf $tempo_file $name_file 1>/dev/null 2>/dev/null");
+	      } elsif ($laystyle eq 'book' and $numberofcolumns eq '2') {
+		  $comma = 'pstops -pletter "2:0+1(0.48w,0)"';
+		  system("$comma $new_name_file $tempo_file 1>/dev/null 2>/dev/null");
+		  system("ps2pdf $tempo_file $name_file 1>/dev/null 2>/dev/null");
+	      } else {
+		  system("ps2pdf $new_name_file $name_file 1>/dev/null 2>/dev/null");
+	      }	    
+	      my $texlog = $texfile;
+	      my $texaux = $texfile;
+	      my $texdvi = $texfile;
+	      my $texps = $texfile;
+	      $texlog =~ s/\.tex/\.log/;
+	      $texaux =~ s/\.tex/\.aux/;
+	      $texdvi =~ s/\.tex/\.dvi/;
+	      $texps =~ s/\.tex/\.ps/;
+	      my @garb = ($texlog,$texaux,$texdvi,$texps);
 #	  unlink @garb;
-	  unlink $duefile;
-	  print "<a href=\"/prtspool/$name_file\">Your PDF document</a>";
-	  print "\n";
+	      unlink $duefile;
+	      print "<a href=\"/prtspool/$name_file\">Your PDF document</a>";
+	      print "\n";
+	  }
+      } else {
+	  #LaTeX successfully parsed tex file 
+	  $name_file =~ s/\.tex/\.dvi/;
+	  my $new_name_file = $name_file;
+	  $new_name_file =~ s/\.dvi/\.ps/;
+	  my $comma = "dvips -Ppdf -G0 -o $new_name_file";
+	  system("$comma $name_file 1>/dev/null 2>/dev/null");
+	  if (-e $new_name_file) {
+	      print "<h1>Successfully created PDF output file (see link below)</h1>\n";
+	      $new_name_file =~ m/^(.*)\./;
+	      my $tempo_file = $1.'temporar.ps';
+	      my $name_file = $1.'.pdf';
+	      if ($laystyle eq 'album' and $numberofcolumns eq '2') {
+		  $comma = "psnup -2 -s1.0 $new_name_file";
+		  system("$comma $tempo_file 1>/dev/null 2>/dev/null"); 
+		  system("ps2pdf $tempo_file $name_file 1>/dev/null 2>/dev/null");
+	      } elsif ($laystyle eq 'book' and $numberofcolumns eq '2') {
+		  $comma = 'pstops -pletter "2:0+1(0.48w,0)"';
+		  system("$comma $new_name_file $tempo_file 1>/dev/null 2>/dev/null");
+		  system("ps2pdf $tempo_file $name_file 1>/dev/null 2>/dev/null");
+	      } else {
+		  system("ps2pdf $new_name_file $name_file 1>/dev/null 2>/dev/null");
+	      }	    
+	      my $texlog = $texfile;
+	      my $texaux = $texfile;
+	      my $texdvi = $texfile;
+	      my $texps = $texfile;
+	      $texlog =~ s/\.tex/\.log/;
+	      $texaux =~ s/\.tex/\.aux/;
+	      $texdvi =~ s/\.tex/\.dvi/;
+	      $texps =~ s/\.tex/\.ps/;
+	      my @garb = ($texlog,$texaux,$texdvi,$texps);
+#	  unlink @garb;
+	      unlink $duefile;
+	      print "<a href=\"/prtspool/$name_file\">Your PDF document</a>";
+	      print "\n";
+	  }
       }
+  } else {
+      print "LaTeX file $texfile was not created successfully";
   }
 
 

--sakharuk1058885204--