Diff for /loncom/xml/lontexconvert.pm between versions 1.62 and 1.68

version 1.62, 2005/02/28 19:08:11 version 1.68, 2005/08/16 16:29:53
Line 47  use Apache::lonmsg(); Line 47  use Apache::lonmsg();
 use Apache::lonxml();  use Apache::lonxml();
 use Apache::lonmenu();  use Apache::lonmenu();
 use Apache::lonlocal;  use Apache::lonlocal;
   use Apache::lonnet;
   
 # ====================================================================== Header  # ====================================================================== Header
   
 sub init_tth {  sub init_tth {
     my $options=$ENV{'course.'.$ENV{'request.course.id'}.'.tthoptions'};      my $options=$env{'course.'.$env{'request.course.id'}.'.tthoptions'};
     if ($ENV{'browser.mathml'}) {      if ($env{'browser.mathml'}) {
  &tth::ttminit();   &tth::ttminit();
  if ($ENV{'browser.unicode'}) {   if ($env{'browser.unicode'}) {
     &tth::ttmoptions('-L -u1 '.$options);      &tth::ttmoptions('-L -u1 '.$options);
  } else {   } else {
     &tth::ttmoptions('-L -u0 '.$options);      &tth::ttmoptions('-L -u0 '.$options);
  }   }
     } else {      } else {
  &tth::tthinit();   &tth::tthinit();
  if ($ENV{'browser.unicode'}) {   if ($env{'browser.unicode'}) {
     &tth::tthoptions('-L -u1 '.$options);      &tth::tthoptions('-L -u1 '.$options);
  } else {   } else {
     &tth::tthoptions('-L -u0 '.$options);      &tth::tthoptions('-L -u0 '.$options);
Line 98  sub convert_real { Line 99  sub convert_real {
  $Apache::lontexconvert::messedup=1;   $Apache::lontexconvert::messedup=1;
  die &mt("TeX unconverted due to errors");   die &mt("TeX unconverted due to errors");
     };      };
     alarm($Apache::lonnet::perlvar{'lonScriptTimeout'});      &Apache::lonxml::start_alarm();
     if ($ENV{'browser.mathml'}) {      if ($env{'browser.mathml'}) {
  $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;
Line 113  sub convert_real { Line 114  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*$//;
     alarm(0);      &Apache::lonxml::end_alarm();
     return ($xmlstring,$errorstring);      return ($xmlstring,$errorstring);
 }  }
   
Line 164  sub jsMath_converted { Line 165  sub jsMath_converted {
     my $tag='span';      my $tag='span';
     if (&displaystyle($texstring)) { $tag='div'; }      if (&displaystyle($texstring)) { $tag='div'; }
     &clean_out_math_mode($texstring);      &clean_out_math_mode($texstring);
     return '<'.$tag.' class="math">'.$$texstring.'</'.$tag.'>';      return &jsMath_header().
    '<'.$tag.' class="math">'.$$texstring.'</'.$tag.'>';
   }
   
   {
       my $jsMath_sent_header;
       sub jsMath_reset {
    $jsMath_sent_header=0;
       }
       sub jsMath_header {
    return '' if $jsMath_sent_header;
    $jsMath_sent_header=1;
    return
               '<script type="text/javascript">
                        function NoFontMessage () {}
                      </script>'."\n".
       '<script src="/adm/jsMath/jsMath.js"></script>'."\n";
       }
       sub jsMath_process {
    return '' if !$jsMath_sent_header;
    return '<script type="text/javascript">jsMath.Process()</script>';
       }
 }  }
   
 sub mimetex_converted {  sub mimetex_converted {
Line 184  sub mimetex_converted { Line 206  sub mimetex_converted {
 }  }
   
 sub converted {  sub converted {
     if ($ENV{'environment.texengine'} eq 'tth') {      my ($string,$mode)=@_;
  return &tth_converted;      if ($mode eq '') { $mode=$env{'environment.texengine'}; }
     } elsif ($ENV{'environment.texengine'} eq 'jsMath') {      if ($mode =~ /tth/i) {
  return &jsMath_converted;   return &tth_converted($string);
     } elsif ($ENV{'environment.texengine'} eq 'mimetex') {      } elsif ($mode =~ /jsmath/i) {
  return &mimetex_converted;   return &jsMath_converted($string);
       } elsif ($mode =~ /mimetex/i) {
    return &mimetex_converted($string);
     }      }
     return &tth_converted;      return &tth_converted($string);
 }  }
   
 # ====================================================================== Footer  # ====================================================================== Footer
   
 sub footer {  sub footer {
   my $xmlstring='';    my $xmlstring='';
   if ($ENV{'request.state'} eq 'construct') {    if ($env{'request.state'} eq 'construct') {
       $xmlstring.='<address>'.$errorstring.'</address>';        $xmlstring.='<address>'.$errorstring.'</address>';
   } else {    } else {
       &Apache::lonmsg::author_res_msg($ENV{'request.filename'},$errorstring);        &Apache::lonmsg::author_res_msg($env{'request.filename'},$errorstring);
   }    }
 # -------------------------------------------------------------------- End Body  # -------------------------------------------------------------------- End Body
   $xmlstring.=&Apache::lonxml::xmlend();    $xmlstring.=&Apache::lonxml::xmlend();
Line 220  sub to_convert { Line 244  sub to_convert {
   
 sub smiley {  sub smiley {
     my $expression=shift;      my $expression=shift;
     if ($ENV{'browser.imagesuppress'} eq 'on') { return $expression; }      if ($env{'browser.imagesuppress'} eq 'on') { return $expression; }
     my %smileys=('\:\-\)' => 'smiley',      my %smileys=('\:\-\)' => 'smiley',
  '8\-\)'  => 'coolsmile',   '8\-\)'  => 'coolsmile',
  '8\-(I|\|)'   => 'coolindiff',   '8\-(I|\|)'   => 'coolindiff',
Line 259  sub msgtexconverted { Line 283  sub msgtexconverted {
             $outmessage.=&smiley($_); $tex=1;              $outmessage.=&smiley($_); $tex=1;
  }   }
     }      }
       $message=$outmessage; $outmessage=''; $tex=0;
       foreach (split(/(?:\&lt\;|\<)\/*algebra\s*(?:\&gt\;|\>)/i,$message)) {
    if ($tex) {
       if ($email) {
    $outmessage.='</pre><tt>'.&algebra($_,'web').'</tt><pre>'; $tex=0;
       } else {
    $outmessage.=&algebra($_,'web'); $tex=0;
       }
    } else {
               $outmessage.=$_; $tex=1;
    }
       }
     if (wantarray) {      if (wantarray) {
  return ($outmessage,$errorstring);   return ($outmessage,$errorstring);
     } else {      } else {
Line 310  sub postprocess_algebra { Line 346  sub postprocess_algebra {
     # moodle had these and I don't know why, ignoring them for now      # moodle had these and I don't know why, ignoring them for now
     # $string =~s/\\fun/ /g;      # $string =~s/\\fun/ /g;
   
     # sqrt(3,4) -> \sqrt\let{3,4\right}, which is annoying  
     $string =~s/\\left\{/\{/g;  
     $string =~s/\\right\}/\}/g;  
   
     # remove the extra () in the denominator of a \frac      # remove the extra () in the denominator of a \frac
     $string =~s/\\frac{(.+?)}{\\left\((.+?)\\right\)}/\\frac{$1}{$2}/gs;      $string =~s/\\frac{(.+?)}{\\left\((.+?)\\right\)}/\\frac{$1}{$2}/gs;
           

Removed from v.1.62  
changed lines
  Added in v.1.68


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