--- loncom/xml/lontexconvert.pm 2011/12/06 16:10:53 1.109
+++ loncom/xml/lontexconvert.pm 2016/01/22 22:31:51 1.117
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# TeX Conversion Module
#
-# $Id: lontexconvert.pm,v 1.109 2011/12/06 16:10:53 dseaton Exp $
+# $Id: lontexconvert.pm,v 1.117 2016/01/22 22:31:51 damieng Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -50,6 +50,78 @@ use LONCAPA;
use URI::Escape;
use IO::Socket::INET;
+
+#
+# Table of substitutions to unicode characters.
+#
+
+my %unicode_harpoons = (
+ '\rightleftharpoons' => 0x21cc,
+ );
+
+my %unicode_translations = (
+
+# 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
+
+ '' => 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,
+
+);
+
+##
+# Utility to convert elements of a string to unicode:
+#
+# @param input - Input string
+# @param pattern - Pattern to convert
+# @param unicode - Unicode to substitute for pattern.
+#
+# @return string - resulting string.
+#
+sub unicode_subst {
+ my ($input, $pattern, $unicode) = @_;
+
+ my $char = pack('U', $unicode);
+
+ $input =~ s/$pattern/$char/g;
+
+ return $input;
+}
+
# ====================================================================== Header
sub init_tth {
@@ -106,15 +178,38 @@ sub convert_real {
$xmlstring=~s/^\s*\