--- loncom/xml/lontexconvert.pm 2005/02/25 19:33:26 1.60 +++ loncom/xml/lontexconvert.pm 2005/02/28 19:08:11 1.62 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # TeX Conversion Module # -# $Id: lontexconvert.pm,v 1.60 2005/02/25 19:33:26 albertel Exp $ +# $Id: lontexconvert.pm,v 1.62 2005/02/28 19:08:11 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -142,23 +142,54 @@ ENDCONV return $xmlstring; } +sub clean_out_math_mode { + my ($texstring)=@_; + $$texstring=~s/(?!\\)\$//g; + $$texstring=~s/\\[\)\(\]\[]//g; + $$texstring=~s/\\ensuremath//g; + return ''; +} + +sub displaystyle { + my ($texstring)=@_; + #has a $$ or \[ or \displaystyle in it, guessinng it's display mode + if ($$texstring=~/[^\\]\$\$/ || + $$texstring=~/\\\[/ || + $$texstring=~/\\displaystyle/) { return 1; } + return 0; +} + sub jsMath_converted { my $texstring=shift; my $tag='span'; - if ($$texstring=~/[^\\]\$\$/) { - #has a $$ in it, guessinng it's display mode - $tag='div'; - } - $$texstring=~s/(?!\\)\$//g; - $$texstring=~s/\\ensuremath//g; + if (&displaystyle($texstring)) { $tag='div'; } + &clean_out_math_mode($texstring); return '<'.$tag.' class="math">'.$$texstring.''; } +sub mimetex_converted { + my $texstring=shift; + my $displaystyle=&displaystyle($texstring); + + &clean_out_math_mode($texstring); + + if ($displaystyle) { + $$texstring='\\displaystyle \\Large '.$$texstring; + } + my $result=''; + if ($displaystyle) { + $result='
'.$result.'
'; + } + return $result; +} + 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; } return &tth_converted; } @@ -251,6 +282,7 @@ sub algebra { if ($style eq 'display') { $latex='$$'.$latex.'$$x'; } else { + # style is 'inline' $latex='\\ensuremath{'.$latex.'}'; } if ($target eq 'web' || $target eq 'analyze') { @@ -302,7 +334,6 @@ sub postprocess_algebra { # $string =~s/\\lim\\left\((.+?),(.+?),(.+?)\\right\)/\\lim_{$2\\to $3}$1/gs; - &Apache::lonnet::logthis($string); return $string; } 1;