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

foxr foxr@source.lon-capa.org
Mon, 19 Apr 2010 10:29:40 -0000


foxr		Mon Apr 19 10:29:40 2010 EDT

  Modified files:              
    /loncom/interface	lonprintout.pm 
  Log:
  Fix for BZ 6240... \special{papersize} sometimes gets printed sometimes causes
  print errors and sometimes works.. Now I _think_ a4 paper printing works
  for all cases.
  
  
  
Index: loncom/interface/lonprintout.pm
diff -u loncom/interface/lonprintout.pm:1.574 loncom/interface/lonprintout.pm:1.575
--- loncom/interface/lonprintout.pm:1.574	Wed Mar 31 14:37:36 2010
+++ loncom/interface/lonprintout.pm	Mon Apr 19 10:29:40 2010
@@ -2,7 +2,7 @@
 # The LearningOnline Network
 # Printout
 #
-# $Id: lonprintout.pm,v 1.574 2010/03/31 14:37:36 wenzelju Exp $
+# $Id: lonprintout.pm,v 1.575 2010/04/19 10:29:40 foxr Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -306,7 +306,14 @@
 
     my ($text) = @_;
 
-    $text =~ s/\\begin{document}/\\begin{document}{\\$font_size/;
+    # There appear to be cases where the font directive is empty.. in which
+    # case the first substituion would  insert a spurious \ oh happy day.
+    # as this has been the cause of much mystery and hair pulling _sigh_
+
+    if ($font_size ne '') {
+
+	$text =~ s/\\begin{document}/\\begin{document}{\\$font_size/;
+    }
     $text =~ s/\\end{document}/}\\end{document}/;
     return $text;
 
@@ -1309,7 +1316,13 @@
 	    $text =~ s/\\pagestyle{fancy}\\rhead{}\\chead{}\s*\\begin{document}/\\textheight = $textheight\\oddsidemargin = $evenoffset\n\\evensidemargin = $evenoffset $topmargintoinsert\\textwidth= $textwidth\\newlength{\\minipagewidth}\n\\setlength{\\minipagewidth}{\\textwidth\/\$number_of_columns-0\.2cm}\\renewcommand{\\ref}{\\keephidden\}\\pagestyle{fancy}\\rhead{}\\chead{}\\usepackage{booktabs}\\begin{document}\\voffset=-0\.8cm\n\\setcounter{page}{1}  \\vskip 5 mm\n /;
 	}
 	if ($papersize eq 'a4') {
-	    $text =~ s/(\\begin{document})/$1\\special\{papersize=210mm,297mm\}/;
+	    my $papersize_text;
+	    if ($perm{'pav'}) {
+		$papersize_text = '\\special{papersize=210mm,297mm}';
+	    } else {
+		$papersize_text = '\special{papersize=210mm,297mm}';
+	    }
+	    $text =~ s/(\\begin{document})/$1$papersize_text/;
 	}
     }
     if ($tableofcontents eq 'yes') {$text=~s/(\\setcounter\{page\}\{1\})/$1 \\tableofcontents\\newpage /;}