[LON-CAPA-cvs] cvs: loncom(version_2_11_X) /xml lontexconvert.pm

raeburn raeburn at source.lon-capa.org
Wed Jun 18 02:48:47 EDT 2014


raeburn		Wed Jun 18 06:48:47 2014 EDT

  Modified files:              (Branch: version_2_11_X)
    /loncom/xml	lontexconvert.pm 
  Log:
  - For 2.11
    - Backport 1.114, 1.115, 1.116
  
  
Index: loncom/xml/lontexconvert.pm
diff -u loncom/xml/lontexconvert.pm:1.112.2.3 loncom/xml/lontexconvert.pm:1.112.2.4
--- loncom/xml/lontexconvert.pm:1.112.2.3	Sun Sep 22 02:04:31 2013
+++ loncom/xml/lontexconvert.pm	Wed Jun 18 06:48:47 2014
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # TeX Conversion Module
 #
-# $Id: lontexconvert.pm,v 1.112.2.3 2013/09/22 02:04:31 raeburn Exp $
+# $Id: lontexconvert.pm,v 1.112.2.4 2014/06/18 06:48:47 raeburn Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -54,17 +54,37 @@
 #
 # Table of substitutions to unicode characters.
 #
+
+my %unicode_harpoons = (
+                        '\rightleftharpoons'  => 0x21cc,
+                      );
+
 my %unicode_translations = (
-    '\rightleftharpoons'  => 0x21cc,
 
-# Brackets - unicode is commented out with pure 8-bit ascii ugliness while we need it.
+# Brackets - unicode for browsers/OS which support it.
+
+    ''             => 0x23a1,
+    ''             => 0x23a2,
+    ''             => 0x23a3,
+    ''             => 0x23a4,
+    ''             => 0x23a5,
+    ''             => 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
 
-#    ''             => 0x23a1,
-#    ''             => 0x23a2,
-#    ''             => 0x23a3,   # when unicode catches up with browsers
-#    ''             => 0x23a4,   # use these instead of the cheesey brackets below
-#    ''             => 0x23a5,
-#    ''             => 0x23a6   
     ''              => 0x5b,
     ''              => 0x5b,    # '['
     ''              => 0x5b,
@@ -72,24 +92,14 @@
     ''              => 0x5d,
     ''              => 0x5d,
 
-#  Parens..again the unicode is commented out with the 8-bit ascii ugliness
-#  turned on until browsers catch up with the unicode world.
-
-#    ''              => 0x239b,
-#    ''              => 0x239c,
-#    ''              => 0x239d,
-#    ''              => 0x239e,
-#    ''              => 0x239f,
-#    ''              => 0x23a0
+# Parens - pure 8-bit ascii ugliness for browsers/OS which can't handle unicode
 
     ''              => 0x28,
     ''              => 0x28,      # '('
     ''              => 0x28,
-
     ''              => 0x29,
     ''              => 0x29,      # '('
-    ''              => 0x29
-
+    ''              => 0x29,
 
 );
 
@@ -171,16 +181,33 @@
     &Apache::lonxml::end_alarm();
 
     #
-    #  Several strings produced by tth require
+    # Several strings produced by tth require
     # transliteration -> unicode equivalents to render reliably
-    # in browsers. %unicode_translations is a table of
-    # string->substitution which we now apply:
+    # in browsers. %unicode_translations and %unicode_harpoons are tables of
+    # 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)) {
 	my $unicode = $unicode_translations{$pattern};
+	if ($use_ascii) {
+	    $unicode = $ascii_8bit_translations{$pattern};
+	}
 	$xmlstring = &unicode_subst($xmlstring, $pattern, $unicode);
     }
 
+    foreach my $pattern (keys(%unicode_harpoons)) {
+        $xmlstring = &unicode_subst($xmlstring, $pattern, $unicode_harpoons{$pattern});
+    }
 
     return ($xmlstring,$errorstring);
 }
@@ -271,6 +298,7 @@
     }
 }
 
+
 sub jsMath_converted {
     my $texstring=shift;
     my $tag='span';
@@ -569,6 +597,8 @@
     $string =~s/\\lim\\left\((.+?),(.+?),(.+?)\\right\)/\\lim_{$2\\to $3}$1/gs;
     return $string;
 }
+
+
 1;
 __END__
 




More information about the LON-CAPA-cvs mailing list