--- loncom/homework/randomlabel.pm	2005/02/10 23:00:10	1.64
+++ loncom/homework/randomlabel.pm	2005/04/12 21:41:28	1.71
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # random labelling tool
 #
-# $Id: randomlabel.pm,v 1.64 2005/02/10 23:00:10 albertel Exp $
+# $Id: randomlabel.pm,v 1.71 2005/04/12 21:41:28 foxr Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -25,9 +25,6 @@
 #
 # http://www.lon-capa.org/
 #
-# 7/20/2001 Isaac Tsai, initial syntax
-# 8/10/2001 Isaac Tsai, 
-# 8/30/2001 Isaac Tsai, 
 # SYNTAX:
 # <randomlabel bgimg="URL" width="12" height="45" texwidth="50">
 #    <labelgroup name="GroupOne" type="image">
@@ -91,7 +88,7 @@ sub start_randomlabel {
     my $bgimg= &Apache::lonxml::get_param('bgimg',$parstack,$safeeval);
     if ( defined($bgimg) && $bgimg !~ /^http:/ ) {
 	$bgimg=&Apache::lonnet::filelocation($Apache::lonxml::pwd[-1],$bgimg);
-	if (&Apache::lonnet::repcopy($bgimg) ne OK) {
+	if (&Apache::lonnet::repcopy($bgimg) ne 'ok') {
 	    $bgimg='/home/httpd/html/adm/lonKaputt/lonlogo_broken.gif';
 	}
     }
@@ -176,11 +173,12 @@ sub make_eps_image {
 	&Apache::londefdef::image_size($bgimg,0.3,$parstack,$safeeval,
 				       $depth,1);
     my $dirtywidth=$width_param+5;
-    my $result.='\vspace*{2mm}\noindent \parbox{'.$dirtywidth.
+    my $result ="\n".'\vspace*{2mm}\noindent'."\n".
+	'\parbox{'.$dirtywidth.
 	' mm}{  \noindent \epsfxsize='.$width_param.
 	' mm \epsffile{'.$path.$file.
-	'}\setlength{\unitlength}{1mm}  \begin{picture}('.
-	$width_param.','.$height_param.')(0,-'.$height_param.')';
+	'}\setlength{\unitlength}{1mm}'."\n".'  \begin{picture}('.
+	$width_param.','.$height_param.')(0,-'.$height_param.')'."\n";
     return $result;
 }
 
@@ -201,7 +199,7 @@ sub start_labelgroup {
 	@Apache::randomlabel::ycoord = ();
 	@Apache::randomlabel::value = ();
 	@Apache::randomlabel::label_arr  = ();
-	@Apache::randomlabel::decription  = ();
+	@Apache::randomlabel::description  = ();
     } elsif ($target eq 'edit') {
 	$result.=&Apache::edit::tag_start($target,$token);
 	$result.=&Apache::edit::text_arg('Name:','name',$token).
@@ -304,10 +302,15 @@ sub end_labelgroup {
 	    my $tcY=$height_param-$y*($height_param/$wheight);
 	    $tcX=sprintf('%.2f',$tcX);
 	    $tcY=sprintf('%.2f',$tcY);
-	    $result.='\put('.$tcX.','.$tcY.'){'.$TeXsize.' \bf '.$label.'}'."\n";
+	    $result .= '\put('.$tcX.','.$tcY.'){';
 	    if( $type eq 'text') {
+		$result.= $TeXsize.' \bf '.$label."}\n";
 		&add_vars($gname,$i,$label,$idx_arr[$i],$value,'',$safeeval);
 	    } elsif ( $type eq 'image') {
+		my ($path,$file) = &Apache::londefdef::get_eps_image($label);
+		my $image_name = $path.$file;
+		$result .=  '\includegraphics{'
+		            .$image_name."}}\n";
 		&add_vars($gname,$i,
 			  $Apache::randomlabel::description[$idx_arr[$i]],
 			  $idx_arr[$i],$value,$label,$safeeval);
@@ -405,6 +408,15 @@ sub end_label {
 	my $type = &Apache::lonxml::get_param('type',$parstack,$safeeval,-2);
 	my $ltext=&Apache::lonxml::endredirection; 
 	if ($type eq 'image') {
+	    if ($target eq 'tex') {
+		# For tex targets, our image url has been potentially corrupted
+		# by prepending \'s in front of special latex symbols.
+		# For now we only worry about the _ case (most common?)
+		# There's a whole host of theim in lonxml::latex_special_symbols
+		# that could potentially have to be re-done.
+
+		$ltext =~ s/\\_/_/g;
+	    }
 	    &Apache::lonxml::debug("Turning $ltext, $Apache::lonxml::pwd[-1]");
 	    $ltext=&Apache::imageresponse::clean_up_image($ltext);
 #	    $ltext=&Apache::lonnet::filelocation($Apache::lonxml::pwd[-1],