[LON-CAPA-cvs] cvs: loncom /xml lontexconvert.pm
albertel
lon-capa-cvs@mail.lon-capa.org
Thu, 24 Feb 2005 05:26:00 -0000
albertel Thu Feb 24 00:26:00 2005 EDT
Modified files:
/loncom/xml lontexconvert.pm
Log:
- add in some greek an sepcial symbol fixups
Index: loncom/xml/lontexconvert.pm
diff -u loncom/xml/lontexconvert.pm:1.45 loncom/xml/lontexconvert.pm:1.46
--- loncom/xml/lontexconvert.pm:1.45 Wed Feb 23 20:25:05 2005
+++ loncom/xml/lontexconvert.pm Thu Feb 24 00:26:00 2005
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# TeX Conversion Module
#
-# $Id: lontexconvert.pm,v 1.45 2005/02/24 01:25:05 albertel Exp $
+# $Id: lontexconvert.pm,v 1.46 2005/02/24 05:26:00 albertel Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -215,12 +215,14 @@
sub algebra {
my ($string,$target)=@_;
my $parser = new AlgParserWithImplicitExpand;
+ $string=&prepare_algebra($string);
my $ret = $parser->parse($string);
my $result='['.&mt('Algebra unconverted due to previous errors').']';
if ( ref($ret) ) {
$parser->tostring();
$parser->normalize();
my $latex=$parser->tolatex();
+ $latex=&postprocess_algebra($string);
$latex='$'.$latex.'$';
if ($target eq 'web' || $target eq 'analyze') {
$result = &converted(\$latex);
@@ -232,6 +234,52 @@
}
}
+sub prepare_algebra {
+ my ($string)=@_;
+
+ #protect the confusable greek symbols
+ $string =~ s/delta/zdelta/g;
+ $string =~ s/beta/bita/g;
+ $string =~ s/theta/thita/g;
+ $string =~ s/zeta/zita/g;
+ $string =~ s/eta/xeta/g;
+ $string =~ s/epsilon/zepslon/g;
+ $string =~ s/upsilon/zupslon/g;
+
+ return $string;
+}
+
+sub postprocess_algebra {
+ my ($string)=@_;
+
+ # replace some special symbols with the LaTeX equivalents
+ $string =~ s/infty/\\infty/g;
+ $string =~ s/infinity/\\infty/g;
+ $string =~ s/alpha/\\alpha/g;
+ $string =~ s/gamma/\\gamma/g;
+ $string =~ s/iota/\\iota/g;
+ $string =~ s/kappa/\\kappa/g;
+ $string =~ s/lambda/\\lambda/g;
+ $string =~ s/mu/\\mu/g;
+ $string =~ s/nu/\\nu/g;
+ $string =~ s/xi/\\xi/g;
+ $string =~ s/rho/\\rho/g;
+ $string =~ s/sigma/\\sigma/g;
+ $string =~ s/tau/\\tau/g;
+ $string =~ s/phi/\\phi/g;
+ $string =~ s/chi/\\chi/g;
+ $string =~ s/psi/\\psi/g;
+ $string =~ s/omega/\\omega/g;
+ $string =~ s/zdelta/\\delta/g;
+ $string =~ s/bita/\\beta/g;
+ $string =~ s/thita/\\theta/g;
+ $string =~ s/zita/\\zeta/g;
+ $string =~ s/xeta/\\eta/g;
+ $string =~ s/zepslon/\\epsilon/g;
+ $string =~ s/zupslon/\\upsilon/g;
+
+ return $string;
+}
1;
__END__