--- loncom/xml/lontexconvert.pm 2005/02/24 10:07:47 1.57 +++ 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.57 2005/02/24 10:07:47 albertel Exp $ +# $Id: lontexconvert.pm,v 1.62 2005/02/28 19:08:11 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -117,12 +117,14 @@ sub convert_real { return ($xmlstring,$errorstring); } -sub converted { +sub tth_converted { my $texstring=shift; my $xmlstring='['.&mt('UNDISPLAYABLE').']'; if ($Apache::lontexconvert::messedup) { return '['.&mt('TeX unconverted due to previous errors').']'; } + $$texstring ='\\documentstyle{article}'.$$texstring; + eval(<<'ENDCONV'); ($xmlstring,$errorstring)=&convert_real($texstring) ENDCONV @@ -140,6 +142,58 @@ 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 (&displaystyle($texstring)) { $tag='div'; } + &clean_out_math_mode($texstring); + return '<'.$tag.' class="math">'.$$texstring.''.$tag.'>'; +} + +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='