--- loncom/interface/lonprintout.pm 2002/03/21 18:46:15 1.19
+++ loncom/interface/lonprintout.pm 2002/04/12 13:45:48 1.22
@@ -1,7 +1,7 @@
# The LearningOnline Network
# Printout
#
-# $Id: lonprintout.pm,v 1.19 2002/03/21 18:46:15 sakharuk Exp $
+# $Id: lonprintout.pm,v 1.22 2002/04/12 13:45:48 sakharuk Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -71,6 +71,7 @@ sub menu_for_output {
Current document
(you will print what you see on the screen)
All problems from the primary sequence
+ The whole primary sequence (problems plus all html and xml files)
All problems from the top level sequence
And what page format do you prefer?
@@ -117,7 +118,7 @@ ENDPART
&Apache::lonnet::appenv(%moreenv);
$result .= $texversion;
- } elsif ($choice eq 'Standard LaTeX output for the 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?
my %moreenv;
my $symbolic = &Apache::lonnet::symbread($ENV{'form.url'});
@@ -134,14 +135,21 @@ ENDPART
m/\"(.*)\"/;
$_ = $1;
my $urlp = $1;
- if (/\.problem/) {
- my %moreenv;
+ if ($choice eq 'Standard LaTeX output for the primary sequence') {
+ if (/\.(problem|exam|quiz|assess|survey|form|library)/) {
+ my %moreenv;
+ $moreenv{'form.grade_target'}='tex';
+ &Apache::lonnet::appenv(%moreenv);
+ my $texversion=&Apache::lonnet::ssi($urlp);
+ &Apache::lonnet::delenv('form.grade_target');
+ $result .= $texversion;
+ }
+ } else {
$moreenv{'form.grade_target'}='tex';
&Apache::lonnet::appenv(%moreenv);
my $texversion=&Apache::lonnet::ssi($urlp);
&Apache::lonnet::delenv('form.grade_target');
- $texversion =~ s!\.gif!\.eps!;
- $result .= $texversion;
+ $result .= $texversion;
}
}
#-- additional cleanup for output
@@ -150,7 +158,7 @@ ENDPART
while ($first_app != -1) {
my $second_app = index($result,'begin{document}',$first_app);
$first_app = rindex($result,'\end{document}',$first_app);
- substr($result,$first_app,$second_app-$first_app+15) = '\vskip 7 mm';
+ substr($result,$first_app,$second_app-$first_app+15) = '\vskip 3 mm';
$first_app = index($result,'\documentclass',$first_app+5);
}
} elsif ($choice eq 'Standard LaTeX output for the top level sequence') {
@@ -182,13 +190,12 @@ ENDPART
m/\"(.*)\"/;
$_ = $1;
my $urlp = $1;
- if (/\.problem/) {
+ if (/\.(problem|exam|quiz|assess|survey|form|library)/) {
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!\.gif!\.eps!;
$result .= $texversion;
}
}
@@ -198,7 +205,7 @@ ENDPART
while ($first_app != -1) {
my $second_app = index($result,'begin{document}',$first_app);
$first_app = rindex($result,'\end{document}',$first_app);
- substr($result,$first_app,$second_app-$first_app+15) = '\vskip 7 mm';
+ substr($result,$first_app,$second_app-$first_app+15) = '\vskip 3 mm';
$first_app = index($result,'\documentclass',$first_app+5);
}
}
@@ -214,20 +221,28 @@ ENDPART
$result =~ s/\\documentclass\[letterpaper\]{article}/\\documentclass\[twocolumn\]{article}/;
$result =~ s/\\begin{document}/\\textheight 25\.9cm\\oddsidemargin = -0\.57in\\evensidemargin = -0\.57in\\textwidth= 7\.7in\\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/\\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\/GPS $1/;
}
#-- LaTeX corrections
$result =~ s/^\s+$//gm; #remove empty lines
$result =~ s/%/\\%/g; #corrects %
+ $result =~ s/(\s)+/$1/g; #removes more than one empty space
+ $result =~ s/\\\\\s*(\\vskip)/ $1/gm;
+ $result =~ s/ (<|>|) / \$$1\$ /g; #corrects < or >
+#-- Do all of eps figures exist?
+ my $needconvert = 0;
+ $_ = $result;
+ if (/\\needepsconversion/) { $needconvert = 1; }
#-- writing .tex file in prtspool
my $temp_file;
- $filename = "/home/httpd/prtspool/$ENV{'environment.firstname'}$ENV{'environment.lastname'}temp$ENV{'user.login.time'}.tex";
+ $filename = "/home/httpd/prtspool/$ENV{'user.name'}$ENV{'user.domain'}temp$ENV{'user.login.time'}.tex";
unless ($temp_file = Apache::File->new('>'.$filename)) {
$r->log_error("Couldn't open $filename for output $!");
return SERVER_ERROR;
}
print $temp_file $result;
$r->print(<
+