version 1.33, 2002/06/21 19:52:13
|
version 1.36, 2002/07/01 20:56:20
|
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 85 ENDMENUOUT2
|
Line 85 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> </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 110 ENDPART
|
Line 121 ENDPART
|
|
|
my $choice = $ENV{'form.choice'}; |
my $choice = $ENV{'form.choice'}; |
my $layout = $ENV{'form.layout'}; |
my $layout = $ENV{'form.layout'}; |
|
my $numberofcolumns = $ENV{'form.numberofcolumns'}; |
my $laystyle = 'book'; |
my $laystyle = 'book'; |
my $result = ''; |
my $result = ''; |
|
my $number_of_columns = 1; |
|
|
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; |
$moreenv{'form.grade_target'}='tex'; |
$moreenv{'form.grade_target'}='tex'; |
$moreenv{'request.filename'}=$ENV{'form.url'}; |
$moreenv{'request.filename'}=$ENV{'form.url'}; |
Line 122 ENDPART
|
Line 136 ENDPART
|
&Apache::lonnet::delenv('form.grade_target'); |
&Apache::lonnet::delenv('form.grade_target'); |
$result .= $texversion; |
$result .= $texversion; |
$result = &additional_cleanup($result); |
$result = &additional_cleanup($result); |
if ($ENV{'form.url'}=~m/\.page\s*$/) {$result = &page_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 150 ENDPART
|
Line 164 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 231 ENDPART
|
Line 246 ENDPART
|
|
|
} |
} |
#-- 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 239 ENDPART
|
Line 255 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\\newlength{\\minipagewidth}\\setlength{\\minipagewidth}{\\textwidth\/2-0\.2in}\\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/(\\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{longtable}\s*)(\\newline\\noindent\\makebox\[9\.0cm\]\[b\]{\\hrulefill})/$2$1/g; |
|
$result =~ s/(\\end{longtable}\s*)\\newline/$1/g; |
} |
} |
#-- LaTeX corrections |
#-- LaTeX corrections |
my $first_comment = index($result,'<!--',0); |
my $first_comment = index($result,'<!--',0); |
Line 292 sub page_cleanup {
|
Line 311 sub page_cleanup {
|
my $result = shift; |
my $result = shift; |
$_ = $result; |
$_ = $result; |
m/\\end{document}(\d*)$/; |
m/\\end{document}(\d*)$/; |
|
my $number_of_columns = $1; |
my $insert = '{'; |
my $insert = '{'; |
for (my $id=1;$id<=$1;$id++) { $insert .='l'; } |
for (my $id=1;$id<=$number_of_columns;$id++) { $insert .='l'; } |
$insert .= '}'; |
$insert .= '}'; |
$result =~ s/(\\begin{tabular})INSERT/$1$insert/g; |
$result =~ s/(\\begin{longtable})INSERTTHEHEADOFLONGTABLE/$1$insert/g; |
$result =~ s/&\s*REMOVE\\\\/\\end{tabular}\\\\\\begin{tabular}$insert/g; |
$result =~ s/&\s*REMOVETHEHEADOFLONGTABLE\\\\/\\\\/g; |
return $result; |
$result =~ s/(\\vskip\s*\d+\s*mm)/}\\\\\\parbox{\\minipagewidth}{/g; |
|
$result =~ s/\\parbox{\\minipagewidth}{}\s*\\\\\s*(\\parbox{\\minipagewidth})/$1/g; |
|
return $result,$number_of_columns; |
} |
} |
|
|
sub content_map { |
sub content_map { |