--- loncom/xml/londefdef.pm 2005/03/15 11:26:34 1.263 +++ loncom/xml/londefdef.pm 2005/04/06 06:09:42 1.266 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Tags Default Definition Module # -# $Id: londefdef.pm,v 1.263 2005/03/15 11:26:34 foxr Exp $ +# $Id: londefdef.pm,v 1.266 2005/04/06 06:09:42 albertel Exp $ # # # Copyright Michigan State University Board of Trustees @@ -156,7 +156,6 @@ sub start_html { if ($target eq 'web' || $target eq 'edit') { $currentstring = &Apache::lonxml::xmlbegin(); } elsif ($target eq 'tex') { - @Apache::londefdef::table = (); $currentstring .= '\documentclass[letterpaper]{article}'; if (($ENV{'form.latex_type'}=~'batchmode') || (!$ENV{'request.role.adv'})) {$currentstring .='\batchmode';} @@ -2498,19 +2497,25 @@ sub start_img { &Apache::lonxml::debug("LaTeX rendering = $latex_rendering image file: $src"); #if original gif/jpg/png file exist do following: + my $origsrc=$src; my ($path,$file) = &get_eps_image($src); $src=&Apache::lonnet::filelocation($Apache::lonxml::pwd[-1],$src); &Apache::lonxml::debug("path = $path file = $file src = $src"); if (-e $src) { &Apache::lonxml::debug("$src exists"); my ($height_param,$width_param)= - &image_size($src,0.3,$parstack,$safeeval); + &image_size($origsrc,0.3,$parstack,$safeeval); my $destpath = $path; $destpath =~ s/ /\_/g; # Spaces in path cause LaTex to vomit. my $destfile = $file; $destfile =~ s/ /\_/g; + my $size; + if ($width_param) { $size.='width='.$width_param.' mm,'; } + if ($height_param) { $size.='height='.$height_param.' mm]'; } + $size='['.$size; + $size=~s/,$/]/; $currentstring .= '\graphicspath{{'.$destpath.'}}' - .'\includegraphics[width='.$width_param.' mm,height='.$height_param.'mm]{'.$destfile.'} '; + .'\includegraphics'.$size.'{'.$destfile.'} '; # If there's an alignment specification we need to honor it here. # For the horizontal alignments, we will also honor the @@ -3757,7 +3762,7 @@ sub image_replication { $pssrc =~ s/\.(gif|jpg|jpeg|png)$/.ps/i; if (not -e $epssrc && not -e $pssrc) { my $result=&Apache::lonnet::repcopy($epssrc); - if ($result ne 'OK') { &Apache::lonnet::repcopy($pssrc); } + if ($result ne 'ok') { &Apache::lonnet::repcopy($pssrc); } } return ''; } @@ -3796,19 +3801,29 @@ sub image_size { } else { $width_param = $TeXwidth; } - $height_param=$TeXwidth/$old_width_param*$height_param; + if ($TeXheight) { + $height_param = $TeXheight; + } elsif ($old_width_param) { + $height_param=$TeXwidth/$old_width_param*$height_param; + } } elsif ($TeXheight) { $height_param = $TeXheight; - $width_param = $TeXheight/$height_param*$width_param; + if ($height_param) { + $width_param = $TeXheight/$height_param*$width_param; + } } elsif ($width) { my $old_width_param=$width_param; $width_param = $width*$scaling; - $height_param=$width_param/$old_width_param*$height_param; + if ($old_width_param) { + $height_param=$width_param/$old_width_param*$height_param; + } } if ($width_param > $ENV{'form.textwidth'}) { my $old_width_param=$width_param; $width_param =0.95*$ENV{'form.textwidth'}; - $height_param=$width_param/$old_width_param*$height_param; + if ($old_width_param) { + $height_param=$width_param/$old_width_param*$height_param; + } } return ($height_param, $width_param); } @@ -3834,14 +3849,14 @@ sub get_eps_image { &Apache::lonxml::debug("Filelocation gives; $src
"); if (! -e $src) { &Apache::lonxml::debug("$src does not exist"); - if (&Apache::lonnet::repcopy($src) ne 'OK' ) { + if (&Apache::lonnet::repcopy($src) ne 'ok' ) { &Apache::lonxml::debug("Repcopy of $src failed (1)"); #if replication failed try to find ps file $src=~s/\.eps$/\.ps/; &Apache::lonxml::debug("Now looking for $src"); #if no ps file try to replicate it if (not -e $src && - &Apache::lonnet::repcopy($src) ne 'OK') { + &Apache::lonnet::repcopy($src) ne 'ok') { &Apache::lonxml::debug("Failed to find or replicate $src"); #if replication failed try to produce eps file dynamically