--- 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 <BR />");
     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