Diff for /loncom/interface/lonprintout.pm between versions 1.566 and 1.568.2.11

version 1.566, 2009/11/30 11:03:07 version 1.568.2.11, 2010/11/13 02:04:39
Line 306  sub set_font_size { Line 306  sub set_font_size {
   
     my ($text) = @_;      my ($text) = @_;
   
     $text =~ s/\\begin{document}/\\begin{document}{\\$font_size/;      # There appear to be cases where the font directive is empty.. in which
     $text =~ s/\\end{document}/}\\end{document}/;      # case the first substituion would  insert a spurious \ oh happy day.
     return $text;      # as this has been the cause of much mystery and hair pulling _sigh_
   
       if ($font_size ne '') {
   
           $text =~ s/\\begin{document}/\\begin{document}{\\$font_size/;
       }
       $text =~ s/\\end{document}/}\\end{document}/;
       return $text;
 }  }
   
 # include_pdf - PDF files are included into the   # include_pdf - PDF files are included into the 
Line 494  sub printf_style_subst { Line 499  sub printf_style_subst {
 #     %a    - Assignment name.  #     %a    - Assignment name.
 #     %c    - Course name.  #     %c    - Course name.
 #     %n    - Student name.  #     %n    - Student name.
 #     %s    - The section if it is supplied.  
 #  #
 sub format_page_header {  sub format_page_header {
     my ($width, $format, $assignment, $course, $student, $section) = @_;      my ($width, $format, $assignment, $course, $student) = @_;
   
   
   
     $width = &recalcto_mm($width); # Get width in mm.      $width = &recalcto_mm($width); # Get width in mm.
     my $chars_per_line = int($width/1.6);   # Character/textline.      my $chars_per_line = int($width/2);   # Character/textline.
   
     #  Default format?      #  Default format?
   
Line 518  sub format_page_header { Line 520  sub format_page_header {
  # - Allow the assignment to be 2 lines (wrapped).   # - Allow the assignment to be 2 lines (wrapped).
  #   #
   
           my $firstline = "$student $course";
           if (length($firstline) > $chars_per_line) {
  my $name_length    = int($chars_per_line *3 /4);              my $lastchar = $chars_per_line - length($student) - 1;
  my $sec_length     = int($chars_per_line / 5);              if ($lastchar > 0) {
                   $course = substr($course, 0, $lastchar);
  $format  = "%$name_length".'n';              } else {            # Nothing left of course:
                   $course = '';
  if ($section) {              }
     $format .=  ' - Sec: '."%$sec_length".'s';          }
  }          if (length($assignment) > $chars_per_line) {
               $assignment = substr($assignment, 0, $chars_per_line);
           }
   
  $format .= '\\\\%c \\\\ %a';          $format =  "\\textbf{$student} $course \\hfill \\thepage \\\\ \\textit{$assignment}";
           
   
       } else {
           # An open question is how to handle long user formatted page headers...
           # A possible future is to support e.g. %na so that the user can control
           # the truncation of the elements that can appear in the header.
           #
           $format =  &printf_style_subst("a", $format, $assignment);
           $format =  &printf_style_subst("c", $format, $course);
           $format =  &printf_style_subst("n", $format, $student);
   
           # If the user put %'s in the format string, they  must be escaped
           # to \% else LaTeX will think they are comments and terminate
           # the line.. which is bad!!!
     }      }
     # An open question is how to handle long user formatted page headers...  
     # A possible future is to support e.g. %na so that the user can control  
     # the truncation of the elements that can appear in the header.  
     #  
     $format =  &printf_style_subst("a", $format, $assignment);  
     $format =  &printf_style_subst("c", $format, $course);  
     $format =  &printf_style_subst("n", $format, $student);  
     $format =  &printf_style_subst("s", $format, $section);  
       
       
     # If the user put %'s in the format string, they  must be escaped  
     # to \% else LaTeX will think they are comments and terminate  
     # the line.. which is bad!!!  
           
     # If the user has role author, $course and $assignment are empty so  
     # there is '\\ \\ ' in the page header. That's cause a error in LaTeX  
     if($format =~ /\\\\\s\\\\\s/) {  
         #TODO find sensible caption for page header  
         my $testPrintout = '\\\\'.&mt('Construction Space').' \\\\'.&mt('Test-Printout ');  
         $format =~ s/\\\\\s\\\\\s/$testPrintout/;  
     }  
     #  
     #  We're going to trust LaTeX to break lines appropriately, but  
     #  we'll truncate anything that's more than 3 lines worth of  
     # text.  This is also assuming (which will probably end badly)  
     # nobody's going to embed LaTeX control sequences in the title  
     # header or rather that those control sequences won't get broken  
     # by the stuff below.  
     #  
     my $total_length = 3*$chars_per_line;  
     if (length($format) > $total_length) {  
  $format = substr($format, 0, $total_length);  
     }  
   
   
     return $format;      return $format;
       
 }  }
   
 #  #
Line 1265  sub get_course { Line 1245  sub get_course {
     my $courseidinfo;      my $courseidinfo;
     if (defined($env{'request.course.id'})) {      if (defined($env{'request.course.id'})) {
  $courseidinfo = &Apache::lonxml::latex_special_symbols(&unescape($env{'course.'.$env{'request.course.id'}.'.description'}),'header');   $courseidinfo = &Apache::lonxml::latex_special_symbols(&unescape($env{'course.'.$env{'request.course.id'}.'.description'}),'header');
  my $sec = $env{'request.course.sec'};  
       
     }      }
     return $courseidinfo;      return $courseidinfo;
 }  }
Line 1289  sub page_format_transformation { Line 1267  sub page_format_transformation {
   
     my $name = &get_name();      my $name = &get_name();
     my $courseidinfo = &get_course();      my $courseidinfo = &get_course();
       if (defined($courseidinfo)) { $courseidinfo=' - '.$courseidinfo }
     my $header_text  = $parmhash{'print_header_format'};      my $header_text  = $parmhash{'print_header_format'};
     $header_text     = &format_page_header($textwidth, $header_text, $assignment,      $header_text     = &format_page_header($textwidth, $header_text, $assignment,
    $courseidinfo, $name);     $courseidinfo, $name);
Line 1309  sub page_format_transformation { Line 1288  sub page_format_transformation {
     $text =~ s/\\pagestyle{fancy}\\rhead{}\\chead{}\s*\\begin{document}/\\textheight = $textheight\\oddsidemargin = $evenoffset\n\\evensidemargin = $evenoffset $topmargintoinsert\\textwidth= $textwidth\\newlength{\\minipagewidth}\n\\setlength{\\minipagewidth}{\\textwidth\/\$number_of_columns-0\.2cm}\\renewcommand{\\ref}{\\keephidden\}\\pagestyle{fancy}\\rhead{}\\chead{}\\usepackage{booktabs}\\begin{document}\\voffset=-0\.8cm\n\\setcounter{page}{1}  \\vskip 5 mm\n /;      $text =~ s/\\pagestyle{fancy}\\rhead{}\\chead{}\s*\\begin{document}/\\textheight = $textheight\\oddsidemargin = $evenoffset\n\\evensidemargin = $evenoffset $topmargintoinsert\\textwidth= $textwidth\\newlength{\\minipagewidth}\n\\setlength{\\minipagewidth}{\\textwidth\/\$number_of_columns-0\.2cm}\\renewcommand{\\ref}{\\keephidden\}\\pagestyle{fancy}\\rhead{}\\chead{}\\usepackage{booktabs}\\begin{document}\\voffset=-0\.8cm\n\\setcounter{page}{1}  \\vskip 5 mm\n /;
  }   }
  if ($papersize eq 'a4') {   if ($papersize eq 'a4') {
     $text =~ s/(\\begin{document})/$1\\special{papersize=210mm,297mm}/;              my $papersize_text;
               if ($perm{'pav'}) {
                   $papersize_text = '\\special{papersize=210mm,297mm}';
               } else {
                   $papersize_text = '\special{papersize=210mm,297mm}';
               }
               $text =~ s/(\\begin{document})/$1$papersize_text/;
  }   }
     }      }
     if ($tableofcontents eq 'yes') {$text=~s/(\\setcounter\{page\}\{1\})/$1 \\tableofcontents\\newpage /;}      if ($tableofcontents eq 'yes') {$text=~s/(\\setcounter\{page\}\{1\})/$1 \\tableofcontents\\newpage /;}
Line 1540  sub print_page_in_course { Line 1525  sub print_page_in_course {
  my $title=&Apache::lonnet::gettitle($symb);   my $title=&Apache::lonnet::gettitle($symb);
  $title = &Apache::lonxml::latex_special_symbols($title);   $title = &Apache::lonxml::latex_special_symbols($title);
     } else {      } else {
  $result.=$currentURL;          my $esc_currentURL= $currentURL;
           $esc_currentURL =~ s/_/\\_/g;
           $result.=$esc_currentURL;
     }      }
     $result .= '\\\\';      $result .= '\\\\';
   
Line 1570  sub print_page_in_course { Line 1557  sub print_page_in_course {
  }   }
  # these resources go through the XML transformer:   # these resources go through the XML transformer:
   
  elsif ($resource_src =~ /\.(problem|exam|quiz|assess|survey|form|library|page|xml|html|htm\xhtml|xhtm)$/)  {   elsif ($resource_src =~ /\.(problem|exam|quiz|assess|survey|form|library|xml|html|htm|xhtml|xhtm)$/)  {
     my $urlp = &Apache::lonnet::clutter($resource_src);      my $urlp = &Apache::lonnet::clutter($resource_src);
     my %form;      my %form;
     my %moreenv;      my %moreenv;
Line 1581  sub print_page_in_course { Line 1568  sub print_page_in_course {
   
     $form{'grade_target'}  = 'tex';      $form{'grade_target'}  = 'tex';
     $form{'textwidth'}    = &get_textwidth($helper, $LaTeXwidth);      $form{'textwidth'}    = &get_textwidth($helper, $LaTeXwidth);
     $form{'pdfFormFiels'} = $pdfFormFields; #       $form{'pdfFormFields'} = 'no';
     $form{'showallfoils'} = $helper->{'VARS'}->{'showallfoils'};          $form{'showallfoils'} = $helper->{'VARS'}->{'showallfoils'};    
           
     $form{'problem_split'}=$parmhash{'problem_stream_switch'};      $form{'problem_split'}=$parmhash{'problem_stream_switch'};
Line 1685  sub print_page_in_course { Line 1672  sub print_page_in_course {
 # List of recently generated print files  # List of recently generated print files
 #  #
 sub recently_generated {  sub recently_generated {
     my $r=shift;      my ($prtspool) = @_;
     my $prtspool=$r->dir_config('lonPrtDir');      my $output;
   
     my $zip_result;      my $zip_result;
     my $pdf_result;      my $pdf_result;
     opendir(DIR,$prtspool);      opendir(DIR,$prtspool);
Line 1719  sub recently_generated { Line 1707  sub recently_generated {
  if ($ext eq 'zip') { $zip_result .= $result; }   if ($ext eq 'zip') { $zip_result .= $result; }
     }      }
     if ($zip_result || $pdf_result) {      if ($zip_result || $pdf_result) {
         $r->print('<hr />');          $output = '<hr />';
     }      }
     if ($zip_result) {      if ($zip_result) {
  $r->print('<h3>'.&mt('Recently generated printout zip files')."</h3>\n"   $output .='<h3>'.&mt('Recently generated printout zip files')."</h3>\n"
                   .&Apache::loncommon::start_data_table()                    .&Apache::loncommon::start_data_table()
                   .&Apache::loncommon::start_data_table_header_row()                    .&Apache::loncommon::start_data_table_header_row()
                   .'<th>'.&mt('Download').'</th>'                    .'<th>'.&mt('Download').'</th>'
Line 1730  sub recently_generated { Line 1718  sub recently_generated {
                   .'<th>'.&mt('File Size (Bytes)').'</th>'                    .'<th>'.&mt('File Size (Bytes)').'</th>'
                   .&Apache::loncommon::end_data_table_header_row()                    .&Apache::loncommon::end_data_table_header_row()
                   .$zip_result                    .$zip_result
                   .&Apache::loncommon::end_data_table()                    .&Apache::loncommon::end_data_table();
         );  
     }      }
     if ($pdf_result) {      if ($pdf_result) {
  $r->print('<h3>'.&mt('Recently generated printouts')."</h3>\n"   $output .='<h3>'.&mt('Recently generated printouts')."</h3>\n"
                   .&Apache::loncommon::start_data_table()                    .&Apache::loncommon::start_data_table()
                   .&Apache::loncommon::start_data_table_header_row()                    .&Apache::loncommon::start_data_table_header_row()
                   .'<th>'.&mt('Download').'</th>'                    .'<th>'.&mt('Download').'</th>'
Line 1742  sub recently_generated { Line 1729  sub recently_generated {
                   .'<th>'.&mt('File Size (Bytes)').'</th>'                    .'<th>'.&mt('File Size (Bytes)').'</th>'
                   .&Apache::loncommon::end_data_table_header_row()                    .&Apache::loncommon::end_data_table_header_row()
                   .$pdf_result                    .$pdf_result
                   .&Apache::loncommon::end_data_table()                    .&Apache::loncommon::end_data_table();
         );  
     }      }
       return $output;
 }  }
   
 #  #
Line 1972  ENDPART Line 1959  ENDPART
     my %form;      my %form;
     $form{'grade_target'} = 'tex';      $form{'grade_target'} = 'tex';
     $form{'textwidth'}    = &get_textwidth($helper, $LaTeXwidth);      $form{'textwidth'}    = &get_textwidth($helper, $LaTeXwidth);
     $form{'pdfFormFields'} = $pdfFormFields;      $form{'pdfFormFields'} = 'no';
   
     # If form.showallfoils is set, then request all foils be shown:      # If form.showallfoils is set, then request all foils be shown:
     # privilege will be enforced both by not allowing the       # privilege will be enforced both by not allowing the 
Line 2119  ENDPART Line 2106  ENDPART
  $form{'latex_type'}=$helper->{'VARS'}->{'LATEX_TYPE'};   $form{'latex_type'}=$helper->{'VARS'}->{'LATEX_TYPE'};
  if ($currentURL=~/\/syllabus$/) {$currentURL=~s/\/res//;}   if ($currentURL=~/\/syllabus$/) {$currentURL=~s/\/res//;}
  $resources_printed .= $currentURL.':';   $resources_printed .= $currentURL.':';
  my $texversion = &print_latex_header($helper->{'VARS'}->{'LATEX_TYPE'});   my $texversion = &ssi_with_retries($currentURL, $ssi_retry_count, %form);
  $texversion .= &ssi_with_retries($currentURL, $ssi_retry_count, %form);  
  if ($helper->{'VARS'}->{'PRINT_ANNOTATIONS'} eq 'yes') {   if ($helper->{'VARS'}->{'PRINT_ANNOTATIONS'} eq 'yes') {
     my $annotation = &annotate($currentURL);      my $annotation = &annotate($currentURL);
     $texversion    =~ s/(\\end{document})/$annotation$1/;      $texversion    =~ s/(\\end{document})/$annotation$1/;
Line 2153  ENDPART Line 2139  ENDPART
   
                 
  } else {   } else {
     &Apache::lonnet::logthis("Unsupported type handler");  
     $result.=&unsupported($currentURL,$helper->{'VARS'}->{'LATEX_TYPE'},      $result.=&unsupported($currentURL,$helper->{'VARS'}->{'LATEX_TYPE'},
   $helper->{'VARS'}->{'symb'});    $helper->{'VARS'}->{'symb'});
  }   }
Line 2228  ENDPART Line 2213  ENDPART
  &Apache::lonxml::remember_problem_counter();   &Apache::lonxml::remember_problem_counter();
  if ($flag_latex_header_remove eq 'NO') {   if ($flag_latex_header_remove eq 'NO') {
     $texversion.=&print_latex_header($helper->{'VARS'}->{'LATEX_TYPE'});  # RF      $texversion.=&print_latex_header($helper->{'VARS'}->{'LATEX_TYPE'});  # RF
     $flag_latex_header_remove = 'YES';                      unless (($helper->{'VARS'}->{'ANSWER_TYPE'} eq 'only') ||
                               (($i==0) &&
                                (($urlp=~/\.page$/) ||
                                 ($helper->{'VARS'}->{'PRINT_TYPE'} eq 'map_problems_in_page') ||
                                 ($helper->{'VARS'}->{'PRINT_TYPE'} eq 'map_resources_in_page')))) {
   
           $flag_latex_header_remove = 'YES';
                       }
  }   }
  $texversion.=&ssi_with_retries($urlp, $ssi_retry_count, %form);   $texversion.=&ssi_with_retries($urlp, $ssi_retry_count, %form);
  if ($urlp=~/\.page$/) {   if ($urlp=~/\.page$/) {
Line 2249  ENDPART Line 2241  ENDPART
     &Apache::lonxml::restore_problem_counter();      &Apache::lonxml::restore_problem_counter();
     my $answer=&ssi_with_retries($urlp, $ssi_retry_count, %answerform);      my $answer=&ssi_with_retries($urlp, $ssi_retry_count, %answerform);
   
                       if ($urlp =~ /\.page$/) {
                           $answer =~ s/\\end{document}(\d*)$//;
                       }
     if ($helper->{'VARS'}->{'ANSWER_TYPE'} eq 'no') {      if ($helper->{'VARS'}->{'ANSWER_TYPE'} eq 'no') {
  $texversion=~s/(\\keephidden{ENDOFPROBLEM})/$answer$1/;                          if ($urlp =~ /\.page$/) {
                               my @probs = split(/\\keephidden{ENDOFPROBLEM}/,$texversion);
                               my $lastprob = pop(@probs);
                               $texversion = join('\keephidden{ENDOFPROBLEM}',@probs).
                               $answer.'\keephidden{ENDOFPROBLEM}'.$lastprob;
                           } else {
                               $texversion=~s/(\\keephidden{ENDOFPROBLEM})/$answer$1/;
                           }
     } else {      } else {
  if ($urlp=~/\.(problem|exam|quiz|assess|survey|form|library)$/) {   if ($urlp=~/\.(problem|exam|quiz|assess|survey|form|library|page)$/) {
     $texversion=&print_latex_header($helper->{'VARS'}->{'LATEX_TYPE'});      $texversion=&print_latex_header($helper->{'VARS'}->{'LATEX_TYPE'});
     $texversion =~ s/\\begin{document}//;  #    $texversion =~ s/\\begin{document}//;
     my $title = &Apache::lonnet::gettitle($master_seq[$i]);      my $title = &Apache::lonnet::gettitle($master_seq[$i]);
     $title = &Apache::lonxml::latex_special_symbols($title);      $title = &Apache::lonxml::latex_special_symbols($title);
     my $body ='\vskip 0 mm \noindent\textbf{'.$title.'}\vskip 0 mm ';      my $body ='\vskip 0 mm \noindent\textbf{'.$title.'}\vskip 0 mm ';
Line 2284  ENDPART Line 2286  ENDPART
  if (($selectionmade == 4) and ($assignment ne $prevassignment)) {   if (($selectionmade == 4) and ($assignment ne $prevassignment)) {
     my $name = &get_name();      my $name = &get_name();
     my $courseidinfo = &get_course();      my $courseidinfo = &get_course();
       if (defined($courseidinfo)) { $courseidinfo=' - '.$courseidinfo }
     $prevassignment=$assignment;      $prevassignment=$assignment;
     my $header_text = $parmhash{'print_header_format'};      my $header_text = $parmhash{'print_header_format'};
     $header_text    = &format_page_header($textwidth, $header_text,      $header_text    = &format_page_header($textwidth, $header_text,
Line 2303  ENDPART Line 2306  ENDPART
  $form{'latex_type'}=$helper->{'VARS'}->{'LATEX_TYPE'};   $form{'latex_type'}=$helper->{'VARS'}->{'LATEX_TYPE'};
  if ($urlp=~/\/syllabus$/) {$urlp=~s/\/res//;}   if ($urlp=~/\/syllabus$/) {$urlp=~s/\/res//;}
  $resources_printed .= $urlp.':';   $resources_printed .= $urlp.':';
  my $texversion = &print_latex_header($helper->{'VARS'}->{'LATEX_TYPE'});   my $texversion = &ssi_with_retries($urlp, $ssi_retry_count, %form);
  $texversion .= &ssi_with_retries($urlp, $ssi_retry_count, %form);  
  if ($helper->{'VARS'}->{'PRINT_ANNOTATIONS'} eq 'yes') {   if ($helper->{'VARS'}->{'PRINT_ANNOTATIONS'} eq 'yes') {
     my $annotation = &annotate($urlp);      my $annotation = &annotate($urlp);
     $texversion =~ s/(\\end{document)/$annotation$1/;      $texversion =~ s/(\\end{document)/$annotation$1/;
Line 2321  ENDPART Line 2323  ENDPART
  if ($i > 0) {   if ($i > 0) {
     $result .= '\cleardoublepage';      $result .= '\cleardoublepage';
  }   }
  $result .= &include_pdf($urlp);                  my $texfrompdf = &include_pdf($urlp);
                   if ($flag_latex_header_remove ne 'NO') {
                       $texfrompdf = &latex_header_footer_remove($texfrompdf);
                   }
                   $result .= $texfrompdf;
  if ($i != $#master_seq) {   if ($i != $#master_seq) {
     if ($numberofcolumns eq '1') {      if ($numberofcolumns eq '1') {
  $result .= '\newpage';   $result .= '\newpage';
Line 2808  sub print_resources { Line 2814  sub print_resources {
     #   so we will just rely on prntout.pl to strip  ENDOFSTUDENTSTAMP from the      #   so we will just rely on prntout.pl to strip  ENDOFSTUDENTSTAMP from the
     #   postscript.  Each ENDOFSTUDENTSTAMP will go on a line by itself.      #   postscript.  Each ENDOFSTUDENTSTAMP will go on a line by itself.
     #      #
       my $syllabus_first = 0;
     foreach my $curresline (@{$master_seq})  {      foreach my $curresline (@{$master_seq})  {
  if (defined $page_breaks{$curresline}) {   if (defined $page_breaks{$curresline}) {
     if($i != 0) {      if($i != 0) {
Line 2818  sub print_resources { Line 2824  sub print_resources {
  $i++;   $i++;
   
  if ( !($type eq 'problems' &&    if ( !($type eq 'problems' && 
        ($curresline!~ m/\.(problem|exam|quiz|assess|survey|form|library)$/)) ) {         ($curresline!~ m/\.(problem|exam|quiz|assess|survey|form|library|page)$/)) ) {
     my ($map,$id,$res_url) = &Apache::lonnet::decode_symb($curresline);      my ($map,$id,$res_url) = &Apache::lonnet::decode_symb($curresline);
     if (&Apache::lonnet::allowed('bre',$res_url)) {      if (&Apache::lonnet::allowed('bre',$res_url)) {
  if ($res_url!~m|^ext/|   if ($res_url!~m|^ext/|
Line 2827  sub print_resources { Line 2833  sub print_resources {
     &Apache::lonxml::remember_problem_counter();          &Apache::lonxml::remember_problem_counter();    
   
     my $rendered = &get_student_view_with_retries($curresline,$ssi_retry_count,$username,$userdomain,$env{'request.course.id'},'tex',$moreenv);      my $rendered = &get_student_view_with_retries($curresline,$ssi_retry_count,$username,$userdomain,$env{'request.course.id'},'tex',$moreenv);
                       if ($res_url =~ /\.page$/) {
                           if ($remove_latex_header eq 'NO') {
                               if (!($rendered =~ /\\begin\{document\}/)) {
                                   $rendered = &print_latex_header().$rendered;
                               }
                           }
                           if ($remove_latex_header eq 'YES') {
                               $rendered = &latex_header_footer_remove($rendered);
                           } else {
                               $rendered =~ s/\\end{document}\d*//;
                           }
                       }
     if(($helper->{'VARS'}->{'ANSWER_TYPE'} eq 'no') ||      if(($helper->{'VARS'}->{'ANSWER_TYPE'} eq 'no') ||
        ($helper->{'VARS'}->{'ANSWER_TYPE'} eq 'only')) {         ($helper->{'VARS'}->{'ANSWER_TYPE'} eq 'only')) {
  #   Use a copy of the hash so we don't pervert it on future loop passes.   #   Use a copy of the hash so we don't pervert it on future loop passes.
Line 2844  sub print_resources { Line 2862  sub print_resources {
   
           
     my $header =&print_latex_header($helper->{'VARS'}->{'LATEX_TYPE'});      my $header =&print_latex_header($helper->{'VARS'}->{'LATEX_TYPE'});
     $header =~ s/\\begin{document}//;     #<<<<<                              unless ($helper->{'VARS'}->{'ANSWER_TYPE'} eq 'only') {
           $header =~ s/\\begin{document}//;     #<<<<<
                               }
     my $title = &Apache::lonnet::gettitle($curresline);      my $title = &Apache::lonnet::gettitle($curresline);
     $title = &Apache::lonxml::latex_special_symbols($title);      $title = &Apache::lonxml::latex_special_symbols($title);
     my $body   ='\vskip 0 mm \noindent\textbf{'.$title.'}\vskip 0 mm ';      my $body   ='\vskip 0 mm \noindent\textbf{'.$title.'}\vskip 0 mm ';
Line 2867  sub print_resources { Line 2887  sub print_resources {
     }      }
     $current_output .= $rendered;          $current_output .= $rendered;    
  } elsif ($res_url=~/\/(smppg|syllabus|aboutme|bulletinboard)$/) {   } elsif ($res_url=~/\/(smppg|syllabus|aboutme|bulletinboard)$/) {
       if ($i == 1) {
    $syllabus_first = 1;
       }
     $printed .= $curresline.':';      $printed .= $curresline.':';
     my $rendered = &get_student_view_with_retries($curresline,$ssi_retry_count,$username,$userdomain,$env{'request.course.id'},'tex',$moreenv);      my $rendered = &get_student_view_with_retries($curresline,$ssi_retry_count,$username,$userdomain,$env{'request.course.id'},'tex',$moreenv);
     if ($helper->{'VARS'}->{'PRINT_ANNOTATIONS'} eq 'yes') {      if ($helper->{'VARS'}->{'PRINT_ANNOTATIONS'} eq 'yes') {
Line 2902  sub print_resources { Line 2925  sub print_resources {
  if (&Apache::loncommon::connection_aborted($r)) { last; }   if (&Apache::loncommon::connection_aborted($r)) { last; }
     }      }
   
       if ($syllabus_first) {
           $current_output =~ s/\\\\ Last updated:/Last updated:/
       }
     my $courseidinfo = &get_course();      my $courseidinfo = &get_course();
       if (defined($courseidinfo)) { $courseidinfo=' - '.$courseidinfo }
       if ($usersection ne '') {$courseidinfo.=' - Sec. '.$usersection}
     my $currentassignment=&Apache::lonxml::latex_special_symbols($helper->{VARS}->{'assignment'},'header');      my $currentassignment=&Apache::lonxml::latex_special_symbols($helper->{VARS}->{'assignment'},'header');
     my $header_line =      my $header_line =
  &format_page_header($LaTeXwidth, $parmhash{'print_header_format'},   &format_page_header($LaTeXwidth, $parmhash{'print_header_format'},
     $currentassignment, $courseidinfo, $fullname, $usersection);      $currentassignment, $courseidinfo, $fullname);
     my $header_start = ($columns_in_format == 1) ? '\lhead'      my $header_start = ($columns_in_format == 1) ? '\lhead'
                                          : '\fancyhead[LO]';                                           : '\fancyhead[LO]';
     $header_line = $header_start.'{'.$header_line.'}';      $header_line = $header_start.'{'.$header_line.'}';
Line 2985  sub init_perm { Line 3012  sub init_perm {
  $perm{'pfo'}=&Apache::lonnet::allowed('pfo',   $perm{'pfo'}=&Apache::lonnet::allowed('pfo',
   $env{'request.course.id'}.'/'.$env{'request.course.sec'});    $env{'request.course.id'}.'/'.$env{'request.course.sec'});
     }      }
       $perm{'vgr'}=&Apache::lonnet::allowed('vgr',$env{'request.course.id'});
       if (!$perm{'vgr'}) {
           $perm{'vgr'}=&Apache::lonnet::allowed('vgr',
                      $env{'request.course.id'}.'/'.$env{'request.course.sec'});
       }
 }  }
   
 sub get_randomly_ordered_warning {  sub get_randomly_ordered_warning {
Line 3378  ALL_PROBLEMS Line 3410  ALL_PROBLEMS
   'multichoice="1" addstatus="1" closeallpages="1"',    'multichoice="1" addstatus="1" closeallpages="1"',
   'RESOURCES',     'RESOURCES', 
   'PRINT_FORMATTING',    'PRINT_FORMATTING',
   '',    $map,
   $isProblem, '', $symbFilter,    $isProblem, '', $symbFilter,
   $start_new_option);    $start_new_option);
  $resource_selector .=  <<RESOURCE_SELECTOR;   $resource_selector .=  <<RESOURCE_SELECTOR;
Line 3702  CHOOSE_FROM_ANY_SEQUENCE Line 3734  CHOOSE_FROM_ANY_SEQUENCE
     my $startedTable = 0; # have we started an HTML table yet? (need      my $startedTable = 0; # have we started an HTML table yet? (need
                           # to close it later)                            # to close it later)
   
     if (($perm{'pav'} and &Apache::lonnet::allowed('vgr',$env{'request.course.id'})) or       if (($perm{'pav'} and $perm{'vgr'}) or
  ($helper->{VARS}->{'construction'} eq '1')) {   ($helper->{VARS}->{'construction'} eq '1')) {
  &addMessage('<br />'   &addMessage('<br />'
                    .'<h3>'.&mt('Print Options').'</h3>'                     .'<h3>'.&mt('Print Options').'</h3>'
Line 3948  PROBTYPE Line 3980  PROBTYPE
         return $helper;          return $helper;
     }          }    
   
     $r->print($helper->display());      my $footer;
     if ($helper->{STATE} eq 'START') {      if ($helper->{STATE} eq 'START') {
  &recently_generated($r);   my $prtspool=$r->dir_config('lonPrtDir');
           $footer = &recently_generated($prtspool);
     }      }
       $r->print($helper->display($footer));
     &Apache::lonhelper::unregisterHelperTags();      &Apache::lonhelper::unregisterHelperTags();
   
     return OK;      return OK;
Line 4027  sub render { Line 4061  sub render {
     my $PaperType=&mt('Paper type');      my $PaperType=&mt('Paper type');
     my $landscape=&mt('Landscape');      my $landscape=&mt('Landscape');
     my $portrait=&mt('Portrait');      my $portrait=&mt('Portrait');
     my $pdfFormLabel=&mt('PDF-Formfields');  
     my $with=&mt('with Formfields');  
     my $without=&mt('without Formfields');  
           
   
     $result.='<h3>'.&mt('Layout Options').'</h3>'      $result.='<h3>'.&mt('Layout Options').'</h3>'
Line 4038  sub render { Line 4069  sub render {
             .'<th>'.$PageLayout.'</th>'              .'<th>'.$PageLayout.'</th>'
             .'<th>'.$NumberOfColumns.'</th>'              .'<th>'.$NumberOfColumns.'</th>'
             .'<th>'.$PaperType.'</th>'              .'<th>'.$PaperType.'</th>'
             .'<th>'.$pdfFormLabel.'</th>'  
             .&Apache::loncommon::end_data_table_header_row()              .&Apache::loncommon::end_data_table_header_row()
             .&Apache::loncommon::start_data_table_row()              .&Apache::loncommon::start_data_table_row()
     .'<td>'      .'<td>'
Line 4078  sub render { Line 4108  sub render {
     }      }
     $result .= <<HTML;      $result .= <<HTML;
         </select>          </select>
     </td>          <hidden name="${var}.pdfFormFields" value="no" />
     <td align='center'>  
         <select name='${var}.pdfFormFields'>  
             <option selected="selected" value="no">$without</option>  
             <option value="yes">$with</option>  
         </select>  
     </td>      </td>
 HTML  HTML
     $result.=&Apache::loncommon::end_data_table_row()      $result.=&Apache::loncommon::end_data_table_row()

Removed from v.1.566  
changed lines
  Added in v.1.568.2.11


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>