--- loncom/xml/lontexconvert.pm 2001/11/29 19:03:58 1.4 +++ loncom/xml/lontexconvert.pm 2003/02/26 20:22:11 1.18 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # TeX Conversion Module # -# $Id: lontexconvert.pm,v 1.4 2001/11/29 19:03:58 www Exp $ +# $Id: lontexconvert.pm,v 1.18 2003/02/26 20:22:11 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -37,7 +37,6 @@ # to any other parties under any circumstances. # # 05/29/00,05/30,10/11,10/20 Gerd Kortemeyer -# 05/03/2001 Scott Harrison # 5/4 Gerd Kortemeyer package Apache::lontexconvert; @@ -47,6 +46,7 @@ use tth; use vars qw($errorstring); use Apache::lonmsg; use Apache::lonxml; +use Apache::lonmenu; # ====================================================================== Header @@ -55,31 +55,46 @@ sub header { my $time=time; if ($ENV{'browser.mathml'}) { &tth::ttminit(); + if ($ENV{'browser.unicode'}) { + &tth::ttmoptions('-L -u1'); + } else { + &tth::ttmoptions('-L -u0'); + } } else { &tth::tthinit(); + if ($ENV{'browser.unicode'}) { + &tth::tthoptions('-L -u1'); + } else { + &tth::tthoptions('-L -u0'); + } } return &Apache::lonxml::xmlbegin(). &Apache::lonxml::fontsettings(). "\n\n". - &Apache::lonxml::registerurl(). + &Apache::lonmenu::registerurl(undef,'tex'). "\n\n"; } # ================================================================== Conversion sub converted { - my $texstring=shift; - my $xmlstring; + my $texstring=shift; + my $xmlstring='[UNDISPLAYABLE]'; + eval(<<'ENDCONV'); + { + local $SIG{SEGV}=sub { die; }; if ($ENV{'browser.mathml'}) { $xmlstring=&tth::ttm($$texstring); $xmlstring=~s/\/\/g; $xmlstring=~s/\/\/g; $xmlstring=~s/\/\\<\/p\>/g; $errorstring.=&tth::ttmerror(); - } else { + } else { $xmlstring=&tth::tth($$texstring); $errorstring.=&tth::ttherror(); + } } +ENDCONV return $xmlstring; } @@ -97,6 +112,41 @@ sub footer { return $xmlstring; } +# ------------------------------------------------------------ Message display + +sub to_convert { + my ($string) = @_; + $string=~s/\/ /g; + $string=&HTML::Entities::decode($string); + return &converted(\$string); +} + +sub msgtexconverted { + my $message=shift; + + $errorstring=''; + if ($ENV{'browser.mathml'}) { + &tth::ttminit(); + if ($ENV{'browser.unicode'}) { + &tth::ttmoptions('-L -u1'); + } else { + &tth::ttmoptions('-L -u0'); + } + } else { + &tth::tthinit(); + if ($ENV{'browser.unicode'}) { + &tth::tthoptions('-L -u1'); + } else { + &tth::tthoptions('-L -u0'); + } + } + $message=~s/(\$\$.+?\$\$)/&to_convert($1)/ge; + $message=~s/(\$.+?\$)/&to_convert($1)/ge; + $message=~s/(\\\(.+?\\\))/&to_convert($1)/ge; + $message=~s/(\\\[.+?\\\])/&to_convert($1)/ge; + return $message.$errorstring; +} + 1; __END__