Diff for /loncom/xml/lontexconvert.pm between versions 1.91 and 1.97

version 1.91, 2008/11/24 17:17:51 version 1.97, 2009/08/12 20:31:08
Line 47  use Apache::lonlocal; Line 47  use Apache::lonlocal;
 use Apache::lonnet;  use Apache::lonnet;
 use lib '/home/httpd/lib/perl/';  use lib '/home/httpd/lib/perl/';
 use LONCAPA;  use LONCAPA;
    use URI::Escape;
   use IO::Socket::INET;
   use IO::Socket::SSL;
   
 # ====================================================================== Header  # ====================================================================== Header
   
Line 241  sub init_math_support { Line 243  sub init_math_support {
     return;      return;
 }  }
   
   sub mimetex_valign {
       my ($esc_texstring)=@_;
       my $valign = 0;
       my $lonhost = $Apache::lonnet::perlvar{'lonHostID'};
       my $hostname = &Apache::lonnet::hostname($lonhost);
       my $protocol = $Apache::lonnet::protocol{$lonhost};
       my $path = '/cgi-bin/mimetex.cgi?'.$esc_texstring;
       my $socket;
       &Apache::lonxml::start_alarm();
       if ($protocol eq 'https') {
           $socket = IO::Socket::SSL->new(PeerAddr => $hostname,
                                          PeerPort => 'https(443)',
                                          Proto    => 'tcp');
       } else {
           $socket = IO::Socket::INET->new(PeerAddr => $hostname,
                                           PeerPort => 'http(80)',
                                           Proto    => 'tcp');
       }
       if ($socket) {
           my $headreq = "HEAD $path HTTP/1.0\r\n\r\n";
           print $socket $headreq;
           while (<$socket>) {
               if (/Vertical\-Align\:\s*?([\-\d]+)/) {
                   $valign = $1;
               }
           }
           if ($protocol eq 'https') {
               $socket->close(SSL_no_shutdown => 1,
                              SSL_ctx_free => 1);
           } else {
               $socket->close();
           }
       }
       &Apache::lonxml::end_alarm();
       return $valign;
   }
   
 sub mimetex_converted {  sub mimetex_converted {
     my $texstring=shift;      my $texstring=shift;
   
   # Alt-Argument for screen readers
       my $alt_string=$$texstring;
       $alt_string=~s/\"/\'\'/g;
   
   # Is this displaystyle?
   
     my $displaystyle=&displaystyle($texstring);      my $displaystyle=&displaystyle($texstring);
   
   # Remove math environment delimiters
   
     &clean_out_math_mode($texstring);      &clean_out_math_mode($texstring);
   
     if ($displaystyle) {      if ($displaystyle) {
  $$texstring='\\displaystyle \\Large '.$$texstring;   $$texstring='\\displaystyle \\Large '.$$texstring;
     }      }
     my $result='<img src="/cgi-bin/mimetex.cgi?'.&escape($$texstring).'" alt="$'.$$texstring.'$" />';      my $esc_texstring = &uri_escape($$texstring);
       my $valign = &mimetex_valign($esc_texstring);
       my $result='<img src="/cgi-bin/mimetex.cgi?'.$esc_texstring.'" style="vertical-align:'.$valign.'px" alt="'.$alt_string.'" />';
     if ($displaystyle) {      if ($displaystyle) {
  $result='<center>'.$result.'</center>';   $result='<center>'.$result.'</center>';
     }      }

Removed from v.1.91  
changed lines
  Added in v.1.97


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>