[LON-CAPA-cvs] cvs: loncom /homework randomlabel.pm

foxr lon-capa-cvs@mail.lon-capa.org
Tue, 29 Aug 2006 10:42:59 -0000


foxr		Tue Aug 29 06:42:59 2006 EDT

  Modified files:              
    /loncom/homework	randomlabel.pm 
  Log:
  Defect number 2975  - Replace " " with "_" in image filenames so that 
  LaTeX does not get pissed off.
  
  
Index: loncom/homework/randomlabel.pm
diff -u loncom/homework/randomlabel.pm:1.82 loncom/homework/randomlabel.pm:1.83
--- loncom/homework/randomlabel.pm:1.82	Tue May 30 08:45:37 2006
+++ loncom/homework/randomlabel.pm	Tue Aug 29 06:42:59 2006
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # random labelling tool
 #
-# $Id: randomlabel.pm,v 1.82 2006/05/30 12:45:37 www Exp $
+# $Id: randomlabel.pm,v 1.83 2006/08/29 10:42:59 foxr Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -296,10 +296,20 @@
     &Apache::lonxml::debug("Image size: $height_param x $width_param");
 
     my $dirtywidth=$width_param+5;
+    #
+    #  Note that lonprintout/prinout will conspire to replace
+    #  spaces in paths and names with _'s since spacess cause problems
+    #  for latex included filenames.  Therefore:
+    #
+    my $safe_path = $path;
+    $safe_path =~ s/ /\_/g;
+    my $safe_file = $file;
+    $safe_file =~ s/ /\_/g;
+
     my $result ="\n".'\vspace*{2mm}\noindent'."\n".
 	'\parbox{'.$dirtywidth.
 	' mm}{  \noindent \epsfxsize='.$width_param.
-	' mm \epsffile{'.$path.$file.
+	' mm \epsffile{'.$safe_path.$safe_file.
 	'}\setlength{\unitlength}{1mm}'."\n".'  \begin{picture}('.
 	$width_param.','.$height_param.')(0,-'.$height_param.')'."\n";
     my $magick = Image::Magick->new;
@@ -482,6 +492,11 @@
 	    } elsif ( $type eq 'image') {
 		my ($path,$file) = &Apache::londefdef::get_eps_image($label);
 		my $image_name = $path.$file;
+		#
+		#  Note that spaces in e.. \includegraphics cause problems for Latex
+		# so they get replaced by _'s by lonprintout/printout and us:
+		#
+		$image_name =~ s/ /\_/g;
 		my $label_width = &get_label_width($label);
 
 		$result .=  '\includegraphics[width='.$label_width.'mm]{'