--- loncom/xml/lonxml.pm 2006/01/13 10:33:25 1.395 +++ loncom/xml/lonxml.pm 2006/02/04 22:11:42 1.396 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # XML Parser Module # -# $Id: lonxml.pm,v 1.395 2006/01/13 10:33:25 albertel Exp $ +# $Id: lonxml.pm,v 1.396 2006/02/04 22:11:42 foxr Exp $ # # Copyright Michigan State University Board of Trustees # @@ -149,6 +149,19 @@ $Apache::lonxml::post_evaluate=1; #a header message to emit in the case of any generated warning or errors $Apache::lonxml::warnings_error_header=''; +# Control whether or not LaTeX symbols should be substituted for their +# \ style equivalents...this may be turned off e.g. in an verbatim +# environment. + +$Apache::lonxml::substitute_LaTeX_symbols = 1; # Starts out on. + +sub enable_LaTeX_substitutions { + $Apache::lonxml::substitute_LaTeX_symbols = 1; +} +sub disable_LaTeX_substitutions { + $Apache::lonxml::substitute_LaTeX_symbols = 0; +} + sub xmlbegin { my ($style)=@_; my $output=''; @@ -382,6 +395,13 @@ sub xmlparse { sub latex_special_symbols { my ($string,$where)=@_; + # + # If e.g. in verbatim mode, then don't substitute. + # but return original string. + # + if (!($Apache::lonxml::substitute_LaTeX_symbols)) { + return $string; + } if ($where eq 'header') { $string =~ s/(\\|_|\^)/ /g; $string =~ s/(\$|%|\{|\})/\\$1/g;