--- loncom/interface/lonprintout.pm 2002/09/24 13:52:24 1.75
+++ loncom/interface/lonprintout.pm 2002/10/07 17:58:47 1.76
@@ -1,7 +1,7 @@
# The LearningOnline Network
# Printout
#
-# $Id: lonprintout.pm,v 1.75 2002/09/24 13:52:24 sakharuk Exp $
+# $Id: lonprintout.pm,v 1.76 2002/10/07 17:58:47 sakharuk Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -54,7 +54,7 @@ use GDBM_File;
my %hash;
-
+my $LaTeXwidth = 0;
sub headerform {
my $r = shift;
@@ -292,6 +292,7 @@ ENDDISHEADER
}
$r->print(<
+
@@ -313,6 +314,7 @@ sub additional_print_menu {
+
@@ -348,7 +350,14 @@ ENDPART
my $result = '';
my $number_of_columns = 1; #used only for pages to determine the width of the cell
my $selectionmade = '';
+ my ($textwidth,$textheight,$oddoffset,$evenoffset) = &page_format($papersize,$layout,$numberofcolumns);
+ my $LaTeXwidth;
+ if ($textwidth=~/(\d+\s*cm)/) {
+ $LaTeXwidth = $1*10;
+ } elsif ($textwidth=~/(\d+\s*mm)/) {
+ $LaTeXwidth = $1;
+ }
if ($choice eq 'Standard LaTeX output for current document') {
#-- single document - problem, page, html, xml
$selectionmade = 1;
@@ -358,9 +367,10 @@ ENDPART
$ENV{'form.url'}=~s/http:\/\/[^\/]+//;
}
$moreenv{'request.filename'}=$ENV{'form.url'};
+ $moreenv{'form.textwidth'}=$LaTeXwidth;
&Apache::lonnet::appenv(%moreenv);
my $texversion=&Apache::lonnet::ssi($ENV{'form.url'});
- &Apache::lonnet::delenv('form.grade_target');
+ &Apache::lonnet::delenv('form.grade_target','form.textwidth');
$result .= $texversion;
if ($ENV{'form.url'}=~m/\.page\s*$/) {
($result,$number_of_columns) = &page_cleanup($result);
@@ -384,10 +394,11 @@ ENDPART
if ($urlp =~ m/\.(problem|exam|quiz|assess|survey|form|library)/) {
my %moreenv;
$moreenv{'form.grade_target'}='tex';
+ $moreenv{'form.textwidth'}=$LaTeXwidth;
&Apache::lonnet::appenv(%moreenv);
&Apache::lonnet::logthis("Trying to get $urlp with symb $symb");
my $texversion=&Apache::lonnet::ssi($urlp,('symb'=>$symb));
- &Apache::lonnet::delenv('form.grade_target');
+ &Apache::lonnet::delenv('form.grade_target','form.textwidth');
if ($flag_latex_header_remove ne 'NO') {
$texversion = &latex_header_footer_remove($texversion);
} else {
@@ -434,9 +445,10 @@ ENDPART
if ($urlp=~m/\.(problem|exam|quiz|assess|survey|form|library)/) {
my %moreenv;
$moreenv{'form.grade_target'}='tex';
+ $moreenv{'form.textwidth'}=$LaTeXwidth;
&Apache::lonnet::appenv(%moreenv);
my $texversion=&Apache::lonnet::ssi($urlp,('symb'=>$symb));
- &Apache::lonnet::delenv('form.grade_target');
+ &Apache::lonnet::delenv('form.grade_target','form.textwidth');
if ($flag_latex_header_remove ne 'NO') {
$texversion = &latex_header_footer_remove($texversion);
} else {
@@ -508,12 +520,13 @@ ENDPART
if ($urlp=~/\//) {
my %moreenv;
$moreenv{'form.grade_target'}='tex';
+ $moreenv{'form.textwidth'}=$LaTeXwidth;
&Apache::lonnet::appenv(%moreenv);
if ($ENV{'request.role'}=~m/^au\./ or $ENV{'request.role'}=~m/^ca\./) {
$urlp =~ s/\/home\/([^\/]*)\/public_html/\/~$1/;
}
my $texversion=&Apache::lonnet::ssi($urlp);
- &Apache::lonnet::delenv('form.grade_target');
+ &Apache::lonnet::delenv('form.grade_target','form.textwidth');
$texversion =~ s/(\\begin{document})/$1 {\\tiny\\begin{verbatim}$urlp\\end{verbatim}}/;
if ($flag_latex_header_remove ne 'NO') {
$texversion = &latex_header_footer_remove($texversion);
@@ -527,105 +540,11 @@ ENDPART
$result .= '\end{document}';
}
#-------------------------------------------------------- corrections for the different page formats
- my ($textwidth,$textheight,$oddoffset,$evenoffset) = (0,0,0,0);
- if ($papersize=~/Letter/) {
- if ($layout eq 'CAPA') {
- if ($numberofcolumns == 1) {
- $textwidth = '18 cm';
- $textheight = '25.9 cm';
- $oddoffset = '-0.57 in';
- $evenoffset = '-0.57 in';
- } elsif ($numberofcolumns == 2) {
- $textwidth = '9 cm';
- $textheight = '25.9 cm';
- $oddoffset = '-0.57 in';
- $evenoffset = '-0.57 in';
- }
- } elsif ($layout eq 'CBI') {
- if ($numberofcolumns == 1) {
- $textwidth = '8.8 in';
- $textheight = '6.8 in';
- $oddoffset = '-40 pt';
- $evenoffset = '-60 pt';
- } elsif ($numberofcolumns == 2) {
- $textwidth = '4.4 in';
- $textheight = '6.8 in';
- $oddoffset = '-40 pt';
- $evenoffset = '-60 pt';
- }
- }
-# } elsif($papersize=~/Legal/) {
-# $textwidth = ;
-# $textheight = ;
-# $offset = ;
-# } elsif($papersize=~/Ledger/) {
-# $textwidth = ;
-# $textheight = ;
-# $offset = ;
-# } elsif($papersize=~/Executive/) {
-# $textwidth = ;
-# $textheight = ;
-# $offset = ;
-# } elsif($papersize=~/A4/) {
-# $textwidth = ;
-# $textheight = ;
-# $offset = ;
-# } elsif($papersize=~/A3/) {
-# $textwidth = ;
-# $textheight = ;
-# $offset = ;
-# } elsif($papersize=~/A2/) {
-# $textwidth = ;
-# $textheight = ;
-# $offset = ;
-# } elsif($papersize=~/A5/) {
-# $textwidth = ;
-# $textheight = ;
-# $offset = ;
-# } elsif($papersize=~/A6/) {
-# $textwidth = ;
-# $textheight = ;
-# $offset = ;
-#
-#
-#
-#
-#
-#
-#
-#
-#
-#
- }
-
- if ($layout eq 'CBI' and $numberofcolumns eq '1') {
- $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/\$number_of_columns/$number_of_columns/g;
- $laystyle = 'album';
- } 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/\$number_of_columns/$number_of_columns/g;
+ $result = &page_format_transformation($papersize,$layout,$numberofcolumns,$choice,$result);
+ if ($layout eq 'CBI') {
$laystyle = 'album';
- } elsif ($layout eq 'CAPA') {
- my $courseidinfo = $ENV{'request.role'};
- $_ = $courseidinfo;
- m/.*\/(.*)/;
- $courseidinfo = $ENV{'course.physnet_'.$1.'.description'};
- $result =~ s/\\documentclass\[letterpaper\]{article}/\\documentclass{article}/;
- if ($choice ne 'All class print') {
- $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 /;
- } else {
- $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} \\vskip 5 mm /;
- }
- $result =~ s/\\includegraphics{/\\includegraphics\[width=9\.0 cm\]{/g;
-# $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 \\makebox\[1.5cm\]\[b\]{\\hfill}LON-CAPA\\copyright Michigan State University Board of Trustees $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;
}
+ $result = &latex_corrections($number_of_columns,$result);
#changes page's parameters for the one column output
if ($ENV{'form.numberofcolumns'} == 1) {
$result =~ s/\\textwidth= 9cm/\\textwidth= $ENV{'form.width'}/;
@@ -633,26 +552,6 @@ ENDPART
$result =~ s/\\evensidemargin = -0\.57in/\\evensidemargin= $ENV{'form.leftmargin'}/;
$result =~ s/\\oddsidemargin = -0\.57in/\\oddsidemargin= $ENV{'form.leftmargin'}/;
}
-#-- LaTeX corrections
- my $first_comment = index($result,'',$first_comment);
- substr($result,$first_comment,$end_comment-$first_comment+3) = '';
- $first_comment = index($result,'',$first_comment);
+ substr($result,$first_comment,$end_comment-$first_comment+3) = '';
+ $first_comment = index($result,'