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

dseaton dseaton at source.lon-capa.org
Tue Dec 6 11:10:53 EST 2011


dseaton		Tue Dec  6 16:10:53 2011 EDT

  Modified files:              
    /loncom/xml	lontexconvert.pm 
  Log:
  
  
Index: loncom/xml/lontexconvert.pm
diff -u loncom/xml/lontexconvert.pm:1.108 loncom/xml/lontexconvert.pm:1.109
--- loncom/xml/lontexconvert.pm:1.108	Mon Jun  6 16:08:45 2011
+++ loncom/xml/lontexconvert.pm	Tue Dec  6 16:10:53 2011
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # TeX Conversion Module
 #
-# $Id: lontexconvert.pm,v 1.108 2011/06/06 16:08:45 raeburn Exp $
+# $Id: lontexconvert.pm,v 1.109 2011/12/06 16:10:53 dseaton Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -174,6 +174,47 @@
     return 0;
 }
 
+sub MathJax_converted {
+    my $texstring=shift;
+    my $tag='math/tex;';
+    if (&displaystyle($texstring)) { $tag='math/tex; mode=display'; }
+    &clean_out_math_mode($texstring);
+    return &MathJax_header().
+      '<script type="'.$tag.'">'.$$texstring.'</script>';
+}
+
+{
+    #Relies heavily on the previous jsMath installation
+    my @MathJax_sent_header;
+    sub MathJax_reset {
+        undef(@MathJax_sent_header);
+    }
+    sub MathJax_push {
+        push(@MathJax_sent_header,0);
+    }
+    sub MathJax_header {
+        if (!@MathJax_sent_header) {
+            &Apache::lonnet::logthis("mismatched calls of MathJax_header and MathJax_process");
+            return '';
+        }
+        return '' if $MathJax_sent_header[-1];
+        $MathJax_sent_header[-1]=1;
+        return
+          '<script type="text/javascript" src="/adm/MathJax/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>'."\n";
+    }
+    #sub MathJax_process {
+    #    my $state = pop(@MathJax_sent_header);
+    #    return '' if !$state;
+    #    return "\n".
+    #        '<script type="text/javascript">MathJax.Process()</script>'."\n";
+    #}
+    #sub MathJax_state {
+    #    my ($level) = @_;
+    #    return $MathJax_sent_header[$level];
+    #}
+}
+
+
 sub jsMath_converted {
     my $texstring=shift;
     my $tag='span';
@@ -241,6 +282,11 @@
 	($inherit_jsmath && &jsMath_state(-2))) {
 	return &Apache::lontexconvert::jsMath_header();
     }
+    &Apache::lontexconvert::MathJax_push();
+    if (lc(&tex_engine()) eq 'mathjax') { # ||
+        #($inherit_jsmath && &jsMath_state(-2))) {
+        return &Apache::lontexconvert::MathJax_header();
+    }
     return;
 }
 
@@ -301,6 +347,8 @@
 	return &tth_converted($string);
     } elsif ($mode =~ /jsmath/i) {
 	return &jsMath_converted($string);
+    } elsif ($mode =~ /mathjax/i) {
+	return &MathJax_converted($string);
     } elsif ($mode =~ /mimetex/i) {
 	return &mimetex_converted($string);
     } elsif ($mode =~ /raw/i) {
@@ -509,6 +557,8 @@
 
 =item jsMath_converted()
 
+=item MathJax_converted()
+	- Mimics the jsMath functionality
 
 =item tex_engine()
 




More information about the LON-CAPA-cvs mailing list