version 1.112.2.3, 2013/09/22 02:04:31
|
version 1.112.2.4, 2014/06/18 06:48:47
|
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 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, # '[' |
'' => 0x5b, # '[' |
'' => 0x5b, |
'' => 0x5b, |
Line 72 my %unicode_translations = (
|
Line 92 my %unicode_translations = (
|
'' => 0x5d, |
'' => 0x5d, |
'' => 0x5d, |
'' => 0x5d, |
|
|
# Parens..again the unicode is commented out with the 8-bit ascii ugliness |
# Parens - pure 8-bit ascii ugliness for browsers/OS which can't handle unicode |
# turned on until browsers catch up with the unicode world. |
|
|
|
# '' => 0x239b, |
|
# '' => 0x239c, |
|
# '' => 0x239d, |
|
# '' => 0x239e, |
|
# '' => 0x239f, |
|
# '' => 0x23a0 |
|
|
|
'' => 0x28, |
'' => 0x28, |
'' => 0x28, # '(' |
'' => 0x28, # '(' |
'' => 0x28, |
'' => 0x28, |
|
|
'' => 0x29, |
'' => 0x29, |
'' => 0x29, # '(' |
'' => 0x29, # '(' |
'' => 0x29 |
'' => 0x29, |
|
|
|
|
); |
); |
|
|
Line 171 sub convert_real {
|
Line 181 sub convert_real {
|
&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 271 sub MathJax_converted {
|
Line 298 sub MathJax_converted {
|
} |
} |
} |
} |
|
|
|
|
sub jsMath_converted { |
sub jsMath_converted { |
my $texstring=shift; |
my $texstring=shift; |
my $tag='span'; |
my $tag='span'; |
Line 569 sub postprocess_algebra {
|
Line 597 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__ |
|
|