--- loncom/xml/lontexconvert.pm 2005/04/07 06:56:27 1.65 +++ loncom/xml/lontexconvert.pm 2006/01/27 23:55:15 1.69 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # TeX Conversion Module # -# $Id: lontexconvert.pm,v 1.65 2005/04/07 06:56:27 albertel Exp $ +# $Id: lontexconvert.pm,v 1.69 2006/01/27 23:55:15 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -137,8 +137,7 @@ ENDCONV $errorstring) { &Apache::lonnet::logthis("Trying to kill myself"); $Apache::lontexconvert::messedup=1; - my $request=Apache->request(); - $request->child_terminate(); + $Apache::lonxml::request->child_terminate(); } return $xmlstring; } @@ -165,7 +164,28 @@ sub jsMath_converted { my $tag='span'; if (&displaystyle($texstring)) { $tag='div'; } &clean_out_math_mode($texstring); - return '<'.$tag.' class="math">'.$$texstring.''; + return &jsMath_header(). + '<'.$tag.' class="math">'.$$texstring.''; +} + +{ + my $jsMath_sent_header; + sub jsMath_reset { + $jsMath_sent_header=0; + } + sub jsMath_header { + return '' if $jsMath_sent_header; + $jsMath_sent_header=1; + return + ''."\n". + ''."\n"; + } + sub jsMath_process { + return '' if !$jsMath_sent_header; + return ''; + } } sub mimetex_converted { @@ -185,14 +205,16 @@ sub mimetex_converted { } sub converted { - if ($env{'environment.texengine'} eq 'tth') { - return &tth_converted; - } elsif ($env{'environment.texengine'} eq 'jsMath') { - return &jsMath_converted; - } elsif ($env{'environment.texengine'} eq 'mimetex') { - return &mimetex_converted; + my ($string,$mode)=@_; + if ($mode eq '') { $mode=$env{'environment.texengine'}; } + if ($mode =~ /tth/i) { + return &tth_converted($string); + } elsif ($mode =~ /jsmath/i) { + return &jsMath_converted($string); + } elsif ($mode =~ /mimetex/i) { + return &mimetex_converted($string); } - return &tth_converted; + return &tth_converted($string); } # ====================================================================== Footer @@ -323,10 +345,6 @@ sub postprocess_algebra { # moodle had these and I don't know why, ignoring them for now # $string =~s/\\fun/ /g; - # sqrt(3,4) -> \sqrt\let{3,4\right}, which is annoying - $string =~s/\\left\{/\{/g; - $string =~s/\\right\}/\}/g; - # remove the extra () in the denominator of a \frac $string =~s/\\frac{(.+?)}{\\left\((.+?)\\right\)}/\\frac{$1}{$2}/gs;