Diff for /loncom/xml/lontexconvert.pm between versions 1.81 and 1.85

version 1.81, 2006/11/09 21:31:54 version 1.85, 2008/01/29 11:04:10
Line 85  $Apache::lontexconvert::messedup=0; Line 85  $Apache::lontexconvert::messedup=0;
 # into the safe space since opcode checks only occur at compile time  # into the safe space since opcode checks only occur at compile time
 sub convert_real {  sub convert_real {
     my ($texstring)=@_;      my ($texstring)=@_;
       &Apache::lonnet::logthis("convert_real converting '$$texstring");
     my ($xmlstring,$errorstring);      my ($xmlstring,$errorstring);
     local $SIG{SEGV}=sub { $Apache::lontexconvert::messedup=1; die; };      local $SIG{SEGV}=sub { $Apache::lontexconvert::messedup=1; die; };
     local $SIG{ALRM}=sub {       local $SIG{ALRM}=sub { 
Line 95  sub convert_real { Line 96  sub convert_real {
     };      };
     &Apache::lonxml::start_alarm();      &Apache::lonxml::start_alarm();
     if ($env{'browser.mathml'}) {      if ($env{'browser.mathml'}) {
    &Apache::lonnet::logthis("mathml translation");
  $xmlstring=&tth::ttm($$texstring);   $xmlstring=&tth::ttm($$texstring);
  $xmlstring=~s/\<math\>/\<math xmlns=\"\&mathns\;\"\>/g;   $xmlstring=~s/\<math\>/\<math xmlns=\"\&mathns\;\"\>/g;
  $xmlstring=~s/\<br\>/\<br\/\>/g;   $xmlstring=~s/\<br\>/\<br\/\>/g;
  $xmlstring=~s/\<p\>/\<p\>\<\/p\>/g;   $xmlstring=~s/\<p\>/\<p\>\<\/p\>/g;
  $errorstring.=&tth::ttmerror();   $errorstring.=&tth::ttmerror();
     } else {      } else {
    &Apache::lonnet::logthis("tth translation");
  $xmlstring=&tth::tth($$texstring);   $xmlstring=&tth::tth($$texstring);
  $errorstring.=&tth::ttherror();   $errorstring.=&tth::ttherror();
  $xmlstring=~s-</font(\s*)>-</font>-g;   $xmlstring=~s-</font(\s*)>-</font>-g;
Line 108  sub convert_real { Line 111  sub convert_real {
     $xmlstring=~s/^\s*\<br clear\=\"all\"/\<br/s;      $xmlstring=~s/^\s*\<br clear\=\"all\"/\<br/s;
     $xmlstring=~s/^\s*//;      $xmlstring=~s/^\s*//;
     $xmlstring=~s/\s*$//;      $xmlstring=~s/\s*$//;
       #
       # \rightleftharpoons is not converted by tth but maps
       # reasonably well to &#8660;.  If we get many more of these,
       # we're going to need to have a translation sub.
       #
       $xmlstring=~s/\\rightleftharpoons/\&\#8660;/g;
   
       &Apache::lonnet::logthis("Final result: $xmlstring");
     &Apache::lonxml::end_alarm();      &Apache::lonxml::end_alarm();
     return ($xmlstring,$errorstring);      return ($xmlstring,$errorstring);
 }  }
Line 151  ENDCONV Line 162  ENDCONV
   
 sub clean_out_math_mode {  sub clean_out_math_mode {
     my ($texstring)=@_;      my ($texstring)=@_;
     $$texstring=~s/(?!\\)\$//g;      $$texstring=~s/(?<!\\)\$//g;
     $$texstring=~s/\\[\)\(\]\[]//g;      $$texstring=~s/\\[\)\(\]\[]//g;
     $$texstring=~s/\\ensuremath//g;      $$texstring=~s/\\ensuremath//g;
     return '';      return '';
Line 203  sub jsMath_converted { Line 214  sub jsMath_converted {
  return "\n".   return "\n".
     '<script type="text/javascript">jsMath.Process()</script>'."\n";      '<script type="text/javascript">jsMath.Process()</script>'."\n";
     }      }
       sub jsMath_state {
    my ($level) = @_;
    return $jsMath_sent_header[$level];
       }
   }
   
   sub tex_engine {
       if (exists($env{'form.texengine'})) {
    return $env{'form.texengine'};
       }    
       if ($env{'request.course.id'}
    && exists($env{'course.'.$env{'request.course.id'}.'.texengine'})) {
    return $env{'course.'.$env{'request.course.id'}.'.texengine'};
       }
       if (exists($env{'environment.texengine'})) {
    return $env{'environment.texengine'};
       }
       return 'tth';
 }  }
   
 sub init_math_support {  sub init_math_support {
       my ($inherit_jsmath) = @_;
     &init_tth();      &init_tth();
     &Apache::lontexconvert::jsMath_push();      &Apache::lontexconvert::jsMath_push();
     if ($env{'environment.texengine'} eq 'jsMath' ||      if (lc(&tex_engine()) eq 'jsmath' ||
  $env{'form.texengine'}        eq 'jsMath' ) {   ($inherit_jsmath && &jsMath_state(-2))) {
  return &Apache::lontexconvert::jsMath_header();   return &Apache::lontexconvert::jsMath_header();
     }      }
     return;      return;
Line 233  sub mimetex_converted { Line 263  sub mimetex_converted {
   
 sub converted {  sub converted {
     my ($string,$mode)=@_;      my ($string,$mode)=@_;
     if ($mode eq '') { $mode=$env{'environment.texengine'}; }      if ($mode eq '') { $mode = &tex_engine(); }
     if ($mode =~ /tth/i) {      if ($mode =~ /tth/i) {
  return &tth_converted($string);   return &tth_converted($string);
     } elsif ($mode =~ /jsmath/i) {      } elsif ($mode =~ /jsmath/i) {

Removed from v.1.81  
changed lines
  Added in v.1.85


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>