--- loncom/interface/printout.pl 2006/06/26 21:18:43 1.106 +++ loncom/interface/printout.pl 2006/09/14 17:04:42 1.110 @@ -700,7 +700,6 @@ sub busy_wait_command { $SIG{CHLD} = \&REAPER; $done=0; - print("

Doing : $command"); my $pid=open(CMD,"$command |"); if ($advanced_role) { &Apache::lonhtmlcommon::Update_PrgWin('',$progress_win,$message); @@ -720,7 +719,6 @@ sub busy_wait_command { $SIG{CHLD}='IGNORE'; close(CMD); } - print("

End

"); # Repagninate # What we need to do: @@ -749,12 +747,11 @@ sub repaginate { my $line; my $total_pages; # Total pages in document. my $seen_pages = 0; # There are several %%Pages only the first is useful - my $student_number = 0; # Index of student we're working on. my @pages_in_student; # For each student his/her initial page count. my $max_pages = 0; # Pages in 'longest' student. my $page_number = 0; &Apache::lonhtmlcommon::Update_PrgWin('',\%prog_state, - "Counting pages for student: ".$student_number+1); + &mt("Counting pages for student: [_1]",1)); while ($line = ) { @@ -776,38 +773,42 @@ sub repaginate { my @pageinfo = split(/ /, $line); if ($page_number < $pageinfo[1]) { $page_number = $pageinfo[1]; + } elsif ($pageinfo[2] ne 1) { + # current page count reset, and it's not because of a + # minipage + # - save the page_number, reset and, if necessary + # update max_pages. + push(@pages_in_student, $page_number); + &Apache::lonhtmlcommon::Update_PrgWin('',\%prog_state, + &mt("Counting pages for student: [_1]", scalar(@pages_in_student))); + if ($page_number > $max_pages) { + $max_pages = $page_number; + } + $page_number = $pageinfo[1]; } } - # ENDOFSTUDENTSTAMP - save the page_number, reset and, if necessary - # udpate max_pages. - # - if ($line =~ /ENDOFSTUDENTSTAMP/) { - $pages_in_student[$student_number] = $page_number; - $student_number++; - &Apache::lonhtmlcommon::Update_PrgWin('',\%prog_state, - "Counting pages for student: ".$student_number+1); - - if ($page_number > $max_pages) { - $max_pages = $page_number; - } - $page_number = 0; - - } } + # file ended so one more student + push(@pages_in_student, $page_number); + &Apache::lonhtmlcommon::Update_PrgWin('',\%prog_state, + &mt("Counting pages for student: [_1]",scalar(@pages_in_student))); + if ($page_number > $max_pages) { + $max_pages = $page_number; + } + $page_number = 0; + close(PSFILE); # If 2 columns, max_pages must go to an even number of columns: - &Apache::lonnet::logthis("Before 2 col adjust max-pages = $max_pages"); if ($num_columns == 2) { if ($max_pages % 2) { $max_pages++; } } - &Apache::lonnet::logthis("after adjust: $max_pages"); # Now rewrite the LaTex file, substituting our \special # with an appropriate number of \newpage directives. @@ -818,7 +819,7 @@ sub repaginate { open(LATEXOUT, ">$outfilename"); - $student_number = 0; # first student... + my $student_number = 0; # Index of student we're working on. &Apache::lonhtmlcommon::Update_PrgWin('',\%prog_state, "Repaginating student ".$student_number+1); @@ -830,9 +831,8 @@ sub repaginate { # End of student replace with 0 or more newpages. my $addlines = $max_pages - $pages_in_student[$student_number]; - &Apache::lonnet::logthis("student: $pages_in_student[$student_number] add: $addlines"); while($addlines) { - print LATEXOUT '\linebreak \strut \pagebreak'; + print LATEXOUT '\clearpage \strut \clearpage'; $addlines--; } @@ -848,7 +848,7 @@ sub repaginate { close(LATEXIN); close(LATEXOUT); - rename($outfilename, $latex_filename); + rename($outfilename, $latex_filename); }