[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";