Diff for /loncom/xml/lontexconvert.pm between versions 1.110 and 1.117

version 1.110, 2012/02/28 10:38:14 version 1.117, 2016/01/22 22:31:51
Line 54  use IO::Socket::INET; Line 54  use IO::Socket::INET;
 #  #
 # Table of substitutions to unicode characters.  # Table of substitutions to unicode characters.
 #  #
   
   my %unicode_harpoons = (
                           '\rightleftharpoons'  => 0x21cc,
                         );
   
 my %unicode_translations = (  my %unicode_translations = (
     '\rightleftharpoons'  => 0x21cc,  
   # Brackets - unicode for browsers/OS which support it.
   
     ''             => 0x23a1,      ''             => 0x23a1,
     ''             => 0x23a2,      ''             => 0x23a2,
     ''             => 0x23a3,      ''             => 0x23a3,
     ''             => 0x23a4,      ''             => 0x23a4,
     ''             => 0x23a5,      ''             => 0x23a5,
     ''             => 0x23a6         ''             => 0x23a6,
   
   #  Parens - unicode for browsers/OS which support it
   
       ''              => 0x239b,
       ''              => 0x239c,
       ''              => 0x239d,
       ''              => 0x239e,
       ''              => 0x239f,
       ''              => 0x23a0,
   
   );
   
   my %ascii_8bit_translations = (
   
   # Brackets - pure 8-bit ascii ugliness for browsers/OS which can't handle unicode
   
       ''              => 0x5b,
       ''              => 0x5b,    # '['
       ''              => 0x5b,
       ''              => 0x5d,    # ']'
       ''              => 0x5d,
       ''              => 0x5d,
   
   # Parens - pure 8-bit ascii ugliness for browsers/OS which can't handle unicode
   
       ''              => 0x28,
       ''              => 0x28,      # '('
       ''              => 0x28,
       ''              => 0x29,
       ''              => 0x29,      # '('
       ''              => 0x29,
   
 );  );
   
 ##  ##
Line 126  sub convert_real { Line 165  sub convert_real {
     };      };
     &Apache::lonxml::start_alarm();      &Apache::lonxml::start_alarm();
     if ($env{'browser.mathml'}) {      if ($env{'browser.mathml'}) {
  &Apache::lonnet::logthis("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;
  $xmlstring=~s/\<p\>/\<p\>\<\/p\>/g;   $xmlstring=~s/\<p\>/\<p\>\<\/p\>/g;
  $errorstring.=&tth::ttmerror();   $errorstring.=&tth::ttmerror();
     } else {      } else {
  &Apache::lonnet::logthis("tth");  
  $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 141  sub convert_real { Line 178  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*$//;
       $xmlstring=~s/^<br \/><table/<table/;
     &Apache::lonxml::end_alarm();      &Apache::lonxml::end_alarm();
   
     #      #
     #  Several strings produced by tth require      # Several strings produced by tth require
     # transliteration -> unicode equivalents to render reliably      # transliteration -> unicode equivalents to render reliably
     # in browsers. %unicode_translations is a table of      # in browsers. %unicode_translations and %unicode_harpoons are tables of
     # string->substitution which we now apply:      # string->substitution which we now apply. (%ascii_8bit_translations used
       # instead for Windows XP and mobile devices.
   
       my $use_ascii;
       if ($env{'browser.os'} eq 'win') {
           if (($env{'browser.osversion'}) && ($env{'browser.osversion'} < 6.0)) {
               $use_ascii = 1;
           }
       }
       if ($env{'browser.mobile'}) {
           $use_ascii = 1;
       }
   
     foreach my $pattern (keys(%unicode_translations)) {      foreach my $pattern (keys(%unicode_translations)) {
  my $unicode = $unicode_translations{$pattern};   my $unicode = $unicode_translations{$pattern};
    if ($use_ascii) {
       $unicode = $ascii_8bit_translations{$pattern};
    }
  $xmlstring = &unicode_subst($xmlstring, $pattern, $unicode);   $xmlstring = &unicode_subst($xmlstring, $pattern, $unicode);
     }      }
   
       foreach my $pattern (keys(%unicode_harpoons)) {
           $xmlstring = &unicode_subst($xmlstring, $pattern, $unicode_harpoons{$pattern});
       }
   
     return ($xmlstring,$errorstring);      return ($xmlstring,$errorstring);
 }  }
Line 468  sub msgtexconverted { Line 523  sub msgtexconverted {
     foreach my $fragment (split(/(?:\&lt\;|\<)\/*algebra\s*(?:\&gt\;|\>)/i,      foreach my $fragment (split(/(?:\&lt\;|\<)\/*algebra\s*(?:\&gt\;|\>)/i,
  $message)) {   $message)) {
  if ($tex) {   if ($tex) {
         my $algebra = &algebra($fragment, 'web', undef, undef, undef, undef, 'tth');          my $algebra = &algebra($fragment, 'web', undef, undef, undef, 'tth');
     if ($email) {      if ($email) {
  $outmessage.='</pre><tt>'.$algebra.'</tt><pre>';   $outmessage.='</pre><tt>'.$algebra.'</tt><pre>';
  $tex=0;   $tex=0;
Line 553  sub postprocess_algebra { Line 608  sub postprocess_algebra {
     $string =~s/\\lim\\left\((.+?),(.+?),(.+?)\\right\)/\\lim_{$2\\to $3}$1/gs;      $string =~s/\\lim\\left\((.+?),(.+?),(.+?)\\right\)/\\lim_{$2\\to $3}$1/gs;
     return $string;      return $string;
 }  }
   
   
 1;  1;
 __END__  __END__
   

Removed from v.1.110  
changed lines
  Added in v.1.117


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