--- loncom/xml/lontexconvert.pm 2006/11/09 21:31:54 1.81
+++ loncom/xml/lontexconvert.pm 2008/11/24 17:17:51 1.91
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# TeX Conversion Module
#
-# $Id: lontexconvert.pm,v 1.81 2006/11/09 21:31:54 albertel Exp $
+# $Id: lontexconvert.pm,v 1.91 2008/11/24 17:17:51 jms Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -79,10 +79,7 @@ sub init_tth {
$Apache::lontexconvert::messedup=0;
-# we need this routine because &converted can get called from inside
-# of the safespace (through &xmlparse('stuff') which doesn't
-# allow the opcode for alarm, so we need to compile this before we get
-# into the safe space since opcode checks only occur at compile time
+
sub convert_real {
my ($texstring)=@_;
my ($xmlstring,$errorstring);
@@ -108,6 +105,14 @@ sub convert_real {
$xmlstring=~s/^\s*\
jsMath.Process()'."\n";
}
+ sub jsMath_state {
+ my ($level) = @_;
+ return $jsMath_sent_header[$level];
+ }
+}
+
+sub tex_engine {
+ if (exists($env{'form.texengine'})) {
+ if ($env{'form.texengine'} ne '') {
+ return $env{'form.texengine'};
+ }
+ }
+ if ($env{'request.course.id'}
+ && exists($env{'course.'.$env{'request.course.id'}.'.texengine'})) {
+ return $env{'course.'.$env{'request.course.id'}.'.texengine'};
+ }
+ if (exists($env{'environment.texengine'})) {
+ return $env{'environment.texengine'};
+ }
+ return 'tth';
}
sub init_math_support {
+ my ($inherit_jsmath) = @_;
&init_tth();
&Apache::lontexconvert::jsMath_push();
- if ($env{'environment.texengine'} eq 'jsMath' ||
- $env{'form.texengine'} eq 'jsMath' ) {
+ if (lc(&tex_engine()) eq 'jsmath' ||
+ ($inherit_jsmath && &jsMath_state(-2))) {
return &Apache::lontexconvert::jsMath_header();
}
return;
@@ -224,7 +250,7 @@ sub mimetex_converted {
if ($displaystyle) {
$$texstring='\\displaystyle \\Large '.$$texstring;
}
- my $result='';
+ my $result='';
if ($displaystyle) {
$result='
'.$result.'';
}
@@ -233,7 +259,7 @@ sub mimetex_converted {
sub converted {
my ($string,$mode)=@_;
- if ($mode eq '') { $mode=$env{'environment.texengine'}; }
+ if ($mode eq '') { $mode = &tex_engine(); }
if ($mode =~ /tth/i) {
return &tth_converted($string);
} elsif ($mode =~ /jsmath/i) {
@@ -324,7 +350,7 @@ sub msgtexconverted {
sub algebra {
use AlgParser;
- my ($string,$target,$style)=@_;
+ my ($string,$target,$style,$parstack,$safeeval)=@_;
my $parser = new AlgParserWithImplicitExpand;
$string=&prepare_algebra($string);
my $ret = $parser->parse($string);
@@ -341,7 +367,9 @@ sub algebra {
$latex='\\ensuremath{'.$latex.'}';
}
if ($target eq 'web' || $target eq 'analyze') {
- $result = &converted(\$latex);
+ my $display=&Apache::lonxml::get_param('display',$parstack,$safeeval);
+ $result = &converted(\$latex,$display);
+# $result = &converted(\$latex);
} else {
$result = $latex;
}
@@ -388,8 +416,78 @@ sub postprocess_algebra {
__END__
+=pod
+
+=head1 NAME
+
+Apache::lontexconvert;
+
+=head1 SYNOPSIS
+
+Access to tth/ttm
+
+This is part of the LearningOnline Network with CAPA project
+described at http://www.lon-capa.org.
+
+
+=head1 SUBROUTINES
+
+=over
+
+=item init_tth()
+
+Header
+
+=item convert_real()
+
+ we need this routine because &converted can get called from inside
+ of the safespace (through &xmlparse('stuff') which doesn't
+ allow the opcode for alarm, so we need to compile this before we get
+ into the safe space since opcode checks only occur at compile time
+
+=item tth_converted()
+
+
+=item clean_out_math_mode()
+
+
+=item displaystyle()
+
+
+=item jsMath_converted()
+
+
+=item tex_engine()
+
+
+=item init_math_support()
+
+
+=item mimetex_converted()
+
+
+=item converted()
+
+
+=item to_convert()
+
+message display
+
+=item smiley()
+
+???
+
+=item msgtexconverted()
+
+=item algebra()
+
+=item prepare_algebra()
+
+=item postprocess_algebra()
+=back
+=cut