--- loncom/xml/lontexconvert.pm 2001/11/29 19:03:58 1.4 +++ loncom/xml/lontexconvert.pm 2004/01/28 20:48:35 1.30 @@ -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.30 2004/01/28 20:48:35 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; @@ -45,40 +44,75 @@ package Apache::lontexconvert; use strict; use tth; use vars qw($errorstring); +use Apache(); use Apache::lonmsg; use Apache::lonxml; +use Apache::lonmenu; # ====================================================================== Header +sub init_tth { + my $options=$ENV{'course.'.$ENV{'request.course.id'}.'.tthoptions'}; + if ($ENV{'browser.mathml'}) { + &tth::ttminit(); + if ($ENV{'browser.unicode'}) { + &tth::ttmoptions('-L -u1 '.$options); + } else { + &tth::ttmoptions('-L -u0 '.$options); + } + } else { + &tth::tthinit(); + if ($ENV{'browser.unicode'}) { + &tth::tthoptions('-L -u1 '.$options); + } else { + &tth::tthoptions('-L -u0 '.$options); + } + } +} + sub header { $errorstring=''; my $time=time; - if ($ENV{'browser.mathml'}) { - &tth::ttminit(); - } else { - &tth::tthinit(); - } + &init_tth(); return &Apache::lonxml::xmlbegin(). &Apache::lonxml::fontsettings(). "\n
\n". - &Apache::lonxml::registerurl(). + &Apache::lonmenu::registerurl(undef,'tex'). "\n\n"; } # ================================================================== Conversion +$Apache::lontexconvert::messedup=0; sub converted { - my $texstring=shift; - my $xmlstring; + my $texstring=shift; + my $xmlstring='[UNDISPLAYABLE]'; + if ($Apache::lontexconvert::messedup) { + return '[TeX Unconverted Due To Previous Errors]'; + } + eval(<<'ENDCONV'); + { + local $SIG{SEGV}=sub { $Apache::lontexconvert::messedup=1; die; }; if ($ENV{'browser.mathml'}) { $xmlstring=&tth::ttm($$texstring); $xmlstring=~s/\