Diff for /loncom/xml/londefdef.pm between versions 1.255 and 1.256

version 1.255, 2005/02/09 19:51:43 version 1.256, 2005/02/10 23:00:09
Line 2491  sub start_img { Line 2491  sub start_img {
  }   }
  &Apache::lonxml::debug("LaTeX rendering = $latex_rendering");   &Apache::lonxml::debug("LaTeX rendering = $latex_rendering");
   
  my $oldSRC=$src;  
         $oldSRC=~s/\.(gif|jpg|png)$/\.eps/;  
  $src=&Apache::lonnet::filelocation($Apache::lonxml::pwd[-1],$src);  
  #if original gif/jpg/png file exist do following:   #if original gif/jpg/png file exist do following:
    my ($path,$file) = &get_eps_image($src);
    $src=&Apache::lonnet::filelocation($Apache::lonxml::pwd[-1],$src);
  if (-e $src) {   if (-e $src) {
     #what is the image size?      my ($height_param,$width_param)=
     my $width_param=&image_width($src,$scaling,$parstack,$safeeval);   &image_size($src,0.3,$parstack,$safeeval);
     my $height_param=&image_height($src,$scaling,$parstack,$safeeval);      $currentstring .= '\graphicspath{{'.$path.'}}'
             my ($file,$path)=&file_path($src);    .'\includegraphics[width='.$width_param.' mm,height='.$height_param.'mm]{'.$file.'} ';
     my $newsrc = $src;  
     $newsrc =~ s/\.(gif|jpg|png)$/.eps/i;  
     &Apache::lonnet::repcopy($oldSRC);  
     $file=~s/\.(gif|jpg|png)$/.eps/i;  
     #where can we find the picture?  
     if (-e $newsrc) {  
  #eps counterpart for image exist   
  if ($path) {  
     $currentstring .= '\graphicspath{{'.$path.'}}'  
              .'\includegraphics[width='.$width_param.' mm,height='.$height_param.'mm]{'.$file.'} ';  
  }  
     } else {  
  #there is no eps counterpart for image - check for ps one  
  $newsrc =~ s/\.eps$/\.ps/;  
  if (-e $newsrc) {  
     #ps counterpart for image exist   
     $file =~ s/\.eps$/\.ps/;  
     if ($path) {  
  $currentstring .= '\graphicspath{{'.$path.'}}\includegraphics[width='.$width_param.' mm]{'.$file.'} ';  
     }  
  } else {  
     #care about eps dynamical generation  
     $currentstring.=&eps_generation($src,$file,$width_param);  
  }  
     }  
     #    If there's an alignment specification we need to honor it here.      #    If there's an alignment specification we need to honor it here.
     #    For the horizontal alignments, we will also honor the      #    For the horizontal alignments, we will also honor the
     #    value of the latex specfication.  The default is parbox,      #    value of the latex specfication.  The default is parbox,
Line 2563  sub start_img { Line 2538  sub start_img {
  $alt=&Apache::lonmeta::alttag($Apache::lonxml::pwd[-1],$src);   $alt=&Apache::lonmeta::alttag($Apache::lonxml::pwd[-1],$src);
     }      }
   
     if ($alt) {      if ($alt) { $currentstring .= ' '.$alt.' '; }
  $currentstring .= ' '.$alt.' ';  
     } else {  
  #<allow> tag will care about replication   
     }  
  }   }
   
  # And here's where the semi-quote breaks down: allow the user   # And here's where the semi-quote breaks down: allow the user
         # to edit the beast as well by rendering the problem for edit:          # to edit the beast as well by rendering the problem for edit:
   
   
     } elsif ($target eq 'edit') {      } elsif ($target eq 'edit') {
  $currentstring .=&Apache::edit::tag_start($target,$token);   $currentstring .=&Apache::edit::tag_start($target,$token);
  $currentstring .=&Apache::edit::text_arg('Image Url:','src',$token,70).   $currentstring .=&Apache::edit::text_arg('Image Url:','src',$token,70).
Line 3780  sub image_replication { Line 3749  sub image_replication {
 }  }
   
 sub image_size {  sub image_size {
     my ($src,$scaling,$parstack,$safeeval)=@_;      my ($src,$scaling,$parstack,$safeeval,$depth,$cis)=@_;
     #size of image from gif/jpg/jpeg/png       #size of image from gif/jpg/jpeg/png 
       $src=&Apache::lonnet::filelocation($Apache::lonxml::pwd[-1],$src);
     my $image = Image::Magick->new;      my $image = Image::Magick->new;
     my $current_figure = $image->Read($src);      my $current_figure = $image->Read($src);
     my $width_param = $image->Get('width') * $scaling;;      my $width_param = $image->Get('width') * $scaling;;
     my $height_param = $image->Get('height') * $scaling;;      my $height_param = $image->Get('height') * $scaling;;
     undef $image;      undef($image);
     #do we have any specified LaTeX size of the picture?      #do we have any specified LaTeX size of the picture?
     my $TeXwidth = &Apache::lonxml::get_param('TeXwidth',$parstack,$safeeval);      my $toget='TeXwidth'; if ($cis) { $toget=lc($toget); }
     my $TeXheight = &Apache::lonxml::get_param('TeXheight',$parstack,$safeeval);      my $TeXwidth = &Apache::lonxml::get_param($toget,$parstack,
         $safeeval,$depth,$cis);
       $toget='TeXheight'; if ($cis) { $toget=lc($toget); }
       my $TeXheight = &Apache::lonxml::get_param($toget,$parstack,
          $safeeval,$depth,$cis);
     #do we have any specified web size of the picture?      #do we have any specified web size of the picture?
     my $width = &Apache::lonxml::get_param('width',$parstack,$safeeval,      my $width = &Apache::lonxml::get_param('width',$parstack,$safeeval,
    undef,1);     $depth,1);
     if ($TeXwidth ne '') {        if ($TeXwidth) { 
  my $old_width_param=$width_param;   my $old_width_param=$width_param;
  if ($TeXwidth=~/(\d+)\s*\%/) {   if ($TeXwidth=~/(\d+)\s*\%/) {
     $width_param = $1*$ENV{'form.textwidth'}/100;      $width_param = $1*$ENV{'form.textwidth'}/100;
Line 3801  sub image_size { Line 3775  sub image_size {
     $width_param = $TeXwidth;      $width_param = $TeXwidth;
  }   }
  $height_param=$TeXwidth/$old_width_param*$height_param;   $height_param=$TeXwidth/$old_width_param*$height_param;
     } elsif ($TeXheight ne '') {      } elsif ($TeXheight) {
  $height_param = $TeXheight;   $height_param = $TeXheight;
  $width_param  = $TeXheight/$height_param*$width_param;   $width_param  = $TeXheight/$height_param*$width_param;
     } elsif ($width ne '') {      } elsif ($width) {
  my $old_width_param=$width_param;   my $old_width_param=$width_param;
  $width_param = $width*$scaling;         $width_param = $width*$scaling;
         $height_param=$width_param/$old_width_param*$height_param;          $height_param=$width_param/$old_width_param*$height_param;
     }      }
     if ($width_param > $ENV{'form.textwidth'}) {      if ($width_param > $ENV{'form.textwidth'}) {
Line 3829  sub image_height { Line 3803  sub image_height {
     return $height;      return $height;
 }  }
   
   sub get_eps_image {
       my ($src)=@_;
       my $orig_src=$src;
       $src=~s/\.(gif|png|jpg|jpeg)$/\.eps/i;
       $src=&Apache::lonnet::filelocation($Apache::lonxml::pwd[-1],$src);
       if (! -e $src) {
    if (&Apache::lonnet::repcopy($src) ne OK ) {
       #if replication failed try to find ps file
       $src=~s/\.eps$/\.ps/;
       #if no ps file try to replicate it
       if (not -e $src &&
    &Apache::lonnet::repcopy($src) ne OK) {
    #if replication failed try to produce eps file dynamically
    $src=~s/\.ps$/\.eps/;
    my $temp_file;
    open(FILE,">>/home/httpd/prtspool/$ENV{'user.name'}_$ENV{'user.domain'}_printout.dat");
    my $newsrc=$orig_src;
    $newsrc =~ s|(.*)/res/|/home/httpd/html/res/|;
    print FILE "$newsrc\n";
    $src=~s|/home/httpd/html/res|/home/httpd/prtspool|;
    $src=~s|/home/([^/]*)/public_html/|/home/httpd/prtspool/$1/|;
       }
    }
       }
       my ($path,$file)=($src=~m|(.*)/([^/]*)$|);
       return ($path.'/',$file);
   }
   
 sub eps_generation {  sub eps_generation {
     my ($src,$file,$width_param) = @_;           my ($src,$file,$width_param) = @_;     
     my $filename = "/home/httpd/prtspool/$ENV{'user.name'}_$ENV{'user.domain'}_printout.dat";      my $filename = "/home/httpd/prtspool/$ENV{'user.name'}_$ENV{'user.domain'}_printout.dat";

Removed from v.1.255  
changed lines
  Added in v.1.256


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