--- loncom/xml/londefdef.pm	2005/01/19 18:16:35	1.250
+++ loncom/xml/londefdef.pm	2005/02/09 15:56:45	1.254
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # Tags Default Definition Module 
 #
-# $Id: londefdef.pm,v 1.250 2005/01/19 18:16:35 albertel Exp $
+# $Id: londefdef.pm,v 1.254 2005/02/09 15:56:45 www 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,7 @@ sub start_img {
 		if ($latex_rendering eq "parpic") { 
 		    $currentstring = '\parpic[l]{'.$currentstring.'}';
 		} else {    	                                 # parbox rendering
-		    $currentstring = '\newline'."\n".'\parbox{'.$width_param.'mm}{'.$currentstring.'}';
+		    $currentstring = "\n".'\parbox{'.$width_param.'mm}{'.$currentstring.'}';
 		}
 	    } elsif ($align eq "right")  {   
 		if ($latex_rendering eq "parpic") {
@@ -2757,7 +2754,10 @@ sub start_param {
 	if ($src) { $toconvert{'src'}= $src; }
 	my $name=&Apache::lonxml::get_param('name',$parstack,$safeeval,
 					    undef,1);
-	if ($name=~/^cabbase$/i) { $toconvert{'name'}= $name; }	
+	if ($name=~/^cabbase$/i) {
+	    $toconvert{'value'}=&Apache::lonxml::get_param('value',$parstack,
+							   $safeeval,undef,1);
+	}
 	$currentstring = &Apache::lonenc::encrypt_ref($token,\%toconvert);
     } elsif ($target eq 'tex') {
     } 
@@ -3793,18 +3793,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);
 }