--- rat/lonpage.pm 2009/10/06 11:01:35 1.91.2.1 +++ rat/lonpage.pm 2010/07/30 22:40:53 1.94.2.1 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Page Handler # -# $Id: lonpage.pm,v 1.91.2.1 2009/10/06 11:01:35 foxr Exp $ +# $Id: lonpage.pm,v 1.94.2.1 2010/07/30 22:40:53 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -158,6 +158,19 @@ sub handler { my $number_of_columns = 1; my $requrl=$r->uri; my $target = $env{'form.grade_target'}; + +# Short term solution: define target as 'tex_answer' when retrieving answers +# for resources in a .page when generating printouts. +# A better long-term fix would be to modify the way problem rendering, and +# answer rendering are retrieved for individual resources when printing a .page, +# so rendered problem and answer are sequential for individual resources in +# the .page +# + if ($target eq 'answer') { + if ($env{'form.answer_output_mode'} eq 'tex') { + $target = 'tex_answer'; + } + } # &Apache::lonnet::logthis("Got a target of $target"); if ($target eq 'meta') { &Apache::loncommon::content_type($r,'text/html'); @@ -242,12 +255,14 @@ sub handler { my %posthash=('request.prefix' => $prefix, 'LONCAPA_INTERNAL_no_discussion' => 'true', 'symb' => $symb); - if ($env{'form.grade_target'} eq 'tex') { + if (($env{'form.grade_target'} eq 'tex') || + ($env{'form.answer_output_mode'} eq 'tex')) { $posthash{'grade_target'}=$env{'form.grade_target'}; $posthash{'textwidth'}=$env{'form.textwidth'}; $posthash{'problem_split'}=$env{'form.problem_split'}; $posthash{'latex_type'}=$env{'form.latex_type'}; $posthash{'rndseed'}=$env{'form.rndseed'}; + $posthash{'answer_output_mode'} = $env{'form.answer_output_mode'}; } my $submitted=exists($env{'form.all_submit'}); if (!$submitted) { @@ -271,7 +286,7 @@ sub handler { } my $output=Apache::lonnet::ssi($src,%posthash); $output=~s|//(\s*)?\s||gs; - if ($target eq 'tex') { + if (($target eq 'tex') || ($target eq 'tex_answer')) { $output =~ s/^([^&]+)\\begin{document}//; $output =~ s/\\end{document}//; # $output = '\parbox{\minipagewidth}{ '.$output.' }'; @@ -372,7 +387,7 @@ sub handler { # ------------------------------------------------------------------ Build page # ---------------------------------------------------------------- Send headers - unless ($target eq 'tex') { + unless (($target eq 'tex') || ($target eq 'tex_answer')) { if ($isxml) { &Apache::loncommon::content_type($r,'text/xml'); } else { @@ -396,7 +411,7 @@ sub handler { &Apache::lonenc::check_encrypt($requrl) .'">'); } - } elsif ($target eq 'tex') { + } elsif (($target eq 'tex') || ($target eq 'tex_answer')) { # I think this is not needed as the header # will be put in for each of the page parts # by the londefdef.pm now that we are opening up @@ -410,7 +425,7 @@ sub handler { # \begin{document}'); } # ----------------------------------------------------------------- Start table - if ($target eq 'tex') { + if (($target eq 'tex') || ($target eq 'tex_answer')) { # # $r->print('\begin{longtable}INSERTTHEHEADOFLONGTABLE\endfirsthead\endhead '); if ($number_of_columns le $lcm) {$number_of_columns=$lcm;}; } else { @@ -419,7 +434,7 @@ sub handler { # generate rows for ($i=0;$i<=$#rows;$i++) { if ($rows[$i]) { - unless ($target eq 'tex') { + unless (($target eq 'tex') || ($target eq 'tex_answer')) { $r->print("\n