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

albertel lon-capa-cvs@mail.lon-capa.org
Sat, 13 Nov 2004 19:39:45 -0000


albertel		Sat Nov 13 14:39:45 2004 EDT

  Modified files:              
    /loncom/homework	randomlabel.pm 
  Log:
  - BUG #3518 randomlabel TeX and Web the letter showed up in sligtly different locations
  
  
Index: loncom/homework/randomlabel.pm
diff -u loncom/homework/randomlabel.pm:1.61 loncom/homework/randomlabel.pm:1.62
--- loncom/homework/randomlabel.pm:1.61	Fri Jul  2 04:09:49 2004
+++ loncom/homework/randomlabel.pm	Sat Nov 13 14:39:45 2004
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # random labelling tool
 #
-# $Id: randomlabel.pm,v 1.61 2004/07/02 08:09:49 albertel Exp $
+# $Id: randomlabel.pm,v 1.62 2004/11/13 19:39:45 albertel Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -144,6 +144,7 @@
 	my $width=&Apache::lonxml::get_param('width',$parstack,$safeeval);
 	my $texwidth=&adjust_textwidth(&Apache::lonxml::get_param('texwidth',$parstack,$safeeval,undef,1));
         if (!$texwidth) { $texwidth=90; }
+	# what if width is undefined?
 	my $howtoskipback = $texwidth*$height/$width;
 	$result.= ' \vskip -'.$howtoskipback.' mm }  \\\\ ';
     } elsif ($target eq 'edit') {
@@ -316,17 +317,8 @@
 	my $wheight=&Apache::lonxml::get_param('height',$parstack,$safeeval,-2);
 	my $texwidth=&adjust_textwidth(&Apache::lonxml::get_param('texwidth',$parstack,$safeeval,-2,1));
 	if (!$texwidth) { $texwidth=90; }
-	my $TX1=0;
-	my $TY1=$texwidth*($wheight/$wwidth);
-	my $TX2=$texwidth;
-	my $TY2=0;
-
-
-	my $slopex=($wwidth-$WX1)/($TX2-$TX1);
-	my $slopey=($wheight-$WY1)/($TY2-($TY1-1.0));
-	my $cstx=$wwidth-$slopex*($TX2);
-	my $csty=$wheight-$slopey*($TY2);
-
+	my $texheight=$texwidth*($wheight/$wwidth);
+	
 	my @idx_arr = (0 .. $#Apache::randomlabel::label_arr);
 	&Apache::structuretags::shuffle(\@idx_arr);
 
@@ -334,13 +326,14 @@
 	for(my $i=0;$i <= $#Apache::randomlabel::label_arr; $i++) {
 	    my $label = "$Apache::randomlabel::label_arr[ $idx_arr[$i] ]";
 	    my $x = $Apache::randomlabel::xcoord[$i];
-	    my $y = $Apache::randomlabel::ycoord[$i];
+	    # FIXME the 3.5 here is the 'height' of the letter in TeX
+	    my $y = $Apache::randomlabel::ycoord[$i]-3.5;
 	    my $value = $Apache::randomlabel::value[$i];
 	    #x latex coordinate
 	    my $tcX=($x)*($texwidth/$wwidth);
 	    #y latex coordinate
             #      my $ratio=($wwidth > 0 ? $wheight/$wwidth : 1 );
-	    my $tcY=$TY1-$y*($TY1/$wheight);
+	    my $tcY=$texheight-$y*($texheight/$wheight);
 	    $tcX=sprintf('%.2f',$tcX);
 	    $tcY=sprintf('%.2f',$tcY);
 	    $result.='\put('.$tcX.','.$tcY.'){\normalsize \bf '.$label.'}'."\n";