Diff for /loncom/interface/printout.pl between versions 1.103 and 1.110

version 1.103, 2006/06/19 22:30:15 version 1.110, 2006/09/14 17:04:42
Line 234  print "<a href=\"$backref\"><b>Return</b Line 234  print "<a href=\"$backref\"><b>Return</b
   my $prettyname=$not_eps;    my $prettyname=$not_eps;
   $prettyname=~s|/home/([^/]+)/public_html|/priv/$1|;    $prettyname=~s|/home/([^/]+)/public_html|/priv/$1|;
   $prettyname=~s|$Apache::lonnet::perlvar{'lonDocRoot'}/|/|;    $prettyname=~s|$Apache::lonnet::perlvar{'lonDocRoot'}/|/|;
   &Apache::lonhtmlcommon::Update_PrgWin('',\%prog_state,'Converting to EPS '.$prettyname);    &Apache::lonhtmlcommon::Update_PrgWin('',\%prog_state,
    'Converting to EPS '.$prettyname);
       }        }
       $done_conversion{$not_eps}=1;        $done_conversion{$not_eps}=1;
       # print "Converting $not_eps -> $eps_f"; # Debugging        # print "Converting $not_eps -> $eps_f"; # Debugging
Line 486  foreach $texfile (@texfile) { Line 487  foreach $texfile (@texfile) {
       &busy_wait_command("latex $latex_file 1>/dev/null 2>/dev/null",        &busy_wait_command("latex $latex_file 1>/dev/null 2>/dev/null",
  "for $status_statement first latex to repaginate",   "for $status_statement first latex to repaginate",
  \%prog_state, $name_file);   \%prog_state, $name_file);
       &busy_wait_command("latex $latex_file 1>/dev/null 2>/dev/null",        if ($tableofcontents eq 'yes') {
  "for $status_statement second latex to repaginate",    &busy_wait_command("latex $latex_file 1>/dev/null 2>/dev/null",
  \%prog_state, $name_file);       "for $status_statement second latex to repaginate",
       &busy_wait_command("latex $latex_file 1>/dev/null 2>/dev/null",       \%prog_state, $name_file);
  "for $status_statement third latex to repaginate",    &busy_wait_command("latex $latex_file 1>/dev/null 2>/dev/null",
  \%prog_state, $name_file);       "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",        &busy_wait_command("$comma $name_file 1>dev/null 2>/dev/null",
  "for $status_statement dvips to repaginate",   "for $status_statement dvips to repaginate",
  \%prog_state, $new_name_file);   \%prog_state, $new_name_file);
   
       print "\n<h1>PDF output file (see link below)</h1>\n";        print "\n<h1>PDF output file (see link below)</h1>\n";
       $new_name_file =~ m/^(.*)\./;        $new_name_file =~ m/^(.*)\./;
       my $ps_file = my $tempo_file = $1.'temporar.ps';        my $ps_file = my $tempo_file = $1.'temporar.ps';
Line 576  foreach $texfile (@texfile) { Line 589  foreach $texfile (@texfile) {
       &busy_wait_command("latex $latex_file 1>/dev/null 2>/dev/null",        &busy_wait_command("latex $latex_file 1>/dev/null 2>/dev/null",
  "for $status_statement first latex to repaginate",   "for $status_statement first latex to repaginate",
  \%prog_state, $name_file);   \%prog_state, $name_file);
       &busy_wait_command("latex $latex_file 1>/dev/null 2>/dev/null",        if ($tableofcontents eq 'yes') {
  "for $status_statement second latex to repaginate",    &busy_wait_command("latex $latex_file 1>/dev/null 2>/dev/null",
  \%prog_state, $name_file);       "for $status_statement second latex to repaginate",
       &busy_wait_command("latex $latex_file 1>/dev/null 2>/dev/null",       \%prog_state, $name_file);
  "for $status_statement third latex to repaginate",    &busy_wait_command("latex $latex_file 1>/dev/null 2>/dev/null",
  \%prog_state, $name_file);       "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",        &busy_wait_command("$comma $name_file 1>/dev/null 2>/dev/null",
  "for $status_statement dvips to repaginate",   "for $status_statement dvips to repaginate",
  \%prog_state, $new_name_file);   \%prog_state, $new_name_file);
Line 675  sub busy_wait_command { Line 700  sub busy_wait_command {
           
     $SIG{CHLD} = \&REAPER;      $SIG{CHLD} = \&REAPER;
     $done=0;      $done=0;
     print("<p> Doing : <tt>$command</tt>");  
     my $pid=open(CMD,"$command |");      my $pid=open(CMD,"$command |");
     if ($advanced_role) {      if ($advanced_role) {
  &Apache::lonhtmlcommon::Update_PrgWin('',$progress_win,$message);   &Apache::lonhtmlcommon::Update_PrgWin('',$progress_win,$message);
Line 695  sub busy_wait_command { Line 719  sub busy_wait_command {
     $SIG{CHLD}='IGNORE';      $SIG{CHLD}='IGNORE';
     close(CMD);      close(CMD);
 }  }
     print("<p> End</p>");  
   
 #  Repagninate  #  Repagninate
 #  What we need to do:  #  What we need to do:
Line 724  sub repaginate { Line 747  sub repaginate {
     my $line;      my $line;
     my $total_pages; # Total pages in document.      my $total_pages; # Total pages in document.
     my $seen_pages        = 0; # There are several %%Pages only the first is useful      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 @pages_in_student; # For each student his/her initial page count.
     my $max_pages = 0; # Pages in 'longest' student.      my $max_pages = 0; # Pages in 'longest' student.
     my $page_number = 0;      my $page_number = 0;
       &Apache::lonhtmlcommon::Update_PrgWin('',\%prog_state, 
     &mt("Counting pages for student: [_1]",1));
   
     while ($line = <PSFILE>) {      while ($line = <PSFILE>) {
   
  # Check for total pages (%%Pages:)   # Check for total pages (%%Pages:)
Line 748  sub repaginate { Line 773  sub repaginate {
     my @pageinfo = split(/ /, $line);      my @pageinfo = split(/ /, $line);
     if ($page_number < $pageinfo[1]) {      if ($page_number < $pageinfo[1]) {
  $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++;  
   
     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);      close(PSFILE);
   
     #  If 2 columns, max_pages must go to an even number of columns:      #  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 ($num_columns == 2) {
  if ($max_pages % 2) {   if ($max_pages % 2) {
     $max_pages++;      $max_pages++;
  }   }
     }      }
     &Apache::lonnet::logthis("after adjust: $max_pages");  
           
     #  Now rewrite the LaTex file, substituting our \special      #  Now rewrite the LaTex file, substituting our \special
     #  with an appropriate number of \newpage directives.      #  with an appropriate number of \newpage directives.
Line 788  sub repaginate { Line 819  sub repaginate {
     open(LATEXOUT, ">$outfilename");      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);
   
     while (my $line = <LATEXIN>) {      while (my $line = <LATEXIN>) {
  if ($line eq "\\special{ps:ENDOFSTUDENTSTAMP}\n") {   if ($line eq "\\special{ps:ENDOFSTUDENTSTAMP}\n") {
Line 798  sub repaginate { Line 831  sub repaginate {
     # End of student replace with 0 or more newpages.      # End of student replace with 0 or more newpages.
           
     my $addlines = $max_pages - $pages_in_student[$student_number];      my $addlines = $max_pages - $pages_in_student[$student_number];
     &Apache::lonnet::logthis("student: $pages_in_student[$student_number] add: $addlines");  
     while($addlines)  {      while($addlines)  {
  print LATEXOUT '\pagebreak';   print LATEXOUT '\clearpage \strut \clearpage';
   
  $addlines--;   $addlines--;
     }      }
           
     $student_number++;      $student_number++;
       &Apache::lonhtmlcommon::Update_PrgWin('',\%prog_state, 
     "Repaginating student ".$student_number+1);
           
  } else {   } else {
     print LATEXOUT $line;      print LATEXOUT $line;
Line 813  sub repaginate { Line 848  sub repaginate {
   
     close(LATEXIN);      close(LATEXIN);
     close(LATEXOUT);      close(LATEXOUT);
    rename($outfilename, $latex_filename);      rename($outfilename, $latex_filename);
   
 }  }
   

Removed from v.1.103  
changed lines
  Added in v.1.110


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