--- loncom/interface/lonprintout.pm 2003/10/20 18:35:22 1.257
+++ loncom/interface/lonprintout.pm 2003/11/10 23:26:42 1.263
@@ -1,7 +1,7 @@
# The LearningOnline Network
# Printout
#
-# $Id: lonprintout.pm,v 1.257 2003/10/20 18:35:22 sakharuk Exp $
+# $Id: lonprintout.pm,v 1.263 2003/11/10 23:26:42 albertel Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -475,11 +475,7 @@ sub page_format_transformation {
my ($papersize,$layout,$numberofcolumns,$choice,$text,$assignment,$tableofcontents,$indexlist) = @_;
my ($textwidth,$textheight,$oddoffset,$evenoffset,$topmargin);
$assignment=&Apache::lonxml::latex_special_symbols($assignment,'header');
- if ($numberofcolumns != 1) {
- ($textwidth,$textheight,$oddoffset,$evenoffset,$topmargin) = &page_format($papersize,$layout,$numberofcolumns,$topmargin);
- } else {
- ($textwidth,$textheight,$oddoffset,$evenoffset) = ($ENV{'form.width'},$ENV{'form.height'},$ENV{'form.leftmargin'},$ENV{'form.leftmargin'});
- }
+ ($textwidth,$textheight,$oddoffset,$evenoffset,$topmargin) = &page_format($papersize,$layout,$numberofcolumns,$topmargin);
my $name = &get_name();
my $courseidinfo = &get_course();
if (defined($courseidinfo)) { $courseidinfo=' - '.$courseidinfo }
@@ -705,6 +701,7 @@ ENDPART
if ($helper->{'VARS'}->{'ANSWER_TYPE'} ne 'only') {
my %moreenv;
$moreenv{'request.filename'}=$currentURL;
+ if ($helper->{'VARS'}->{'style_file'}=~/\w/) {$moreenv{'construction_space_style'}=$helper->{'VARS'}->{'style_file'};}
my %form;
$form{'grade_target'}='tex';
$form{'textwidth'}=$LaTeXwidth;
@@ -815,6 +812,13 @@ ENDPART
}
if ($helper->{VARS}->{'construction'} eq '1') {$result=~s/(\\begin{document})/$1 \\fbox\{RANDOM SEED IS $rndseed\} /;}
$result .= '\end{document}';
+ } elsif ($currentURL=~/\/smppg$/) {
+ my %form;
+ $form{'grade_target'}='tex';
+ $form{'textwidth'}=$LaTeXwidth;
+ $form{'latex_type'}=$helper->{'VARS'}->{'LATEX_TYPE'};
+ my $texversion=&Apache::lonnet::ssi($currentURL,%form);
+ $result .= $texversion;
} else {
$result.='\documentclass[letterpaper]{article}\usepackage{calc}\begin{document}Printout of this type of document is currently not supported: ';
if ($currentURL=~/\/(aboutme|syllabus|bulletinboard|smppg)$/) {
@@ -840,7 +844,6 @@ ENDPART
my $flag_page_in_sequence = 'NO';
my @master_seq=split /\|\|\|/, $helper->{'VARS'}->{'RESOURCES'};
my $prevassignment='';
- &Apache::lonnet::delenv('form.counter');
&Apache::lonxml::init_counter();
for (my $i=0;$i<=$#master_seq;$i++) {
my (undef,undef,$urlp)=&Apache::lonnet::decode_symb($master_seq[$i]);
@@ -859,19 +862,26 @@ ENDPART
my $assignment=&Apache::lonxml::latex_special_symbols(&Apache::lonnet::gettitle($sequence),'header'); #tittle of the assignment which contains this problem
if ($i==0) {$prevassignment=$assignment;}
#&Apache::lonnet::logthis("Trying to get $urlp with symb $master_seq[$i]");
- my $texversion=&Apache::lonnet::ssi($urlp,%form);
+ my $texversion.=&Apache::lonnet::ssi($urlp,%form);
if ($urlp=~/\.page$/) {
($texversion,my $number_of_columns_page) = &page_cleanup($texversion);
if ($number_of_columns_page > $number_of_columns) {$number_of_columns=$number_of_columns_page;}
$texversion =~ s/\\end{document}\d*/\\end{document}/;
$flag_page_in_sequence = 'YES';
}
+ my $lonidsdir=$r->dir_config('lonIDsDir');
+ my $envfile=$ENV{'user.environment'};
+ $envfile=~/\/([^\/]+)\.id$/;
+ $envfile=$1;
+ &Apache::lonnet::transfer_profile_to_env($lonidsdir,$envfile);
+ my $current_counter=$ENV{'form.counter'};
if(($helper->{'VARS'}->{'ANSWER_TYPE'} eq 'no') ||
($helper->{'VARS'}->{'ANSWER_TYPE'} eq 'only')) {
my %form;
$form{'grade_target'}='answer';
$form{'answer_output_mode'}='tex';
my $answer=&Apache::lonnet::ssi($urlp,%form);
+ &Apache::lonnet::appenv(('form.counter' => $current_counter));
if ($helper->{'VARS'}->{'ANSWER_TYPE'} eq 'no') {
$texversion=~s/(\\keephidden{ENDOFPROBLEM})/$answer$1/;
} else {
@@ -937,12 +947,19 @@ ENDPART
if (&Apache::lonnet::allowed('bre',$res_url)) {
my $rendered = &Apache::loncommon::get_student_view($curresline,$username,$userdomain,
$ENV{'request.course.id'},'tex');
+ my $lonidsdir=$r->dir_config('lonIDsDir');
+ my $envfile=$ENV{'user.environment'};
+ $envfile=~/\/([^\/]+)\.id$/;
+ $envfile=$1;
+ &Apache::lonnet::transfer_profile_to_env($lonidsdir,$envfile);
+ my $current_counter=$ENV{'form.counter'};
if(($helper->{'VARS'}->{'ANSWER_TYPE'} eq 'no') ||
($helper->{'VARS'}->{'ANSWER_TYPE'} eq 'only')) {
my %form;
$form{'answer_output_mode'}='tex';
$form{'latex_type'}=$helper->{'VARS'}->{'LATEX_TYPE'};
my $ansrendered = &Apache::loncommon::get_student_answers($curresline,$username,$userdomain,$ENV{'request.course.id'},%form);
+ &Apache::lonnet::appenv(('form.counter' => $current_counter));
if ($helper->{'VARS'}->{'ANSWER_TYPE'} eq 'no') {
$rendered=~s/(\\keephidden{ENDOFPROBLEM})/$ansrendered$1/;
} else {
@@ -1058,10 +1075,10 @@ ENDPART
$result = &latex_corrections($number_of_columns,$result);
#changes page's parameters for the one column output
if ($numberofcolumns == 1) {
- $result =~ s/\\textwidth= 9cm/\\textwidth= $helper->{'VARS'}->{'pagesize.width'} $helper->{'VARS'}->{'pagesize.widthunit'} /;
- $result =~ s/\\textheight 25\.9cm/\\textheight $helper->{'VARS'}->{'pagesize.height'} $helper->{'VARS'}->{'pagesize.heightunit'} /;
- $result =~ s/\\evensidemargin = -0\.57in/\\evensidemargin= $helper->{'VARS'}->{'pagesize.lmargin'} $helper->{'VARS'}->{'pagesize.lmarginunit'} /;
- $result =~ s/\\oddsidemargin = -0\.57in/\\oddsidemargin= $helper->{'VARS'}->{'pagesize.lmargin'} $helper->{'VARS'}->{'pagesize.lmarginunit'} /;
+ $result =~ s/\\textwidth\s*=\s*\d*\.?\d*\s*(cm|mm|in)/\\textwidth= $helper->{'VARS'}->{'pagesize.width'} $helper->{'VARS'}->{'pagesize.widthunit'} /;
+ $result =~ s/\\textheight\s*=\s*\d*\.?\d*\s*(cm|mm|in)/\\textheight $helper->{'VARS'}->{'pagesize.height'} $helper->{'VARS'}->{'pagesize.heightunit'} /;
+ $result =~ s/\\evensidemargin\s*=\s*\d*\.?\d*\s*(cm|mm|in)/\\evensidemargin= $helper->{'VARS'}->{'pagesize.lmargin'} $helper->{'VARS'}->{'pagesize.lmarginunit'} /;
+ $result =~ s/\\oddsidemargin\s*=\s*\d*\.?\d*\s*(cm|mm|in)/\\oddsidemargin= $helper->{'VARS'}->{'pagesize.lmargin'} $helper->{'VARS'}->{'pagesize.lmarginunit'} /;
}
#-- writing .tex file in prtspool
my $temp_file;
@@ -1071,7 +1088,7 @@ ENDPART
return SERVER_ERROR;
}
- my $identifier = time.'_'.int(rand(1000));
+ my $identifier = &Apache::loncommon::get_cgi_id();
&Apache::lonnet::appenv('cgi.'.$identifier.'.file' => $filename,
'cgi.'.$identifier.'.layout' => $laystyle,
'cgi.'.$identifier.'.numcol' => $numberofcolumns,
@@ -1178,6 +1195,7 @@ sub printHelper {
$helper->declareVar('filename');
$helper->declareVar('construction');
$helper->declareVar('assignment');
+ $helper->declareVar('style_file');
# This will persistently load in the data we want from the
# very first screen.
@@ -1526,7 +1544,10 @@ CHOOSE_FROM_ANY_SEQUENCE
return $helper->{VARS}->{'curseed'};
-
+
+ Use style file: |
+
+
|
RNDSEED
&Apache::lonxml::xmlparse($r, 'helper', $xmlfrag);