--- loncom/xml/lontexconvert.pm 2006/11/09 21:31:54 1.81
+++ loncom/xml/lontexconvert.pm 2008/12/04 19:53:53 1.93
@@ -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.93 2008/12/04 19:53:53 riegler Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -47,6 +47,7 @@ use Apache::lonlocal;
use Apache::lonnet;
use lib '/home/httpd/lib/perl/';
use LONCAPA;
+use LWP::UserAgent;
# ====================================================================== Header
@@ -79,10 +80,7 @@ sub init_tth {
$Apache::lontexconvert::messedup=0;
-# we need this routine because &converted can get called from inside
-# of the safespace (through &xmlparse('
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;
}
+sub mimetex_valign {
+ my ($texstring)=@_;
+ my $ua = LWP::UserAgent->new; #from the perldoc of LWP::UserAgent
+ $ua->timeout(10);
+ $ua->env_proxy;
+ #header without imagedata saved to response:
+ my $response = $ua->head('http://localhost.localdomain/cgi-bin/mimetex.cgi?'.$texstring);
+ if ($response->is_success) {
+ #get the valign-value:
+ return($response->headers->{'vertical-align'});}
+ else {
+ return(0); #if (error) than continue without valign
+ }
+}
+
sub mimetex_converted {
my $texstring=shift;
my $displaystyle=&displaystyle($texstring);
@@ -224,7 +266,8 @@ sub mimetex_converted {
if ($displaystyle) {
$$texstring='\\displaystyle \\Large '.$$texstring;
}
- my $result='';
+
+ my $result='';
if ($displaystyle) {
$result='