--- loncom/interface/printout.pl 2006/06/19 21:40:29 1.102 +++ loncom/interface/printout.pl 2006/06/26 10:11:48 1.105 @@ -234,7 +234,8 @@ print "Return $eps_f"; # Debugging @@ -486,16 +487,28 @@ foreach $texfile (@texfile) { &busy_wait_command("latex $latex_file 1>/dev/null 2>/dev/null", "for $status_statement first latex to repaginate", \%prog_state, $name_file); - &busy_wait_command("latex $latex_file 1>/dev/null 2>/dev/null", - "for $status_statement second latex to repaginate", - \%prog_state, $name_file); - &busy_wait_command("latex $latex_file 1>/dev/null 2>/dev/null", - "for $status_statement third latex to repaginate", - \%prog_state, $name_file); + if ($tableofcontents eq 'yes') { + &busy_wait_command("latex $latex_file 1>/dev/null 2>/dev/null", + "for $status_statement second latex to repaginate", + \%prog_state, $name_file); + &busy_wait_command("latex $latex_file 1>/dev/null 2>/dev/null", + "for $status_statement third latex to repaginate", + \%prog_state, $name_file); + } + if ($tableofindex eq 'yes') { + my $idxname = $latex_file; + $idxname =~ s/\.tex$/\.idx/; + &busy_wait_command("makindex $idxname", + "Re-creating index file", + \%prog_state, $idxname); + &busy_wait_command("latex $latex_file 1>/dev/null 2>/dev/null", + "for $status_statement now Recreting index (latex)", + \%prog_state, $dvi_file); + + } &busy_wait_command("$comma $name_file 1>dev/null 2>/dev/null", "for $status_statement dvips to repaginate", \%prog_state, $new_name_file); - print "\n

PDF output file (see link below)

\n"; $new_name_file =~ m/^(.*)\./; my $ps_file = my $tempo_file = $1.'temporar.ps'; @@ -576,12 +589,24 @@ foreach $texfile (@texfile) { &busy_wait_command("latex $latex_file 1>/dev/null 2>/dev/null", "for $status_statement first latex to repaginate", \%prog_state, $name_file); - &busy_wait_command("latex $latex_file 1>/dev/null 2>/dev/null", - "for $status_statement second latex to repaginate", - \%prog_state, $name_file); - &busy_wait_command("latex $latex_file 1>/dev/null 2>/dev/null", - "for $status_statement third latex to repaginate", - \%prog_state, $name_file); + if ($tableofcontents eq 'yes') { + &busy_wait_command("latex $latex_file 1>/dev/null 2>/dev/null", + "for $status_statement second latex to repaginate", + \%prog_state, $name_file); + &busy_wait_command("latex $latex_file 1>/dev/null 2>/dev/null", + "for $status_statement third latex to repaginate", + \%prog_state, $name_file); + } + if ($tableofindex eq 'yes') { + my $idxname = $latex_file; + $idxname =~ s/\.tex$/\.idx/; + &busy_wait_command("makeindex $idxname", + "Re-creating index file", + \%prog_state, $idxname); + &busy_wait_command("latex $latex_file 1>/dev/null 2>/dev/null", + "for $status_statement now Recreting index (latex)", + \%prog_state, $dvi_file); + } &busy_wait_command("$comma $name_file 1>/dev/null 2>/dev/null", "for $status_statement dvips to repaginate", \%prog_state, $new_name_file); @@ -728,6 +753,9 @@ sub repaginate { 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); + while ($line = ) { # Check for total pages (%%Pages:) @@ -756,7 +784,9 @@ sub repaginate { 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; } @@ -769,12 +799,15 @@ sub repaginate { 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. @@ -786,6 +819,8 @@ sub repaginate { $student_number = 0; # first student... + &Apache::lonhtmlcommon::Update_PrgWin('',\%prog_state, + "Repaginating student ".$student_number+1); while (my $line = ) { if ($line eq "\\special{ps:ENDOFSTUDENTSTAMP}\n") { @@ -795,12 +830,16 @@ 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 '\newpage'; + print LATEXOUT '\linebreak This page left intentionally blank \pagebreak'; + $addlines--; } $student_number++; + &Apache::lonhtmlcommon::Update_PrgWin('',\%prog_state, + "Repaginating student ".$student_number+1); } else { print LATEXOUT $line;