[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__