Diff for /loncom/interface/lonprintout.pm between versions 1.28 and 1.38

version 1.28, 2002/05/17 21:53:50 version 1.38, 2002/07/16 20:30:53
Line 46  use Apache::lonnet; Line 46  use Apache::lonnet;
 use Apache::inputtags;  use Apache::inputtags;
 use Apache::edit;  use Apache::edit;
 use Apache::File();  use Apache::File();
   use POSIX qw(strftime);
   
   
 sub headerform {  sub headerform {
Line 58  sub headerform { Line 58  sub headerform {
 </head>  </head>
 <body bgcolor="FFFFFF">  <body bgcolor="FFFFFF">
 <form method="post" enctype="multipart/form-data" action="/adm/printout" name="printform">  <form method="post" enctype="multipart/form-data" action="/adm/printout" name="printform">
   <tt>$ENV{'form.postdata'}</tt><p>
 <h1>What do you want to print? Make a choice.</h1><br />  <h1>What do you want to print? Make a choice.</h1><br />
 ENDHEADER  ENDHEADER
 }  }
Line 75  sub menu_for_output { Line 76  sub menu_for_output {
 <input type="radio" name="choice" value="Standard LaTeX output for the top level sequence">  All problems from the top level sequence<br />  <input type="radio" name="choice" value="Standard LaTeX output for the top level sequence">  All problems from the top level sequence<br />
 <br />  <br />
 ENDMENUOUT1  ENDMENUOUT1
     if ($ENV{'user.adv'} eq '1') {      my $subdirtoprint = &Apache::lonnet::filelocation("",$ENV{'form.url'});
       $subdirtoprint =~ s/\/[^\/]+$//;
       if (&Apache::lonnet::allowed('bre',$subdirtoprint) eq 'F') {
  $r->print(<<ENDMENUOUT2);   $r->print(<<ENDMENUOUT2);
 <input type="radio" name="choice" value="Subdirectory print">  All problems from particular subdirectory <input type="text" name="subdirect" value="/res/"><br />  <input type="radio" name="choice" value="Subdirectory print">  All problems from current subdirectory (where this particular problem is)<br />
 ENDMENUOUT2  ENDMENUOUT2
     }  }
  $r->print(<<ENDMENUOUT3);      $r->print(<<ENDMENUOUT3);
 <br /><hr /><br />  <br /><hr /><br />
 <h1>And what page format do you prefer?</h1>  <h1>And what page format do you prefer?</h1>
 <input type="radio" name="layout" value="CBI"> Two columns landscape <br />  <table>
 <input type="radio" name="layout" value="CAPA" checked>  Two columns portrait <br />   <tr>
      <td>
        <input type="radio" name="layout" value="CBI"> Landscape <br />
        <input type="radio" name="layout" value="CAPA" checked>  Portrait <br />
      </td>
      <td>&nbsp;</td>
      <td rawspan="2">
        Number of columns: <input type="text" size="2" name="numberofcolumns" value="2"> 
      </td>
    </tr>
   </table>
   </br> 
 <input type="submit" value="Submit your choice">  <input type="submit" value="Submit your choice">
 </form>  </form>
 </body>  </body>
Line 108  ENDPART Line 122  ENDPART
   
     my $choice = $ENV{'form.choice'};      my $choice = $ENV{'form.choice'};
     my $layout = $ENV{'form.layout'};      my $layout = $ENV{'form.layout'};
     my $subdirtoprint = $ENV{'form.subdirect'};      my $numberofcolumns = $ENV{'form.numberofcolumns'};               
     my $laystyle = 'book';      my $laystyle = 'book';
     my $result = '';      my $result = '';
     my %mystyle;      my $number_of_columns = 1;
     my $filename;   
   
     if ($choice eq 'Standard LaTeX output for current document') {      if ($choice eq 'Standard LaTeX output for current document') {
         #-- single document - problem, page, html, xml  
       my %moreenv;        my %moreenv;
       my $currequest=$ENV{'request.filename'};  
       $moreenv{'form.grade_target'}='tex';        $moreenv{'form.grade_target'}='tex';
       $moreenv{'request.filename'}=$ENV{'form.url'};        $moreenv{'request.filename'}=$ENV{'form.url'};
       &Apache::lonnet::appenv(%moreenv);        &Apache::lonnet::appenv(%moreenv);
       my $texversion=&Apache::lonnet::ssi($ENV{'form.url'});        my $texversion=&Apache::lonnet::ssi($ENV{'form.url'});
       &Apache::lonnet::delenv('form.grade_target');        &Apache::lonnet::delenv('form.grade_target');
       %moreenv = ();  
       $moreenv{'request.filename'}=$currequest;  
       &Apache::lonnet::appenv(%moreenv);  
       $result .= $texversion;        $result .= $texversion;
         $result = &additional_cleanup($result);
         if ($ENV{'form.url'}=~m/\.page\s*$/) {($result,$number_of_columns) = &page_cleanup($result);}
     } elsif ($choice eq 'Standard LaTeX output for the primary sequence' or $choice eq 'Standard LaTeX output for whole primary sequence') {      } elsif ($choice eq 'Standard LaTeX output for the primary sequence' or $choice eq 'Standard LaTeX output for whole primary sequence') {
 #-- where is the primary sequence containing file?        #-- minimal sequence to which the current document belongs
  my %moreenv;          #-- where is the primary sequence containing file?
  my $symbolic = &Apache::lonnet::symbread($ENV{'form.url'});   my $symbolic = &Apache::lonnet::symbread($ENV{'form.url'});
  $_ = $symbolic;   $_ = $symbolic;
  m/([^_]+)_/;   m/([^_]+)_/;
  my $primary_sequence = '/res/'.$1;   my $primary_sequence = '/res/'.$1;
 #-- open and analyses the primary sequence          #-- open and analyses the primary sequence
  my $sequence_file=&Apache::lonnet::filelocation("",$primary_sequence);   my $sequence_file=&Apache::lonnet::filelocation("",$primary_sequence);
  my $sequencefilecontents=&Apache::lonnet::getfile($sequence_file);   my $sequencefilecontents=&Apache::lonnet::getfile($sequence_file);
  my @master_seq = &content_map($sequencefilecontents);   my @master_seq = &content_map($sequencefilecontents);
 #-- produce an output string          #-- produce an output string
  for (my $i=0;$i<=$#master_seq;$i++) {   for (my $i=0;$i<=$#master_seq;$i++) {
     $_ = $master_seq[$i];      $_ = $master_seq[$i];
     m/\"(.*)\"/;      m/\"(.*)\"/;
             $_ = $1;              $_ = $1;
             my $urlp = $1;              my $urlp = $1;
     if ($choice eq 'Standard LaTeX output for the primary sequence') {      if ($choice eq 'Standard LaTeX output for the primary sequence') {
  if (/\.(problem|exam|quiz|assess|survey|form|library)/) {   if ($urlp =~ m/\.(problem|exam|quiz|assess|survey|form|library)/) {
     my %moreenv;      my %moreenv;
     $moreenv{'form.grade_target'}='tex';      $moreenv{'form.grade_target'}='tex';
     &Apache::lonnet::appenv(%moreenv);      &Apache::lonnet::appenv(%moreenv);
Line 154  ENDPART Line 165  ENDPART
     $result .= $texversion;              $result .= $texversion;        
  }   }
     } else {      } else {
    my %moreenv;
  $moreenv{'form.grade_target'}='tex';   $moreenv{'form.grade_target'}='tex';
  &Apache::lonnet::appenv(%moreenv);   &Apache::lonnet::appenv(%moreenv);
  my $texversion=&Apache::lonnet::ssi($urlp);   my $texversion=&Apache::lonnet::ssi($urlp);
Line 201  ENDPART Line 213  ENDPART
     }      }
  }       }    
  $result = &additional_cleanup($result);   $result = &additional_cleanup($result);
     } elsif ($choice eq 'Subdirectory print') {        } elsif ($choice eq 'Subdirectory print') {      
  if (&Apache::lonnet::allowed('bre',$subdirtoprint) eq 'F') {   my $subdirtoprint = &Apache::lonnet::filelocation("",$ENV{'form.url'});
     my $locald = &Apache::lonnet::filelocation("",$subdirtoprint);   $subdirtoprint =~ s/\/[^\/]+$//;
     unless (-e $locald) {   my @list_of_files = ();
 #do something in the case of the absence of this subdirectory on the local mashine   my $localdirectory = $subdirtoprint;
 #replication process   $localdirectory =~ s/.*(\/res\/)/$1/;
     }   my @content_directory = &Apache::lonnet::dirlist($localdirectory);
     my @list_of_files = ();   for (my $iy=0;$iy<=$#content_directory;$iy++) {
             my @content_directory = &Apache::lonnet::dirlist($subdirtoprint);      my @tempo_array = split(/&/,$content_directory[$iy]);
     for (my $iy=0;$iy<=$#content_directory;$iy++) {      $content_directory[$iy] = $tempo_array[0];
                 my @tempo_array = split(/&/,$content_directory[$iy]);      if ($content_directory[$iy] =~ m/^[^\.]+\.problem$/) {
  $content_directory[$iy] = $tempo_array[0];   push @list_of_files,$content_directory[$iy];
  if ($content_directory[$iy] =~ m/\.problem$/) {  
     push @list_of_files,$content_directory[$iy];  
  }  
     }  
     for (my $i=0;$i<=$#list_of_files;$i++) {  
  $subdirtoprint =~ s/\/$//;  
  my $urlp = $subdirtoprint.'/'.$list_of_files[$i];  
  my %moreenv;  
  $moreenv{'form.grade_target'}='tex';  
  &Apache::lonnet::appenv(%moreenv);  
  my $texversion=&Apache::lonnet::ssi($urlp);  
  &Apache::lonnet::delenv('form.grade_target');  
  $texversion =~ s/(\\begin{document})/$1 {\\tiny\\begin{verbatim}$urlp\\end{verbatim}}/;  
  $result .= $texversion;     
     }      }
     $result = &additional_cleanup($result);  
   
  } else {  
 #message "you not allowed to do this"     
  }   }
    $localdirectory =~ s/\/$//;
    for (my $i=0;$i<=$#list_of_files;$i++) {
       my $urlp = $localdirectory.'/'.$list_of_files[$i];     
       my %moreenv;
       $moreenv{'form.grade_target'}='tex';
       &Apache::lonnet::appenv(%moreenv);
       my $texversion=&Apache::lonnet::ssi($urlp);
       &Apache::lonnet::delenv('form.grade_target');
       $texversion =~ s/(\\begin{document})/$1 {\\tiny\\begin{verbatim}$urlp\\end{verbatim}}/;
       $result .= $texversion;   
    }
    $result = &additional_cleanup($result);
   
   
   
   
   
   
   
     }      }
 #-- corrections for the different page formats  #-- corrections for the different page formats
     if ($layout eq 'CBI') {      if ($layout eq 'CBI' and $numberofcolumns eq '1') {
       } elsif ($layout eq 'CBI' and $numberofcolumns eq '2') {
  $result =~ s/\\begin{document}/\\setlength{\\oddsidemargin}{-40pt}\\setlength{\\evensidemargin}{-60pt}\\setlength{\\topmargin}{200pt}\\setlength{\\textwidth}{4\.4in}\\setlength{\\textheight}{6\.8in}\\setlength{\\parindent}{20pt}\\setlength{\\marginparwidth}{90pt}\\setlength{\\textfloatsep}{8pt plus 2\.0pt minus 4\.0pt} \\begin{document}/;   $result =~ s/\\begin{document}/\\setlength{\\oddsidemargin}{-40pt}\\setlength{\\evensidemargin}{-60pt}\\setlength{\\topmargin}{200pt}\\setlength{\\textwidth}{4\.4in}\\setlength{\\textheight}{6\.8in}\\setlength{\\parindent}{20pt}\\setlength{\\marginparwidth}{90pt}\\setlength{\\textfloatsep}{8pt plus 2\.0pt minus 4\.0pt} \\begin{document}/;
         $laystyle = 'album';          $laystyle = 'album';
     } elsif ($layout eq 'CAPA') {      } elsif ($layout eq 'CAPA') {
Line 248  ENDPART Line 256  ENDPART
         $_ = $courseidinfo;          $_ = $courseidinfo;
         m/.*\/(.*)/;          m/.*\/(.*)/;
         $courseidinfo = $ENV{'course.physnet_'.$1.'.description'};          $courseidinfo = $ENV{'course.physnet_'.$1.'.description'};
  $result =~ s/\\documentclass\[letterpaper\]{article}/\\documentclass\[twocolumn\]{article}/;  # $result =~ s/\\documentclass\[letterpaper\]{article}/\\documentclass\[twocolumn\]{article}/;
  $result =~ s/\\begin{document}/\\textheight 25\.9cm\\oddsidemargin = -0\.57in\\evensidemargin = -0\.57in\\textwidth= 7\.7in\\renewcommand{\\ref}{\\keephidden\}\\begin{document}\\voffset=-1\.8cm\\setcounter{page}{1}\\noindent\\fbox{\\textbf{$ENV{'environment.firstname'} $ENV{'environment.lastname'}}}\\hskip 1\.4in $courseidinfo \\vskip 5 mm /;   $result =~ s/\\documentclass\[letterpaper\]{article}/\\documentclass{article}/;
    $result =~ s/\\begin{document}/\\textheight 25\.9cm\\oddsidemargin = -0\.57in\\evensidemargin = -0\.57in\\textwidth= 9cm\\newlength{\\minipagewidth}\\setlength{\\minipagewidth}{\\textwidth\/$number_of_columns-0\.2cm}\\renewcommand{\\ref}{\\keephidden\}\\begin{document}\\voffset=-1\.8cm\\setcounter{page}{1}\\parbox{\\minipagewidth}{\\noindent\\fbox{\\textbf{$ENV{'environment.firstname'} $ENV{'environment.lastname'}}}\\hskip 1\.4in $courseidinfo} \\vskip 5 mm /;
  $result =~ s/\\includegraphics{/\\includegraphics\[width=9\.0 cm\]{/g;   $result =~ s/\\includegraphics{/\\includegraphics\[width=9\.0 cm\]{/g;
  $result =~ s/(\\end{document})/\\newline\\noindent\\makebox\[9.0cm\]\[b\]{\\hrulefill}\\newline\\noindent\\tiny Dept\. of Physics and Astronomy, MSU\\makebox\[1.5cm\]\[b\]{\\hfill}LON-CAPA\\copyright MSU GNU\/GPL $1/;  # $result =~ s/\\includegraphics{/\\includegraphics\[width=\\textwidth\]{/g;
   # $result =~ s/(\\end{document})/\\newline\\noindent\\makebox\[9.0cm\]\[b\]{\\hrulefill}\\newline\\noindent\\tiny Dept\. of Physics and Astronomy, MSU\\makebox\[1.5cm\]\[b\]{\\hfill}LON-CAPA\\copyright MSU GNU\/GPL $1/;
    $result =~ s/(\\end{document})/\\newline\\noindent\\makebox\[\\textwidth\/$number_of_columns\]\[b\]{\\hrulefill}\\newline\\noindent\\tiny Dept\. of Physics and Astronomy, MSU\\makebox\[1.5cm\]\[b\]{\\hfill}LON-CAPA\\copyright MSU GNU\/GPL $1/;
   #        $result =~ s/(\\end{longtable}\s*)(\\newline\\noindent\\makebox\[9\.0cm\]\[b\]{\\hrulefill})/$2$1/g;
           $result =~ s/(\\end{longtable}\s*)(\\newline\\noindent\\makebox\[\\textwidth\/$number_of_columns\]\[b\]{\\hrulefill})/$2$1/g;
           $result =~ s/(\\end{longtable}\s*)\\newline/$1/g;
    $result =~ s/\$number_of_columns/$number_of_columns/g;
     }      }
 #-- LaTeX corrections       #-- LaTeX corrections     
     my $first_comment = index($result,'<!--',0);      my $first_comment = index($result,'<!--',0);
Line 269  ENDPART Line 284  ENDPART
     $result =~ s/{\\par }\s*\\\\/\\\\/gm;      $result =~ s/{\\par }\s*\\\\/\\\\/gm;
  $result =~ s/\\\\\s+\[/ \[/g;   $result =~ s/\\\\\s+\[/ \[/g;
     $result =~ s/&#952;/\$\\theta\$/g; #converts theta from html into tex      $result =~ s/&#952;/\$\\theta\$/g; #converts theta from html into tex
       $result =~ s/\b_+\b/\\makebox\[1 cm\]\[b\]{\\hrulefill}/g;
       #conversion of html characters to LaTeX equivalents
       if ($result =~ m/&(\w+|#\d+);/) {
    $result = &character_chart($result);
       }
 #-- writing .tex file in prtspool   #-- writing .tex file in prtspool 
     my $temp_file;      my $temp_file;
     $filename = "/home/httpd/prtspool/$ENV{'user.name'}$ENV{'user.domain'}temp$ENV{'user.login.time'}.tex";      my $filename = "/home/httpd/prtspool/$ENV{'user.name'}_$ENV{'user.domain'}_printout_".time."_".rand(10000000).".tex";
     unless ($temp_file = Apache::File->new('>'.$filename)) {      unless ($temp_file = Apache::File->new('>'.$filename)) {
  $r->log_error("Couldn't open $filename for output $!");   $r->log_error("Couldn't open $filename for output $!");
  return SERVER_ERROR;    return SERVER_ERROR; 
Line 284  $r->print(<<FINALEND); Line 304  $r->print(<<FINALEND);
 FINALEND  FINALEND
 }  }
   
   sub character_chart {
       my $result = shift;
       $result =~ s/&#009;//g;
       $result =~ s/&#010;//g;
       $result =~ s/&#013;//g;
       $result =~ s/&#032;/ /g;
       $result =~ s/&#033;/!/g;
       $result =~ s/&#034;/"/g;
       $result =~ s/&quot;/"/g; #"
       $result =~ s/&#035;/\\#/g;
       $result =~ s/&#036;/\\\$/g;
       $result =~ s/&#037;/\\%/g; 
       $result =~ s/&#038;/\\&/g; 
       $result =~ s/&amp;/\\&/g;
       $result =~ s/&#039;/'/g;
       $result =~ s/&#040;/(/g;
       $result =~ s/&#041;/)/g;
       $result =~ s/&#042;/\*/g;
       $result =~ s/&#043;/\+/g;
       $result =~ s/&#044;/,/g;
       $result =~ s/&#045;/-/g;
       $result =~ s/&#046;/\./g;
       $result =~ s/&#047;/\//g;
       $result =~ s/&#048;/0/g;
       $result =~ s/&#049;/1/g;
       $result =~ s/&#050;/2/g;
       $result =~ s/&#051;/3/g;
       $result =~ s/&#052;/4/g;
       $result =~ s/&#053;/5/g;
       $result =~ s/&#054;/6/g;
       $result =~ s/&#055;/7/g;
       $result =~ s/&#056;/8/g;
       $result =~ s/&#057;/9/g;
       $result =~ s/&#058;/:/g;
       $result =~ s/&#059;/;/g;
       $result =~ s/&#060;/\$<\$/g;
       $result =~ s/&lt;/\$<\$/g;
       $result =~ s/&#061;/\$=\$/g;
       $result =~ s/&#062;/\$>\$/g;
       $result =~ s/&gt;/\$>\$/g;
       $result =~ s/&#063;/?/g;
   #    $result =~ s/&#064;//g;
       $result =~ s/&#065;/A/g;
       $result =~ s/&#066;/B/g;
       $result =~ s/&#067;/C/g;
       $result =~ s/&#068;/D/g;
       $result =~ s/&#069;/E/g;
       $result =~ s/&#070;/F/g;
       $result =~ s/&#071;/G/g;
       $result =~ s/&#072;/H/g;
       $result =~ s/&#073;/I/g;
       $result =~ s/&#074;/J/g;
       $result =~ s/&#075;/K/g;
       $result =~ s/&#076;/L/g;
       $result =~ s/&#077;/M/g;
       $result =~ s/&#078;/N/g;
       $result =~ s/&#079;/O/g;
       $result =~ s/&#080;/P/g;
       $result =~ s/&#081;/Q/g;
       $result =~ s/&#082;/R/g;
       $result =~ s/&#083;/S/g;
       $result =~ s/&#084;/T/g;
       $result =~ s/&#085;/U/g;
       $result =~ s/&#086;/V/g;
       $result =~ s/&#087;/W/g;
       $result =~ s/&#088;/X/g;
       $result =~ s/&#089;/Y/g;
       $result =~ s/&#090;/Z/g;
       $result =~ s/&#091;/[/g;
       $result =~ s/&#092;/\\/g;
       $result =~ s/&#093;/]/g;
   #    $result =~ s/&#094;//g;
   #    $result =~ s/&#095;//g;
       $result =~ s/&#096;/`/g;
       $result =~ s/&#097;/a/g;
       $result =~ s/&#098;/b/g;
       $result =~ s/&#099;/c/g;
       $result =~ s/&#100;/d/g;
       $result =~ s/&#101;/e/g;
       $result =~ s/&#102;/f/g;
       $result =~ s/&#103;/g/g;
       $result =~ s/&#104;/h/g;
       $result =~ s/&#105;/i/g;
       $result =~ s/&#106;/j/g;
       $result =~ s/&#107;/k/g;
       $result =~ s/&#108;/l/g;
       $result =~ s/&#109;/m/g;
       $result =~ s/&#110;/n/g;
       $result =~ s/&#111;/o/g;
       $result =~ s/&#112;/p/g;
       $result =~ s/&#113;/q/g;
       $result =~ s/&#114;/r/g;
       $result =~ s/&#115;/s/g;
       $result =~ s/&#116;/t/g;
       $result =~ s/&#117;/u/g;
       $result =~ s/&#118;/v/g;
       $result =~ s/&#119;/w/g;
       $result =~ s/&#120;/x/g;
       $result =~ s/&#121;/y/g;
       $result =~ s/&#122;/z/g;
       $result =~ s/&#123;/\\{/g;
       $result =~ s/&#124;/\|/g;
       $result =~ s/&#125;/\\}/g;
       $result =~ s/&#126;/\~/g;
       $result =~ s/&#130;/,/g;
   #    $result =~ s/&#131;//g;
       $result =~ s/&#132;/''/g;
       $result =~ s/&#133;/\$\\ldots\$/g;
       $result =~ s/&#134;/\$\\dagger\$/g;
       $result =~ s/&#135;/\$\\ddagger\$/g;
   #    $result =~ s/&#136;//g;
   #    $result =~ s/&#137;//g;
   #    $result =~ s/&#138;//g;
       $result =~ s/&#139;/\$<\$/g;
   #    $result =~ s/&#140;//g;
       $result =~ s/&#145;/`/g;
       $result =~ s/&#146;/'/g;
       $result =~ s/&#147;/``/g;
       $result =~ s/&#148;/''/g;
       $result =~ s/&#149;/\$\\bullet\$/g;
   #    $result =~ s/&#150;//g;
   #    $result =~ s/&#151;//g;
       $result =~ s/&#152;/~/g;
   #    $result =~ s/&#153;//g;
   #    $result =~ s/&#154;//g;
       $result =~ s/&#155;/\$>\$/g;
       $result =~ s/&#156;/\\{\\oe\\}/g;
       $result =~ s/&#159;/\\"\\{Y\\}/g;
       $result =~ s/&#160;//g;
       $result =~ s/&nbsp;//g;
       $result =~ s/&#161;/!`/g;
       $result =~ s/&iexcl;/!`/g; #`
   #    $result =~ s/&#162;//g;
   #    $result =~ s/&cent;//g;
       $result =~ s/&#163;/\\pounds/g; 
       $result =~ s/&pound;/\\pounds/g;
   #    $result =~ s/&#164;//g;
   #    $result =~ s/&curren;//g;
   #    $result =~ s/&#165;//g;
   #    $result =~ s/&yen;//g;
   #    $result =~ s/&#166;//g;
   #    $result =~ s/&brvbar;//g;
   #    $result =~ s/&#167;//g;
   #    $result =~ s/&sect;//g;
   #    $result =~ s/&#168;//g;
   #    $result =~ s/&uml;//g;
       $result =~ s/&#169;/\\copyright/g;
       $result =~ s/&copy;/\\copyright/g;
   #    $result =~ s/&#170;//g;
   #    $result =~ s/&ordf;//g;
   #    $result =~ s/&#171;//g;
   #    $result =~ s/&laquo;//g;
       $result =~ s/&#172;/\$\\neg\$/g;
       $result =~ s/&not;/\$\\neg\$/g;
   #    $result =~ s/&#173;//g;
   #    $result =~ s/&shy;//g;
   #    $result =~ s/&#174;//g;
   #    $result =~ s/&reg;//g;
   #    $result =~ s/&#175;//g;
   #    $result =~ s/&macr;//g;
       $result =~ s/&#176;/\$^\\{\\circ\\}\$/g;
       $result =~ s/&deg;/\$^\\{\\circ\\}\$/g;
       $result =~ s/&#177;/\$\\pm\$/g;
       $result =~ s/&plusmn;/\$\\pm\$/g;
       $result =~ s/&#178;/\$^2\$/g;
       $result =~ s/&sup2;/\$^2\$/g;
       $result =~ s/&#179;/\$^3\$/g;
       $result =~ s/&sup3;/\$^3\$/g;
   #    $result =~ s/&#180;//g;
   #    $result =~ s/&acute;//g;
       $result =~ s/&#181;/\$\\mu\$/g;
       $result =~ s/&micro;/\$\\mu\$/g;
       $result =~ s/&#182;/\\P/g;
       $result =~ s/&para;/\\P/g;
       $result =~ s/&#183;/\$\\cdot\$/g;
       $result =~ s/&middot;/\$\\cdot\$/g;
   #    $result =~ s/&#184;//g;
   #    $result =~ s/&cedil;//g;
       $result =~ s/&#185;/\$^1\$/g;
       $result =~ s/&sup1;/\$^1\$/g;
   #    $result =~ s/&#186;//g;
   #    $result =~ s/&ordm;//g;
   #    $result =~ s/&#187;//g;
   #    $result =~ s/&raquo;//g;
   #    $result =~ s/&#188;//g;
   #    $result =~ s/&frac14;//g;
   #    $result =~ s/&#189;//g;
   #    $result =~ s/&frac12;//g;
   #    $result =~ s/&#190;//g;
   #    $result =~ s/&frac34;//g;
       $result =~ s/&#191;/?`/g;
       $result =~ s/&iquest;/?`/g; 
       $result =~ s/&#192;/\\`{A}/g;
       $result =~ s/&Agrave;/\\`{A}/g; 
       $result =~ s/&#193;/\\'{A}/g; 
       $result =~ s/&Aacute;/\\'{A}/g; 
       $result =~ s/&#194;/\\^{A}/g;
       $result =~ s/&Acirc;/\\^{A}/g;
       $result =~ s/&#195;/\\~{A}/g;
       $result =~ s/&Atilde;/\\~{A}/g;
       $result =~ s/&#196;/\\"{A}/g; 
       $result =~ s/&Auml;/\\"{A}/g; 
       $result =~ s/&#197;/{\\AA}/g;
       $result =~ s/&Aring;/{\\AA}/g;
       $result =~ s/&#198;/{\\AE}/g;
       $result =~ s/&AElig;/{\\AE}/g;
   #    $result =~ s/&#199;//g;
   #    $result =~ s/&Ccedil;//g;
       $result =~ s/&#200;/\\`{E}/g;
       $result =~ s/&Egrave;/\\`{E}/g;
       $result =~ s/&#201;/\\'{E}/g;
       $result =~ s/&Eacute;/\\'{E}/g;
       $result =~ s/&#202;/\\^{E}/g;
       $result =~ s/&Ecirc;/\\^{E}/g;
       $result =~ s/&#203;/\\`{E}/g;
       $result =~ s/&Euml;/\\`{E}/g;
       $result =~ s/&#204;/\\`{I}/g;
       $result =~ s/&Igrave;/\\`{I}/g; 
       $result =~ s/&#205;/\\'{I}/g; 
       $result =~ s/&Iacute;/\\'{I}/g; 
       $result =~ s/&#206;/\\^{I}/g;
       $result =~ s/&Icirc;/\\^{I}/g;
       $result =~ s/&#207;/\\"{I}/g; 
       $result =~ s/&Iuml;/\\"{I}/g; 
   #    $result =~ s/&#208;//g;
   #    $result =~ s/&ETH;//g;
       $result =~ s/&#209;/\\~{N}/g;
       $result =~ s/&Ntilde;/\\~{N}/g;
       $result =~ s/&#210;/\\`{O}/g;
       $result =~ s/&Ograve;/\\`{O}/g; 
       $result =~ s/&#211;/\\'{O}/g;
       $result =~ s/&Oacute;/\\'{O}/g; 
       $result =~ s/&#212;/\\^{O}/g;
       $result =~ s/&Ocirc;/\\^{O}/g;
       $result =~ s/&#213;/\\~{O}/g;
       $result =~ s/&Otilde;/\\~{O}/g;
       $result =~ s/&#214;/\\"{O}/g;
       $result =~ s/&Ouml;/\\"{O}/g; 
       $result =~ s/&#215;/\$\\times\$/g;
       $result =~ s/&times;/\$\\times\$/g;
       $result =~ s/&#216;/{\\O}/g;
       $result =~ s/&Oslash;/{\\O}/g;
       $result =~ s/&#217;/\\`{U}/g;
       $result =~ s/&Ugrave;/\\`{U}/g;
       $result =~ s/&#218;/\\'{U}/g;
       $result =~ s/&Uacute;/\\'{U}/g;
       $result =~ s/&#219;/\\^{U}/g;
       $result =~ s/&Ucirc;/\\^{U}/g;
       $result =~ s/&#220;/\\"{U}/g;
       $result =~ s/&Uuml;/\\"{U}/g;
       $result =~ s/&#221;/\\'{Y}/g;
       $result =~ s/&Yacute;/\\'{Y}/g;
   #    $result =~ s/&#222;//g;
   #    $result =~ s/&THORN;//g;
   #    $result =~ s/&#223;//g;
   #    $result =~ s/&szlig;//g;
       $result =~ s/&#224;/\\`{a}/g;
       $result =~ s/&agrave;/\\`{a}/g;
       $result =~ s/&#225;/\\'{a}/g;
       $result =~ s/&aacute;/\\'{a}/g;
       $result =~ s/&#226;/\\^{a}/g;
       $result =~ s/&acirc;/\\^{a}/g;
       $result =~ s/&#227;/\\~{a}/g;
       $result =~ s/&atilde;/\\~{a}/g;
       $result =~ s/&#228;/\\"{a}/g;
       $result =~ s/&auml;/\\"{a}/g;
       $result =~ s/&#229;/{\\aa}/g;
       $result =~ s/&aring;/{\\aa}/g;
       $result =~ s/&#230;/{\\ae}/g;
       $result =~ s/&aelig;/{\\ae}/g;
   #    $result =~ s/&#231;//g;
   #    $result =~ s/&ccedil;//g;
       $result =~ s/&#232;/\\`{e}/g;
       $result =~ s/&egrave;/\\`{e}/g;
       $result =~ s/&#233;/\\'{e}/g;
       $result =~ s/&eacute;/\\'{e}/g;
       $result =~ s/&#234;/\\^{e}/g;
       $result =~ s/&ecirc;/\\^{e}/g;
       $result =~ s/&#235;/\\"{e}/g;
       $result =~ s/&euml;/\\"{e}/g;
       $result =~ s/&#236;/\\`{i}/g;
       $result =~ s/&igrave;/\\`{i}/g;
       $result =~ s/&#237;/\\'{i}/g;
       $result =~ s/&iacute;/\\'{i}/g;
       $result =~ s/&#238;/\\^{i}/g;
       $result =~ s/&icirc;/\\^{i}/g;
       $result =~ s/&#239;/\\"{i}/g;
       $result =~ s/&iuml;/\\"{i}/g;
   #    $result =~ s/&#240;//g;
   #    $result =~ s/&eth;//g;
       $result =~ s/&#241;/\\~{n}/g;
       $result =~ s/&ntilde;/\\~{n}/g;
       $result =~ s/&#242;/\\`{o}/g;
       $result =~ s/&ograve;/\\`{o}/g;
       $result =~ s/&#243;/\\'{o}/g;
       $result =~ s/&oacute;/\\'{o}/g;
       $result =~ s/&#244;/\\^{o}/g;
       $result =~ s/&ocirc;/\\^{o}/g;
       $result =~ s/&#245;/\\~{o}/g;
       $result =~ s/&otilde;/\\~{o}/g;
       $result =~ s/&#246;/\\"{o}/g;
       $result =~ s/&ouml;/\\"{o}/g;
       $result =~ s/&#247;/\$\\div\$/g;
       $result =~ s/&divide;/\$\\div\$/g;
       $result =~ s/&#248;/{\\o}/g;
       $result =~ s/&oslash;/{\\o}/g;
       $result =~ s/&#249;/\\`{u}/g; 
       $result =~ s/&ugrave;/\\`{u}/g;
       $result =~ s/&#250;/\\'{u}/g;
       $result =~ s/&uacute;/\\'{u}/g;
       $result =~ s/&#251;/\\^{u}/g;
       $result =~ s/&ucirc;/\\^{u}/g;
       $result =~ s/&#252;/\\"{u}/g;
       $result =~ s/&uuml;/\\"{u}/g;
       $result =~ s/&#253;/\\'{y}/g;
       $result =~ s/&yacute;/\\'{y}/g;
   #    $result =~ s/&#254;//g;
   #    $result =~ s/&thorn;//g;
       $result =~ s/&#255;/\\"{y}/g;
       $result =~ s/&yuml;/\\"{y}/g;
       return $result;
   }
   
 sub additional_cleanup {  sub additional_cleanup {
     my $result = shift;      my $result = shift;
     my $first_app = index($result,'\documentclass',0);      my $first_app = index($result,'\documentclass',0);
Line 296  sub additional_cleanup { Line 639  sub additional_cleanup {
     }      }
     return $result;      return $result;
 }  }
   sub page_cleanup {
       my $result = shift;
       $_ = $result;
       m/\\end{document}(\d*)$/;
       my $number_of_columns = $1;
       my $insert = '{';
       for (my $id=1;$id<=$number_of_columns;$id++) { $insert .='l'; }
       $insert .= '}';
       $result =~ s/(\\begin{longtable})INSERTTHEHEADOFLONGTABLE/$1$insert/g;
       $result =~ s/&\s*REMOVETHEHEADOFLONGTABLE\\\\/\\\\/g;
       $result =~ s/(\\vskip\s*\d+\s*mm)/}\\\\\\parbox{\\minipagewidth}{/g;
       $result =~ s/\\parbox{\\minipagewidth}{}\s*\\\\\s*(\\parbox{\\minipagewidth})/$1/g;
       $result =~ s/\\parbox{\\minipagewidth}{\s*\\\\\\\\/\\parbox{\\minipagewidth}{/g;
       return $result,$number_of_columns;
   }
   
 sub content_map {  sub content_map {
 #-- find a list of files to print  #-- find a list of files to print

Removed from v.1.28  
changed lines
  Added in v.1.38


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>
500 Internal Server Error

Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator at root@localhost to inform them of the time this error occurred, and the actions you performed just before this error.

More information about this error may be available in the server error log.