--- loncom/homework/imageresponse.pm 2005/04/22 14:03:56 1.67 +++ loncom/homework/imageresponse.pm 2005/12/01 18:46:31 1.73 @@ -2,7 +2,7 @@ # The LearningOnline Network with CAPA # image click response style # -# $Id: imageresponse.pm,v 1.67 2005/04/22 14:03:56 albertel Exp $ +# $Id: imageresponse.pm,v 1.73 2005/12/01 18:46:31 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -347,8 +347,8 @@ sub start_foil { if ($target eq 'web' || $target eq 'grade' || $target eq 'tex' || $target eq 'analyze') { my $name = &Apache::lonxml::get_param('name',$parstack,$safeeval); - if (!$name) { - &Apache::lonxml::error("Foils without names exist. This can cause problems to malfunction."); + if ($name eq "") { + &Apache::lonxml::warning("Foils without names exist. This can cause problems to malfunction."); $name=$Apache::lonxml::curdepth; } if (defined($Apache::response::foilnames{$name})) { @@ -391,7 +391,7 @@ sub start_text { if ($target eq 'web' || $target eq 'tex' || $target eq 'analyze') { &Apache::lonxml::startredirection; } elsif ($target eq 'edit') { - my $descr=&Apache::lonxml::get_all_text('/text',$parser); + my $descr=&Apache::lonxml::get_all_text('/text',$parser,$style); $result=&Apache::edit::tag_start($target,$token,'Task Description'). &Apache::edit::editfield($token->[1],$descr,'Text',60,2). &Apache::edit::end_row(); @@ -425,7 +425,7 @@ sub start_image { if ($target eq 'web' || $target eq 'tex' || $target eq 'analyze') { &Apache::lonxml::startredirection; } elsif ($target eq 'edit') { - my $bgimg=&Apache::lonxml::get_all_text('/image',$parser); + my $bgimg=&Apache::lonxml::get_all_text('/image',$parser,$style); $Apache::edit::bgimgsrc=$bgimg; $Apache::edit::bgimgsrcdepth=$Apache::lonxml::curdepth; @@ -467,10 +467,30 @@ sub end_image { $result=&Apache::edit::end_table(); } elsif ($target eq 'tex') { my $src = &Apache::lonxml::endredirection(); - my ($path,$file) = &Apache::londefdef::get_eps_image($src); - my ($height_param,$width_param)= - &Apache::londefdef::image_size($src,0.3,$parstack,$safeeval); - $Apache::response::foilgroup{"$name.image"} ='\vskip 0 mm \noindent\graphicspath{{'.$path.'}}\includegraphics[width='.$width_param.' mm]{'.$file.'} '; + + # There may be all sorts of whitespace on fore and aft: + + $src =~ s/\s+$//s; + $src =~ s/^\s+//s; + + # + # Gnuplot e.g. just generates the latex to put inplace. + # + my $graphinclude; + if ($src =~ /^%DYNAMICIMAGE/) { + # This is needed because the newline is not always passed -> tex. + # At present we don't care about the sizing info. + + my ($commentline, $restofstuff) = split(/\n/, $src); + $graphinclude = $src; + $graphinclude =~ s/^$commentline//; + } else { + my ($path,$file) = &Apache::londefdef::get_eps_image($src); + my ($height_param,$width_param)= + &Apache::londefdef::image_size($src,0.3,$parstack,$safeeval); + $graphinclude = '\graphicspath{{'.$path.'}}\includegraphics[width='.$width_param.' mm]{'.$file.'}'; + } + $Apache::response::foilgroup{"$name.image"} ='\vskip 0 mm \noindent '.$graphinclude; } return $result; } @@ -482,7 +502,7 @@ sub start_rectangle { $target eq 'analyze') { &Apache::lonxml::startredirection; } elsif ($target eq 'edit') { - my $coords=&Apache::lonxml::get_all_text('/rectangle',$parser); + my $coords=&Apache::lonxml::get_all_text('/rectangle',$parser,$style); $result=&Apache::edit::tag_start($target,$token,'Rectangle'). &Apache::edit::editline($token->[1],$coords,'Coordinate Pairs',40). &Apache::edit::entercoord(undef,'textnode',undef,undef,'box'). @@ -536,7 +556,7 @@ sub start_polygon { $target eq 'analyze') { &Apache::lonxml::startredirection; } elsif ($target eq 'edit') { - my $coords=&Apache::lonxml::get_all_text('/polygon',$parser); + my $coords=&Apache::lonxml::get_all_text('/polygon',$parser,$style); $result=&Apache::edit::tag_start($target,$token,'Polygon'). &Apache::edit::editline($token->[1],$coords,'Coordinate list',40). &Apache::edit::entercoord(undef,'textnode',undef,undef,'polygon').