--- loncom/xml/lontexconvert.pm 2012/05/10 19:19:30 1.112.2.1 +++ loncom/xml/lontexconvert.pm 2012/05/25 16:42:28 1.112.2.2 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # TeX Conversion Module # -# $Id: lontexconvert.pm,v 1.112.2.1 2012/05/10 19:19:30 raeburn Exp $ +# $Id: lontexconvert.pm,v 1.112.2.2 2012/05/25 16:42:28 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -241,6 +241,36 @@ sub displaystyle { 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(). + ''; +} + +{ + #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 + ''."\n"; + } +} + sub jsMath_converted { my $texstring=shift; my $tag='span'; @@ -308,6 +338,11 @@ sub init_math_support { ($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; } @@ -368,6 +403,8 @@ sub converted { 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) { @@ -576,6 +613,9 @@ Header =item jsMath_converted() +=item MathJax_converted() + - Mimics the jsMath functionality + =item tex_engine()