version 1.77, 2005/06/07 22:31:30
|
version 1.80, 2005/07/14 04:17:44
|
Line 206 sub end_bgimg {
|
Line 206 sub end_bgimg {
|
# If the tag produced has sizes, they override ours. |
# If the tag produced has sizes, they override ours. |
# (for now anyway). |
# (for now anyway). |
# |
# |
|
|
&Apache::lonxml::debug("Base sizes: $width_param x $height_param"); |
&Apache::lonxml::debug("Base sizes: $width_param x $height_param"); |
|
|
my ($plot_x, $plot_y) = &extract_tag_sizes($bgimg, |
my ($plot_x, $plot_y) = &extract_tag_sizes($bgimg, |
$width_param, |
$width_param, |
$height_param ); |
$height_param); |
&Apache::lonxml::debug("Extracted sizes: $plot_x x $plot_y"); |
&Apache::lonxml::debug("Extracted sizes: $plot_x x $plot_y"); |
$label_xscale = $plot_x / $width_param; |
if ($width_param) { |
$label_yscale = $plot_y / $height_param; |
$label_xscale = $plot_x / $width_param; |
|
} |
|
if ($height_param) { |
|
$label_yscale = $plot_y / $height_param; |
|
} |
&Apache::lonxml::debug("Scale factors: $label_xscale $label_yscale"); |
&Apache::lonxml::debug("Scale factors: $label_xscale $label_yscale"); |
|
|
&Apache::lonxml::debug("Image: $bgimg"); |
&Apache::lonxml::debug("Image: $bgimg"); |
Line 272 sub end_bgimg {
|
Line 275 sub end_bgimg {
|
$Apache::lonxml::debug = 0; |
$Apache::lonxml::debug = 0; |
|
|
} else { |
} else { |
|
|
|
|
$result.=&make_eps_image($bgimg,$parstack,$safeeval,-2); |
$result.=&make_eps_image($bgimg,$parstack,$safeeval,-2); |
} |
} |
} |
} |
Line 368 sub get_label_width {
|
Line 369 sub get_label_width {
|
|
|
|
|
} |
} |
|
|
|
sub get_label_height { |
|
my $label = shift; |
|
&Apache::lonxml::debug("image label = $label"); |
|
if (-e $label) { |
|
&Apache::lonxml::debug("$label exists"); |
|
} else { |
|
&Apache::lonxml::debug("$label does not exist"); |
|
} |
|
my $magick = Image::Magick->new; |
|
$magick->Read($label); |
|
my $pixel_height = $magick->Get('height'); |
|
return $pixel_height * $scale_factor; |
|
} |
|
|
sub add_vars { |
sub add_vars { |
my ($name,$order,$label,$labelorder,$value,$image,$safeeval) = @_; |
my ($name,$order,$label,$labelorder,$value,$image,$safeeval) = @_; |
if (!defined($name) || $name eq '') { return; } |
if (!defined($name) || $name eq '') { return; } |
Line 435 sub end_labelgroup {
|
Line 451 sub end_labelgroup {
|
for(my $i=0;$i <= $#Apache::randomlabel::label_arr; $i++) { |
for(my $i=0;$i <= $#Apache::randomlabel::label_arr; $i++) { |
my $label = "$Apache::randomlabel::label_arr[ $idx_arr[$i] ]"; |
my $label = "$Apache::randomlabel::label_arr[ $idx_arr[$i] ]"; |
my $x = $Apache::randomlabel::xcoord[$i]; |
my $x = $Apache::randomlabel::xcoord[$i]; |
# FIXME the 3.5 here is the 'height' of the letter in TeX |
my $y = $Apache::randomlabel::ycoord[$i]; |
my $y = $Apache::randomlabel::ycoord[$i]-3.5; |
if ( $type eq 'text' ) { |
|
# FIXME the 3.5 here is the 'height' of the letter in TeX |
|
$y=$y-3.5; |
|
} |
&Apache::lonxml::debug("initially: x= $x y= $y"); |
&Apache::lonxml::debug("initially: x= $x y= $y"); |
my $value = $Apache::randomlabel::value[$i]; |
my $value = $Apache::randomlabel::value[$i]; |
#x latex coordinate |
#x latex coordinate |
Line 445 sub end_labelgroup {
|
Line 464 sub end_labelgroup {
|
#y latex coordinate |
#y latex coordinate |
# my $ratio=($wwidth > 0 ? $wheight/$wwidth : 1 ); |
# my $ratio=($wwidth > 0 ? $wheight/$wwidth : 1 ); |
my $tcY=$height_param-$y*($height_param/$wheight); |
my $tcY=$height_param-$y*($height_param/$wheight); |
|
if ( $type eq 'image') { |
|
my $label_height = &get_label_height($label); |
|
$tcY=$tcY-$label_height; |
|
} |
|
|
&Apache::lonxml::debug("hparam = $height_param wheight = $wheight texy = $tcY"); |
&Apache::lonxml::debug("hparam = $height_param wheight = $wheight texy = $tcY"); |
$tcX=sprintf('%.2f',$tcX); |
$tcX=sprintf('%.2f',$tcX); |
$tcY=sprintf('%.2f',$tcY); |
$tcY=sprintf('%.2f',$tcY); |
Line 455 sub end_labelgroup {
|
Line 479 sub end_labelgroup {
|
} elsif ( $type eq 'image') { |
} elsif ( $type eq 'image') { |
my ($path,$file) = &Apache::londefdef::get_eps_image($label); |
my ($path,$file) = &Apache::londefdef::get_eps_image($label); |
my $image_name = $path.$file; |
my $image_name = $path.$file; |
my $label_width = get_label_width($label); |
my $label_width = &get_label_width($label); |
|
|
$result .= '\includegraphics[width='.$label_width.'mm]{' |
$result .= '\includegraphics[width='.$label_width.'mm]{' |
.$image_name."}}\n"; |
.$image_name."}}\n"; |