--- loncom/xml/londefdef.pm	2005/01/19 18:20:12	1.251
+++ loncom/xml/londefdef.pm	2005/02/09 19:51:43	1.255
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # Tags Default Definition Module 
 #
-# $Id: londefdef.pm,v 1.251 2005/01/19 18:20:12 albertel Exp $
+# $Id: londefdef.pm,v 1.255 2005/02/09 19:51:43 albertel Exp $
 # 
 #
 # Copyright Michigan State University Board of Trustees
@@ -36,10 +36,6 @@
 # The C source of the Code may not be distributed by the Licensee
 # to any other parties under any circumstances.
 #
-#
-# last modified 06/26/00 by Alexander Sakharuk
-# 11/6,11/30,02/01/01,5/4 Gerd Kortemeyer
-# 01/18 Alex Sakharuk
 
 package Apache::londefdef; 
 
@@ -156,7 +152,8 @@ sub start_html {
     } elsif ($target eq 'tex') {
 	@Apache::londefdef::table = ();
 	$currentstring .= '\documentclass[letterpaper]{article}';
-	if ($ENV{'form.latex_type'}=~'batchmode') {$currentstring .='\batchmode';} 
+	if (($ENV{'form.latex_type'}=~'batchmode') ||
+            (!$ENV{'request.role.adv'})) {$currentstring .='\batchmode';} 
 	$currentstring .= '\newcommand{\keephidden}[1]{}'.
                           '\renewcommand{\deg}{$^{\circ}$}'.
                           '\usepackage{longtable}'.
@@ -2545,7 +2542,8 @@ sub start_img {
 		if ($latex_rendering eq "parpic") { 
 		    $currentstring = '\parpic[l]{'.$currentstring.'}';
 		} else {    	                                 # parbox rendering
-		    $currentstring = '\newline'."\n".'\parbox{'.$width_param.'mm}{'.$currentstring.'}';
+		    $currentstring = "\\strut\\newline\n".
+			'\parbox{'.$width_param.'mm}{'.$currentstring.'}';
 		}
 	    } elsif ($align eq "right")  {   
 		if ($latex_rendering eq "parpic") {
@@ -3796,18 +3794,26 @@ sub image_size {
     my $width = &Apache::lonxml::get_param('width',$parstack,$safeeval,
 					   undef,1);
     if ($TeXwidth ne '') {  
+	my $old_width_param=$width_param;
 	if ($TeXwidth=~/(\d+)\s*\%/) {
 	    $width_param = $1*$ENV{'form.textwidth'}/100;
 	} else { 
 	    $width_param = $TeXwidth;
 	}
+	$height_param=$TeXwidth/$old_width_param*$height_param;
     } elsif ($TeXheight ne '') {
 	$height_param = $TeXheight;
 	$width_param  = $TeXheight/$height_param*$width_param;
     } elsif ($width ne '') {
+	my $old_width_param=$width_param;
 	$width_param = $width*$scaling;      
+        $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 ($width_param > $ENV{'form.textwidth'}) {$width_param =0.95*$ENV{'form.textwidth'}}
     return ($height_param, $width_param);
 }