[LON-CAPA-cvs] cvs: loncom /interface lonprintout.pm

sakharuk lon-capa-cvs@mail.lon-capa.org
Wed, 10 Apr 2002 16:21:33 -0000


sakharuk		Wed Apr 10 12:21:33 2002 EDT

  Modified files:              
    /loncom/interface	lonprintout.pm 
  Log:
  this is a very very first and bad attempt to work with dynamically produced eps
  
  
Index: loncom/interface/lonprintout.pm
diff -u loncom/interface/lonprintout.pm:1.20 loncom/interface/lonprintout.pm:1.21
--- loncom/interface/lonprintout.pm:1.20	Mon Apr  1 13:23:12 2002
+++ loncom/interface/lonprintout.pm	Wed Apr 10 12:21:33 2002
@@ -1,7 +1,7 @@
 # The LearningOnline Network
 # Printout
 #
-# $Id: lonprintout.pm,v 1.20 2002/04/01 18:23:12 sakharuk Exp $
+# $Id: lonprintout.pm,v 1.21 2002/04/10 16:21:33 sakharuk Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -136,13 +136,12 @@
             $_ = $1;
             my $urlp = $1;
 	    if ($choice eq 'Standard LaTeX output for the primary sequence') {
-		if (/\.problem/) {
+		if (/\.(problem|exam|quiz|assess|survey|form|library)/) {
 		    my %moreenv;
 		    $moreenv{'form.grade_target'}='tex';
 		    &Apache::lonnet::appenv(%moreenv);
 		    my $texversion=&Apache::lonnet::ssi($urlp);
 		    &Apache::lonnet::delenv('form.grade_target');
-		    $texversion =~ s!\.gif!\.eps!g;
 		    $result .= $texversion;        
 		}
 	    } else {
@@ -150,7 +149,6 @@
 		&Apache::lonnet::appenv(%moreenv);
 		my $texversion=&Apache::lonnet::ssi($urlp);
 		&Apache::lonnet::delenv('form.grade_target');
-		$texversion =~ s!\.gif!\.eps!g;
 		$result .= $texversion;    
 	    }
 	}
@@ -192,13 +190,12 @@
 	    m/\"(.*)\"/;
             $_ = $1;
             my $urlp = $1;
-            if (/\.problem/) {
+            if (/\.(problem|exam|quiz|assess|survey|form|library)/) {
 		my %moreenv;
 		$moreenv{'form.grade_target'}='tex';
 		&Apache::lonnet::appenv(%moreenv);
 		my $texversion=&Apache::lonnet::ssi($urlp);
 		&Apache::lonnet::delenv('form.grade_target');
-		$texversion =~ s!\.gif!\.eps!;
 		$result .= $texversion;        
 	    }
 	}
@@ -224,13 +221,28 @@
 	$result =~ s/\\documentclass\[letterpaper\]{article}/\\documentclass\[twocolumn\]{article}/;
 	$result =~ s/\\begin{document}/\\textheight 25\.9cm\\oddsidemargin = -0\.57in\\evensidemargin = -0\.57in\\textwidth= 7\.7in\\begin{document}\\voffset=-1\.8cm\\setcounter{page}{1}\\noindent\\fbox{\\textbf{$ENV{'environment.firstname'} $ENV{'environment.lastname'}}}\\hskip 1\.4in $courseidinfo \\vskip 5 mm /;
 	$result =~ s/\\includegraphics/\\includegraphics\[width=9\.0 cm\]/g;
-	$result =~ s/(\\end{document})/\\newline\\noindent\\makebox\[9.0cm\]\[b\]{\\hrulefill}\\newline\\noindent\\tiny Dept\. of Physics and Astronomy, MSU\\makebox\[1.0cm\]\[b\]{\\hfill}LON-CAPA\\copyright MSU GNU\/GPS $1/;
+	$result =~ s/(\\end{document})/\\newline\\noindent\\makebox\[9.0cm\]\[b\]{\\hrulefill}\\newline\\noindent\\tiny Dept\. of Physics and Astronomy, MSU\\makebox\[1.5cm\]\[b\]{\\hfill}LON-CAPA\\copyright MSU GNU\/GPS $1/;
     }
 #-- LaTeX corrections 
     $result =~ s/^\s+$//gm; #remove empty lines
     $result =~ s/%/\\%/g;   #corrects %
     $result =~ s/(\s)+/$1/g; #removes more than one empty space
     $result =~ s/\\\\\s*(\\vskip)/ $1/gm;
+#-- Do all of eps figures exist?
+    my $notepslist = '';
+    my $end_eps = index($result,'.eps}',0);
+    while ($end_eps != -1) {
+	my $start_eps = rindex($result,'{',$end_eps);
+        my $start_path = rindex($result,'\graphicspath{',$start_eps);
+        my $end_path = index($result,'}',$start_path);
+	my $chunk_eps = substr($result,$start_eps+1,$end_eps-$start_eps+3);
+	my $chunk_path = substr($result,$start_path+14,$end_path-$start_path-14);
+	$chunk_path =~ s/^{*//g;
+	unless (-s $chunk_path.$chunk_eps) {
+	    $notepslist .= $chunk_path.$chunk_eps;
+	}
+	 $end_eps = index($result,'.eps}',$end_eps+5);
+    }
 #-- writing .tex file in prtspool 
     my $temp_file;
     $filename = "/home/httpd/prtspool/$ENV{'user.name'}$ENV{'user.domain'}temp$ENV{'user.login.time'}.tex";
@@ -240,7 +252,7 @@
     } 
     print $temp_file $result;
 $r->print(<<FINALEND);
-<meta http-equiv="Refresh" content="0; url=/cgi-bin/printout.pl?$filename&$laystyle">
+<meta http-equiv="Refresh" content="0; url=/cgi-bin/printout.pl?$filename&$laystyle&$notepslist">
 </body>
 </html>
 FINALEND