[LON-CAPA-cvs] cvs: rat / lonpage.pm loncom/homework outputtags.pm loncom/homework/caparesponse caparesponse.pm loncom/interface lonprintout.pm loncom/xml londefdef.pm lonxml.pm

raeburn raeburn at source.lon-capa.org
Tue Aug 9 19:43:51 EDT 2016


raeburn		Tue Aug  9 23:43:51 2016 EDT

  Modified files:              
    /loncom/xml	londefdef.pm lonxml.pm 
    /loncom/homework	outputtags.pm 
    /loncom/homework/caparesponse	caparesponse.pm 
    /loncom/interface	lonprintout.pm 
    /rat	lonpage.pm 
  Log:
  - Eliminate "Unescaped left brace in regex is deprecated," warnings
    in error_log with perl 5.22 (Ubuntu 16 LTS).
  
  
-------------- next part --------------
Index: loncom/xml/londefdef.pm
diff -u loncom/xml/londefdef.pm:1.459 loncom/xml/londefdef.pm:1.460
--- loncom/xml/londefdef.pm:1.459	Fri Jul  1 19:59:25 2016
+++ loncom/xml/londefdef.pm	Tue Aug  9 23:43:38 2016
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # Tags Default Definition Module 
 #
-# $Id: londefdef.pm,v 1.459 2016/07/01 19:59:25 raeburn Exp $
+# $Id: londefdef.pm,v 1.460 2016/08/09 23:43:38 raeburn Exp $
 # 
 #
 # Copyright Michigan State University Board of Trustees
@@ -2077,8 +2077,8 @@
 
 sub item_cleanup {
     my $item=&Apache::lonxml::endredirection();
-    $item=~s/\\begin{center}//g;
-    $item=~s/\\end{center}//g;
+    $item=~s/\\begin\{center}//g;
+    $item=~s/\\end\{center}//g;
     return $item;
 }
 
@@ -4456,17 +4456,17 @@
     $garbage=~s/^\s+(\S.*)/$1/;#space before 
     $garbage=~s/(.*\S)\s+$/$1/;#space after 
     $garbage=~s/(\s)+/$1/;#only one space
-    $garbage=~s/(\\begin{([^\}]+)}|\\end{([^\}]+)})//g;#remove LaTeX \begin{...} and \end{...}
-    $garbage=~s/(\$\_\{|\$\_|\$\^{|\$\^|\}\$)//g;#remove $_{,$_,$^{,$^,}$
+    $garbage=~s/(\\begin\{([^\}]+)}|\\end\{([^\}]+)})//g;#remove LaTeX \begin{...} and \end{...}
+    $garbage=~s/(\$\_\{|\$\_|\$\^\{|\$\^|\}\$)//g;#remove $_{,$_,$^{,$^,}$
     $garbage=~s/([^\\])\$/$1/g;#$
-    $garbage=~s/(\\ensuremath\{\_\{|\\ensuremath\{\_|\\ensuremath\{\^{|\\ensuremath\{\^|\})//g;#remove \ensuremath{...}
+    $garbage=~s/(\\ensuremath\{\_\{|\\ensuremath\{\_|\\ensuremath\{\^\{|\\ensuremath\{\^|\})//g;#remove \ensuremath{...}
    $garbage=~s/(\\alpha|\\beta|\\gamma|\\delta|\\epsilon|\\verepsilon|\\zeta|\\eta|\\theta|\\vartheta|\\iota|\\kappa|\\lambda|\\mu|\\nu|\\xi|\\pi|\\varpi|\\rho|\\varrho|\\sigma|\\varsigma|\\tau|\\upsilon|\\phi|\\varphi|\\chi|\\psi|\\omega|\\Gamma|\\Delta|\\Theta|\\Lambda|\\Xi|\\Pi|\\Sigma|\\Upsilon|\\Phi|\\Psi|\\Omega)/1/g;
     $garbage=~s/(\\pm|\\mp|\\times|\\div|\\cdot|\\ast|\\star|\\dagger|\\ddagger|\\amalg|\\cap|\\cup|\\uplus|\\sqcap|\\sqcup|\\vee|\\wedge|\\oplus|\\ominus|\\otimes|\\circ|\\bullet|\\diamond|\\lhd|\\rhd|\\unlhd|\\unrhd|\\oslash|\\odot|\\bigcirc|\\Box|\\Diamond|\\bigtriangleup|\\bigtriangledown|\\triangleleft|\\triangleright|\\setminus|\\wr)/1/g;
     $garbage=~s/(\\le|\\ll|\\leq|\\ge|\\geq|\\gg|\\neq|\\doreq|\\sim|\\simeq|\\subset|\\subseteq|\\sqsubset|\\sqsubseteq|\\in|\\vdash|\\models|\\supset|\\supseteq|\\sqsupset|\\sqsupseteq|\\ni|\\dash|\\perp|\\approx|\\cong|\\equiv|\\propto|\\prec|\\preceq|\\parallel|\\asymp|\\smile|\\frown|\\bowtie|\\succ|\\succeq|\\mid)/1/g;
     $garbage=~s/(\\not<|\\\\not\\le|\\not\\prec|\\not\\preceq|\\not\\subset|\\not\\subseteq|\\not\\sqsubseteq|\\not\\in|\\not>|\\not\\ge|\\not\\succ|\\notsucceq|\\not\\supset|\\notsupseteq|\\not\\sqsupseteq|\\notin|\\not=|\\not\\equiv|\\not\\sim|\\not\\simeq|\\not\\approx|\\not\\cong|\\not\\asymp)/1/g;
     $garbage=~s/(\\leftarrow|\\gets|\\Leftarrow|\\rightarrow|\\to|\\Rightarrow|\\leftrightarrow|\\Leftrightarrow|\\mapsto|\\hookleftarrow|\\leftharpoonup|\\leftkarpoondown|\\rightleftharpoons|\\longleftarrow|\\Longleftarrow|\\longrightarrow|\\Longrightarrow|\\longleftrightarrow|\\Longleftrightarrow|\\longmapsto|\\hookrightarrow|\\rightharpoonup|\\rightharpoondown|\\uparrow|\\Uparrow|\\downarrow|\\Downarrow|\\updownarrow|\\Updownarrow|\\nearrow|\\searrow|\\swarrow|\\nwarrow)/11/g;
     $garbage=~s/(\\aleph|\\hbar|\\imath|\\jmath|\\ell|\\wp|\\Re|\\Im|\\mho|\\prime|\\emptyset|\\nabla|\\surd|\\partial|\\top|\\bot|\\vdash|\\dashv|\\forall|\\exists|\\neg|\\flat|\\natural|\\sharp|\\\||\\angle|\\backslash|\\Box|\\Diamond|\\triangle|\\clubsuit|\\diamondsuit|\\heartsuit|\\spadesuit|\\Join|\\infty)/11/g;
-    $garbage=~s/(\\hat{([^}]+)}|\\check{([^}]+)}|\\dot{([^}]+)}|\\breve{([^}]+)}|\\acute{([^}]+)}|\\ddot{([^}]+)}|\\grave{([^}]+)}|\\tilde{([^}]+)}|\\mathring{([^}]+)}|\\bar{([^}]+)}|\\vec{([^}]+)})/$1/g;
+    $garbage=~s/(\\hat\{([^}]+)}|\\check\{([^}]+)}|\\dot\{([^}]+)}|\\breve\{([^}]+)}|\\acute\{([^}]+)}|\\ddot\{([^}]+)}|\\grave\{([^}]+)}|\\tilde\{([^}]+)}|\\mathring\{([^}]+)}|\\bar\{([^}]+)}|\\vec\{([^}]+)})/$1/g;
     #remove some other LaTeX command
     $garbage=~s|\\(\w+)\\|\\|g;	 
     $garbage=~s|\\(\w+)(\s*)|$2|g;	 	 
Index: loncom/xml/lonxml.pm
diff -u loncom/xml/lonxml.pm:1.555 loncom/xml/lonxml.pm:1.556
--- loncom/xml/lonxml.pm:1.555	Sat Feb 20 00:12:45 2016
+++ loncom/xml/lonxml.pm	Tue Aug  9 23:43:39 2016
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # XML Parser Module 
 #
-# $Id: lonxml.pm,v 1.555 2016/02/20 00:12:45 raeburn Exp $
+# $Id: lonxml.pm,v 1.556 2016/08/09 23:43:39 raeburn Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -345,9 +345,9 @@
     } else {
 	$string=~s/\\/\\ensuremath{\\backslash}/g;
 	$string=~s/\\\%|\%/\\\%/g;
-	$string=~s/\\{|{/\\{/g;
+	$string=~s/\\\{|\{/\\{/g;
 	$string=~s/\\}|}/\\}/g;
-	$string=~s/\\ensuremath\\{\\backslash\\}/\\ensuremath{\\backslash}/g;
+	$string=~s/\\ensuremath\\\{\\backslash\\}/\\ensuremath{\\backslash}/g;
 	$string=~s/\\\$|\$/\\\$/g;
 	$string=~s/\\\_|\_/\\\_/g;
         $string=~s/([^\\]|^)(\~|\^)/$1\\$2\\strut /g;
Index: loncom/homework/outputtags.pm
diff -u loncom/homework/outputtags.pm:1.57 loncom/homework/outputtags.pm:1.58
--- loncom/homework/outputtags.pm:1.57	Wed Feb 24 12:14:45 2010
+++ loncom/homework/outputtags.pm	Tue Aug  9 23:43:42 2016
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA 
 # tags that create controlled output
 #
-# $Id: outputtags.pm,v 1.57 2010/02/24 12:14:45 foxr Exp $
+# $Id: outputtags.pm,v 1.58 2016/08/09 23:43:42 raeburn Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -78,8 +78,8 @@
 
     # restore the <>'s:
 
-    $string =~ s/\\ensuremath{<}/</g;
-    $string =~ s/\\ensuremath{>}/>/g;
+    $string =~ s/\\ensuremath\{<}/</g;
+    $string =~ s/\\ensuremath\{>}/>/g;
 
 
     # Substitute the tags:
Index: loncom/homework/caparesponse/caparesponse.pm
diff -u loncom/homework/caparesponse/caparesponse.pm:1.257 loncom/homework/caparesponse/caparesponse.pm:1.258
--- loncom/homework/caparesponse/caparesponse.pm:1.257	Thu Feb 18 18:40:05 2016
+++ loncom/homework/caparesponse/caparesponse.pm	Tue Aug  9 23:43:45 2016
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # caparesponse definition
 #
-# $Id: caparesponse.pm,v 1.257 2016/02/18 18:40:05 raeburn Exp $
+# $Id: caparesponse.pm,v 1.258 2016/08/09 23:43:45 raeburn Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -894,7 +894,7 @@
     my $cell_width=0;
     foreach my $member (@$rbubble_values) {
 	my $cell_width_real=0;
-	if ($member=~/(\+|-)?(\d*)\.?(\d*)\s*\$?\\times\s*10\^{(\+|-)?(\d+)}\$?/) {
+	if ($member=~/(\+|-)?(\d*)\.?(\d*)\s*\$?\\times\s*10\^\{(\+|-)?(\d+)}\$?/) {
 	    $cell_width_real=(length($2)+length($3)+length($5)+7)*$scale;
 	} elsif ($member=~/(\d*)\.?(\d*)(E|e)(\+|-)?(\d*)/) {
 	    $cell_width_real=(length($1)+length($2)+length($5)+9)*$scale;
Index: loncom/interface/lonprintout.pm
diff -u loncom/interface/lonprintout.pm:1.648 loncom/interface/lonprintout.pm:1.649
--- loncom/interface/lonprintout.pm:1.648	Thu Jan 28 19:37:42 2016
+++ loncom/interface/lonprintout.pm	Tue Aug  9 23:43:48 2016
@@ -1,7 +1,7 @@
 # The LearningOnline Network
 # Printout
 #
-# $Id: lonprintout.pm,v 1.648 2016/01/28 19:37:42 damieng Exp $
+# $Id: lonprintout.pm,v 1.649 2016/08/09 23:43:48 raeburn Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -845,9 +845,9 @@
 
     if ($font_size ne '') {
 
-	$text =~ s/\\begin{document}/\\begin{document}{\\$font_size/;
+	$text =~ s/\\begin\{document}/\\begin{document}{\\$font_size/;
     }
-    $text =~ s/\\end{document}/}\\end{document}/;
+    $text =~ s/\\end\{document}/}\\end{document}/;
     return $text;
 
 
@@ -924,13 +924,13 @@
 sub collect_languages {
     my $doc = shift;
     my %languages;
-    while ($doc =~ /\\selectlanguage{(\w+)}/mg) {
+    while ($doc =~ /\\selectlanguage\{(\w+)}/mg) {
 	$languages{$1} = 1;	# allows us to request each language exactly once.
     }
     my @lang_list = (keys(%languages)); # List of unique languages
     if (scalar @lang_list) {
 	my $babel_header = '\usepackage[' . join(',', @lang_list) .']{babel}'. "\n";
-	$doc =~ s/\\begin{document}/$babel_header\\begin{document}/;
+	$doc =~ s/\\begin\{document}/$babel_header\\begin{document}/;
     }
     return $doc;
 }
@@ -1327,8 +1327,8 @@
 
 sub latex_header_footer_remove {
     my $text = shift;
-    $text =~ s/\\end{document}//;
-    $text =~ s/\\documentclass([^&]*)\\begin{document}//;
+    $text =~ s/\\end\{document}//;
+    $text =~ s/\\documentclass([^&]*)\\begin\{document}//;
     return $text;
 }
 #
@@ -1878,12 +1878,12 @@
 	$fancypagestatement="\\rhead{}\\chead{}\\lhead{$header_text}";
     }
     if ($layout eq 'album') {
-	    $text =~ s/\\begin{document}/\\setlength{\\oddsidemargin}{$oddoffset}\\setlength{\\evensidemargin}{$evenoffset}$topmargintoinsert\n\\setlength{\\textwidth}{$textwidth}\\setlength{\\textheight}{$textheight}\\setlength{\\textfloatsep}{8pt plus 2\.0pt minus 4\.0pt}\n\\newlength{\\minipagewidth}\\setlength{\\minipagewidth}{\\textwidth\/\$number_of_columns-0\.2cm}\\usepackage{fancyhdr}\\addtolength{\\headheight}{\\baselineskip}\n\\pagestyle{fancy}$fancypagestatement\\usepackage{booktabs}\\begin{document}\\voffset=-0\.8 cm\\setcounter{page}{1}\n /;
+	    $text =~ s/\\begin\{document}/\\setlength{\\oddsidemargin}{$oddoffset}\\setlength{\\evensidemargin}{$evenoffset}$topmargintoinsert\n\\setlength{\\textwidth}{$textwidth}\\setlength{\\textheight}{$textheight}\\setlength{\\textfloatsep}{8pt plus 2\.0pt minus 4\.0pt}\n\\newlength{\\minipagewidth}\\setlength{\\minipagewidth}{\\textwidth\/\$number_of_columns-0\.2cm}\\usepackage{fancyhdr}\\addtolength{\\headheight}{\\baselineskip}\n\\pagestyle{fancy}$fancypagestatement\\usepackage{booktabs}\\begin{document}\\voffset=-0\.8 cm\\setcounter{page}{1}\n /;
     } elsif ($layout eq 'book') {
 	if ($choice ne 'All class print') { 
-	    $text =~ s/\\begin{document}/\\textheight $textheight\\oddsidemargin = $evenoffset\\evensidemargin = $evenoffset $topmargintoinsert\n\\textwidth= $textwidth\\newlength{\\minipagewidth}\\setlength{\\minipagewidth}{\\textwidth\/\$number_of_columns-0\.2cm}\n\\renewcommand{\\ref}{\\keephidden\}\\usepackage{fancyhdr}\\addtolength{\\headheight}{\\baselineskip}\\pagestyle{fancy}$fancypagestatement\\usepackage{booktabs}\\begin{document}\n\\voffset=-0\.8 cm\\setcounter{page}{1}\n/;
+	    $text =~ s/\\begin\{document}/\\textheight $textheight\\oddsidemargin = $evenoffset\\evensidemargin = $evenoffset $topmargintoinsert\n\\textwidth= $textwidth\\newlength{\\minipagewidth}\\setlength{\\minipagewidth}{\\textwidth\/\$number_of_columns-0\.2cm}\n\\renewcommand{\\ref}{\\keephidden\}\\usepackage{fancyhdr}\\addtolength{\\headheight}{\\baselineskip}\\pagestyle{fancy}$fancypagestatement\\usepackage{booktabs}\\begin{document}\n\\voffset=-0\.8 cm\\setcounter{page}{1}\n/;
 	} else {
-	    $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 /;
+	    $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') {
 	    my $papersize_text;
@@ -1892,13 +1892,13 @@
 	    } else {
 		$papersize_text = '\special{papersize=210mm,297mm}';
 	    }
-	    $text =~ s/(\\begin{document})/$1$papersize_text/;
+	    $text =~ s/(\\begin\{document})/$1$papersize_text/;
 	}
     }
     if ($tableofcontents eq 'yes') {$text=~s/(\\setcounter\{page\}\{1\})/$1 \\tableofcontents\\newpage /;}
     if ($indexlist eq 'yes') {
-	$text=~s/(\\begin{document})/\\makeindex $1/;
-	$text=~s/(\\end{document})/\\strut\\\\\\strut\\printindex $1/;
+	$text=~s/(\\begin\{document})/\\makeindex $1/;
+	$text=~s/(\\end\{document})/\\strut\\\\\\strut\\printindex $1/;
     }
     return $text;
 }
@@ -1907,12 +1907,12 @@
 sub page_cleanup {
     my $result = shift;	
  
-    $result =~ m/\\end{document}(\d*)$/;
+    $result =~ m/\\end\{document}(\d*)$/;
     my $number_of_columns = $1;
     my $insert = '{';
     for (my $id=1;$id<=$number_of_columns;$id++) { $insert .='l'; }
     $insert .= '}';
-    $result =~ s/(\\begin{longtable})INSERTTHEHEADOFLONGTABLE\\endfirsthead\\endhead/$1$insert/g;
+    $result =~ s/(\\begin\{longtable})INSERTTHEHEADOFLONGTABLE\\endfirsthead\\endhead/$1$insert/g;
     $result =~ s/&\s*REMOVETHEHEADOFLONGTABLE\\\\/\\\\/g;
     return $result,$number_of_columns;
 }
@@ -1948,16 +1948,16 @@
 
 sub latex_corrections {
     my ($number_of_columns,$result,$selectionmade,$answer_mode) = @_;
-#    $result =~ s/\\includegraphics{/\\includegraphics\[width=\\minipagewidth\]{/g;
+#    $result =~ s/\\includegraphics\{/\\includegraphics\[width=\\minipagewidth\]{/g;
     my $copyright = &copyright_line();
     if ($selectionmade eq '1' || $answer_mode eq 'only') {
-	$result =~ s/(\\end{document})/\\strut\\vskip 0 mm $copyright $end_of_student $1/;
+	$result =~ s/(\\end\{document})/\\strut\\vskip 0 mm $copyright $end_of_student $1/;
     } else {
-	$result =~ s/(\\end{document})/\\strut\\vspace\*{-4 mm}\\newline $copyright $end_of_student $1/;
+	$result =~ s/(\\end\{document})/\\strut\\vspace\*{-4 mm}\\newline $copyright $end_of_student $1/;
     }
     $result =~ s/\$number_of_columns/$number_of_columns/g;
-    $result =~ s/(\\end{longtable}\s*)(\\strut\\newline\\noindent\\makebox\[\\textwidth\/$number_of_columns\]\[b\]{\\hrulefill})/$2$1/g;
-    $result =~ s/(\\end{longtable}\s*)\\strut\\newline/$1/g;
+    $result =~ s/(\\end\{longtable}\s*)(\\strut\\newline\\noindent\\makebox\[\\textwidth\/$number_of_columns\]\[b\]{\\hrulefill})/$2$1/g;
+    $result =~ s/(\\end\{longtable}\s*)\\strut\\newline/$1/g;
 #-- LaTeX corrections     
     my $first_comment = index($result,'<!--',0);
     while ($first_comment != -1) {
@@ -2215,7 +2215,7 @@
 		my $answer=&ssi_with_retries($urlp,$ssi_retry_count, %answerform);
 
 		if ($helper->{'VARS'}->{'ANSWER_TYPE'} eq 'no') {
-		    $texversion=~s/(\\keephidden{ENDOFPROBLEM})/$answer$1/;
+		    $texversion=~s/(\\keephidden\{ENDOFPROBLEM})/$answer$1/;
 		} else {
 		    $texversion= &print_latex_header($helper->{'VARS'}->{'LATEX_TYPE'});
 		    if ($helper->{'VARS'}->{'construction'} ne '1') {
@@ -2241,7 +2241,7 @@
 
 	    if ($helper->{'VARS'}->{'PRINT_ANNOTATIONS'} eq 'yes') {
 		my $annotation .= &annotate($currentURL);
-		$texversion =~ s/(\\keephidden{ENDOFPROBLEM})/$annotation$1/;
+		$texversion =~ s/(\\keephidden\{ENDOFPROBLEM})/$annotation$1/;
 	    }
 	    
 	    if ($helper->{'VARS'}->{'TABLE_INDEX'} eq 'yes') {
@@ -2533,7 +2533,7 @@
 		$resources_printed .= $urlp.':';
 		my $answer=&ssi_with_retries($urlp, $ssi_retry_count, %answerform);
 		if ($helper->{'VARS'}->{'ANSWER_TYPE'} eq 'no') {
-		    $texversion=~s/(\\keephidden{ENDOFPROBLEM})/$answer$1/;
+		    $texversion=~s/(\\keephidden\{ENDOFPROBLEM})/$answer$1/;
 		} else {
 		    # If necessary, encapsulate answer in minipage:
 		    
@@ -2796,7 +2796,7 @@
 		
 
 		if ($helper->{'VARS'}->{'ANSWER_TYPE'} eq 'no') {
-		    $texversion=~s/(\\keephidden{ENDOFPROBLEM})/$answer$1/;
+		    $texversion=~s/(\\keephidden\{ENDOFPROBLEM})/$answer$1/;
 		} else {
 		    $texversion=&print_latex_header($helper->{'VARS'}->{'LATEX_TYPE'});
 		    if ($helper->{'VARS'}->{'construction'} ne '1') {
@@ -2823,7 +2823,7 @@
 
 	    if ($helper->{'VARS'}->{'PRINT_ANNOTATIONS'} eq 'yes') {
 		my $annotation .= &annotate($currentURL);
-		$texversion =~ s/(\\keephidden{ENDOFPROBLEM})/$annotation$1/;
+		$texversion =~ s/(\\keephidden\{ENDOFPROBLEM})/$annotation$1/;
 	    }
 
 
@@ -2854,7 +2854,7 @@
 		my $texversion = &ssi_with_retries($currentURL, $ssi_retry_count, %form);
 		if ($helper->{'VARS'}->{'PRINT_ANNOTATIONS'} eq 'yes') {
 		    my $annotation = &annotate($currentURL);
-		    $texversion    =~ s/(\\end{document})/$annotation$1/;
+		    $texversion    =~ s/(\\end\{document})/$annotation$1/;
 		}
 		$result .= $texversion;
 	} elsif ($cleanURL =~/\.tex$/) {
@@ -2865,7 +2865,7 @@
 	    $result = &fetch_raw_resource($currentURL);
 	    if ($helper->{'VARS'}->{'PRINT_ANNOTATIONS'} eq 'yes') {
 		my $annotation = &annotate($currentURL);
-		$result =~ s/(\\end{document})/$annotation$1/;
+		$result =~ s/(\\end\{document})/$annotation$1/;
 	    }
 
 	    $do_postprocessing = 0; # Don't massage the result.
@@ -2972,7 +2972,7 @@
 		if ($urlp=~/\.page$/) {
 		    ($texversion,my $number_of_columns_page) = &page_cleanup($texversion);
 		    if ($number_of_columns_page > $number_of_columns) {$number_of_columns=$number_of_columns_page;} 
-		    $texversion =~ s/\\end{document}\d*/\\end{document}/;
+		    $texversion =~ s/\\end\{document}\d*/\\end{document}/;
 		    $flag_page_in_sequence = 'YES';
 		}
 
@@ -2987,21 +2987,21 @@
 		    &Apache::lonxml::restore_problem_counter();
 		    my $answer=&ssi_with_retries($urlp, $ssi_retry_count, %answerform);
                     if ($urlp =~ /\.page$/) {
-                        $answer =~ s/\\end{document}(\d*)$//;
+                        $answer =~ s/\\end\{document}(\d*)$//;
                     }
 		    if ($helper->{'VARS'}->{'ANSWER_TYPE'} eq 'no') {
                         if ($urlp =~ /\.page$/) {
-                            my @probs = split(/\\keephidden{ENDOFPROBLEM}/,$texversion);
+                            my @probs = split(/\\keephidden\{ENDOFPROBLEM}/,$texversion);
                             my $lastprob = pop(@probs);
                             $texversion = join('\keephidden{ENDOFPROBLEM}', at probs).
                             $answer.'\keephidden{ENDOFPROBLEM}'.$lastprob;
                         } else {
-                            $texversion=~s/(\\keephidden{ENDOFPROBLEM})/$answer$1/;
+                            $texversion=~s/(\\keephidden\{ENDOFPROBLEM})/$answer$1/;
                         }
 		    } else {
 			if ($urlp=~/$LONCAPA::assess_page_re/) {
 			    $texversion=&print_latex_header($helper->{'VARS'}->{'LATEX_TYPE'});
-#			    $texversion =~ s/\\begin{document}//; # FIXME
+#			    $texversion =~ s/\\begin\{document}//; # FIXME
 			    my $title = &Apache::lonnet::gettitle($master_seq[$i]);
 			    $title = &Apache::lonxml::latex_special_symbols($title);
 			    my $body ='\vskip 0 mm \noindent\textbf{'.$title.'}\vskip 0 mm ';
@@ -3017,13 +3017,13 @@
 		}
 		if ($helper->{'VARS'}->{'PRINT_ANNOTATIONS'} eq 'yes') {
 		    my $annotation .= &annotate($urlp);
-		    $texversion =~ s/(\\keephidden{ENDOFPROBLEM})/$annotation$1/;
+		    $texversion =~ s/(\\keephidden\{ENDOFPROBLEM})/$annotation$1/;
 		}
 
 		if ($flag_latex_header_remove ne 'NO') {
 		    $texversion = &latex_header_footer_remove($texversion);
 		} else {
-		    $texversion =~ s/\\end{document}//;
+		    $texversion =~ s/\\end\{document}//;
 		}
 		if ($helper->{'VARS'}->{'TABLE_INDEX'} eq 'yes') {
 		    $texversion=&IndexCreation($texversion,$urlp);
@@ -3052,13 +3052,13 @@
 		my $texversion = &ssi_with_retries($urlp, $ssi_retry_count, %form);
 		if ($helper->{'VARS'}->{'PRINT_ANNOTATIONS'} eq 'yes') {
 		    my $annotation = &annotate($urlp);
-		    $texversion =~ s/(\\end{document)/$annotation$1/;
+		    $texversion =~ s/(\\end\{document)/$annotation$1/;
 		}
 
 		if ($flag_latex_header_remove ne 'NO') {
 		    $texversion = &latex_header_footer_remove($texversion);
 		} else {	
-		    $texversion =~ s/\\end{document}/\\vskip 0\.5mm\\noindent\\makebox\[\\textwidth\/\$number_of_columns\]\[b\]\{\\hrulefill\}/;
+		    $texversion =~ s/\\end\{document}/\\vskip 0\.5mm\\noindent\\makebox\[\\textwidth\/\$number_of_columns\]\[b\]\{\\hrulefill\}/;
 		}
 		$result .= $texversion;
 		$flag_latex_header_remove = 'YES'; 
@@ -3089,7 +3089,7 @@
 		if ($flag_latex_header_remove ne 'NO') {
 		    $texversion = &latex_header_footer_remove($texversion);
 		} else {
-		    $texversion =~ s/\\end{document}//;
+		    $texversion =~ s/\\end\{document}//;
 		}
 		$result .= $texversion;
 		$flag_latex_header_remove = 'YES';   
@@ -3100,7 +3100,7 @@
 	}
 	&Apache::lonxml::clear_problem_counter();
 	if ($flag_page_in_sequence eq 'YES') {
-	    $result =~ s/\\usepackage{calc}/\\usepackage{calc}\\usepackage{longtable}/;
+	    $result =~ s/\\usepackage\{calc}/\\usepackage{calc}\\usepackage{longtable}/;
 	}	
 	$result .= '\end{document}';
      } elsif (($print_type eq 'problems_for_students')           ||
@@ -3379,7 +3379,7 @@
 		    $resources_printed .= $urlp.':';
 		    my $answer=&ssi_with_retries($urlp, $ssi_retry_count, %answerform);
 		    if ($helper->{'VARS'}->{'ANSWER_TYPE'} eq 'no') {
-			$texversion=~s/(\\keephidden{ENDOFPROBLEM})/$answer$1/;
+			$texversion=~s/(\\keephidden\{ENDOFPROBLEM})/$answer$1/;
 		    } else {
 			$texversion=&print_latex_header($helper->{'VARS'}->{'LATEX_TYPE'});
 			if ($helper->{'VARS'}->{'construction'} ne '1') {
@@ -3396,11 +3396,11 @@
                 #this chunk is responsible for printing the path to problem
 
 		my $newurlp=&path_to_problem($urlp,$LaTeXwidth);
-		$texversion =~ s/(\\begin{minipage}{\\textwidth})/$1 $newurlp/;
+		$texversion =~ s/(\\begin\{minipage}\{\\textwidth})/$1 $newurlp/;
 		if ($flag_latex_header_remove ne 'NO') {
 		    $texversion = &latex_header_footer_remove($texversion);
 		} else {
-		    $texversion =~ s/\\end{document}//;
+		    $texversion =~ s/\\end\{document}//;
 		}
 		if ($helper->{'VARS'}->{'TABLE_INDEX'} eq 'yes') {
 		    $texversion=&IndexCreation($texversion,$urlp);
@@ -3668,7 +3668,7 @@
                         if ($remove_latex_header eq 'YES') {
                             $rendered = &latex_header_footer_remove($rendered);
                         } else {
-                            $rendered =~ s/\\end{document}\d*//;
+                            $rendered =~ s/\\end\{document}\d*//;
                         }
                     }
 		    if(($helper->{'VARS'}->{'ANSWER_TYPE'} eq 'no') ||
@@ -3685,13 +3685,13 @@
 			my $ansrendered = &Apache::loncommon::get_student_answers($curresline,$username,$userdomain,$env{'request.course.id'},%answerenv);
 
 			if ($helper->{'VARS'}->{'ANSWER_TYPE'} eq 'no') {
-			    $rendered=~s/(\\keephidden{ENDOFPROBLEM})/$ansrendered$1/;
+			    $rendered=~s/(\\keephidden\{ENDOFPROBLEM})/$ansrendered$1/;
 			} else {
 
 			    
 			    my $header =&print_latex_header($helper->{'VARS'}->{'LATEX_TYPE'});
                             unless ($helper->{'VARS'}->{'ANSWER_TYPE'} eq 'only') {
-                                $header =~ s/\\begin{document}//;     #<<<<<
+                                $header =~ s/\\begin\{document}//;     #<<<<<
                             }
 			    my $title = &Apache::lonnet::gettitle($curresline);
 			    $title = &Apache::lonxml::latex_special_symbols($title);
@@ -3705,13 +3705,13 @@
 		    if ($helper->{'VARS'}->{'PRINT_ANNOTATIONS'} eq 'yes') {
 			my $url = &Apache::lonnet::clutter($res_url);
 			my $annotation = &annotate($url);
-			$rendered =~  s/(\\keephidden{ENDOFPROBLEM})/$annotation$1/;
+			$rendered =~  s/(\\keephidden\{ENDOFPROBLEM})/$annotation$1/;
 		    }
 		    my $junk;
 		    if ($remove_latex_header eq 'YES') {
 			$rendered = &latex_header_footer_remove($rendered);
 		    } else {
-			$rendered =~ s/\\end{document}//;
+			$rendered =~ s/\\end\{document}//;
 		    }
 		    $current_output .= $rendered;		    
 		} elsif ($res_url=~/\/(smppg|syllabus|aboutme|bulletinboard)$/) {
@@ -3723,12 +3723,12 @@
 		    if ($helper->{'VARS'}->{'PRINT_ANNOTATIONS'} eq 'yes') {
 			my $url = &Apache::lonnet::clutter($res_url);
 			my $annotation = &annotate($url);
-			$annotation    =~ s/(\\end{document})/$annotation$1/;
+			$annotation    =~ s/(\\end\{document})/$annotation$1/;
 		    }
 		    if ($remove_latex_header eq 'YES') {
 			$rendered = &latex_header_footer_remove($rendered);
 		    } else {
-			$rendered =~ s/\\end{document}//;
+			$rendered =~ s/\\end\{document}//;
 		    }
 		    $current_output .= $rendered.'\vskip 0.5mm\noindent\makebox[\textwidth/$number_of_columns][b]{\hrulefill}\strut \vskip 0 mm \strut ';
 		} elsif($res_url = ~/\.pdf$/) {
@@ -3743,7 +3743,7 @@
 		    if ($remove_latex_header ne 'NO') {
 			$rendered = &latex_header_footer_remove($rendered);
 		    } else {
-			$rendered =~ s/\\end{document}//;
+			$rendered =~ s/\\end\{document}//;
 		    }
 		    $current_output .= $rendered;
 		}
@@ -3807,7 +3807,7 @@
     my $header_start = ($columns_in_format == 1) ? '\lhead' : '\fancyhead[LO]';
     my $newheader = $header_start.'{'.$header_line.'}';
     if ($current_output=~/\\documentclass/) {
-	$current_output =~ s/\\begin{document}/\\setlength{\\topmargin}{1cm} \\begin{document}\\noindent\\parbox{\\minipagewidth}{\\noindent$newheader$namepostfix}\\vskip 5 mm /;
+	$current_output =~ s/\\begin\{document}/\\setlength{\\topmargin}{1cm} \\begin{document}\\noindent\\parbox{\\minipagewidth}{\\noindent$newheader$namepostfix}\\vskip 5 mm /;
 
     } else {
 	my $blankpages = 
Index: rat/lonpage.pm
diff -u rat/lonpage.pm:1.117 rat/lonpage.pm:1.118
--- rat/lonpage.pm:1.117	Mon Jul 18 19:29:24 2016
+++ rat/lonpage.pm	Tue Aug  9 23:43:51 2016
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # Page Handler
 #
-# $Id: lonpage.pm,v 1.117 2016/07/18 19:29:24 raeburn Exp $
+# $Id: lonpage.pm,v 1.118 2016/08/09 23:43:51 raeburn Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -355,8 +355,8 @@
                               my $output=Apache::lonnet::ssi($src,%posthash);
 			      $output=~s|//(\s*<!--)? BEGIN LON-CAPA Internal.+?// END LON-CAPA Internal\s*(-->)?\s||gs;
                               if (($target eq 'tex') || ($target eq 'tex_answer')) {
-				  $output =~ s/^([^&]+)\\begin{document}//;
-				  $output =~ s/\\end{document}//;
+				  $output =~ s/^([^&]+)\\begin\{document}//;
+				  $output =~ s/\\end\{document}//;
 #				  $output = '\parbox{\minipagewidth}{ '.$output.' }';
                                   #some additional cleanup necessary for LateX (due to limitations of table environment 
 				  $output =~ s/(\\vskip\s*\d+mm)\s*(\\\\)+/$1/g;


More information about the LON-CAPA-cvs mailing list