[LON-CAPA-cvs] cvs: loncom /interface lonprintout.pm
sakharuk
lon-capa-cvs@mail.lon-capa.org
Mon, 07 Oct 2002 17:58:47 -0000
This is a MIME encoded message
--sakharuk1034013527
Content-Type: text/plain
sakharuk Mon Oct 7 13:58:47 2002 EDT
Modified files:
/loncom/interface lonprintout.pm
Log:
Attribute TeXwidth in <img> tag can work with "%" defining what part of text width is used for eps figure.
--sakharuk1034013527
Content-Type: text/plain
Content-Disposition: attachment; filename="sakharuk-20021007135847.txt"
Index: loncom/interface/lonprintout.pm
diff -u loncom/interface/lonprintout.pm:1.75 loncom/interface/lonprintout.pm:1.76
--- loncom/interface/lonprintout.pm:1.75 Tue Sep 24 09:52:24 2002
+++ loncom/interface/lonprintout.pm Mon Oct 7 13:58:47 2002
@@ -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 @@
my %hash;
-
+my $LaTeXwidth = 0;
sub headerform {
my $r = shift;
@@ -292,6 +292,7 @@
}
$r->print(<<ENDMENUOUT2);
<br />
+<input type="hidden" name="papersize" value="$ENV{'form.papersize'}">
<input type="hidden" name="numberofstudents" value="$i">
<input type="hidden" name="phase" value="three">
<input type="submit" value="Submit">
@@ -313,6 +314,7 @@
<input type="hidden" name="url" value="$ENV{'form.url'}">
<input type="hidden" name="choice" value="$ENV{'form.choice'}">
<input type="hidden" name="layout" value="$ENV{'form.layout'}">
+<input type="hidden" name="papersize" value="$ENV{'form.papersize'}">
<input type="hidden" name="numberofstudents" value="$ENV{'form.numberofstudents'}">
<input type="hidden" name="numberofproblems" value="$ENV{'form.numberofproblems'}">
<input type="hidden" name="numberofcolumns" value="$ENV{'form.numberofcolumns'}">
@@ -348,7 +350,14 @@
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 @@
$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 @@
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 @@
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 @@
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 @@
$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 = ;
-# <option selected> Letter [8 1/2x11 in] </option>
-# <option> Legal [8 1/2x14 in] </option>
-# <option> Ledger/Tabloid [11x17 in] </option>
-# <option> Executive [7 1/2x10 in] </option>
-# <option> A2 [420x594 mm] </option>
-# <option> A3 [297x420 mm] </option>
-# <option> A4 [210x297 mm] </option>
-# <option> A5 [148x210 mm] </option>
-# <option> A6 [105x148 mm] </option>
-#
- }
-
- 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 @@
$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,'<!--',0);
- while ($first_comment != -1) {
- my $end_comment = index($result,'-->',$first_comment);
- substr($result,$first_comment,$end_comment-$first_comment+3) = '';
- $first_comment = index($result,'<!--',$first_comment);
- }
- $result =~ s/^\s+$//gm; #remove empty lines
- $result =~ s/(\s)+/$1/g; #removes more than one empty space
- $result =~ s/\\\\\s*\\vskip/\\vskip/gm;
- $result =~ s/\\\\\s*\\noindent\s*(\\\\)+/\\\\\\noindent /g;
- $result =~ s/{\\par }\s*\\\\/\\\\/gm;
- $result =~ s/\\\\\s+\[/ \[/g;
- $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);
- }
- $result =~ s/(\\end{tabular})\s*\\vskip 0 mm/$1/g;
- $result =~ s/(\\begin{enumerate})\s*\\noindent/$1/g;
#-- writing .tex file in prtspool
my $temp_file;
my $filename = "/home/httpd/prtspool/$ENV{'user.name'}_$ENV{'user.domain'}_printout_".time."_".rand(10000000).".tex";
@@ -781,7 +680,7 @@
$result =~ s/�?32;/ /g;
$result =~ s/�?33;/!/g;
$result =~ s/�?34;/"/g;
- $result =~ s/"/"/g;
+ $result =~ s/"/"/g; #"
$result =~ s/�?35;/\\#/g;
# $result =~ s/�?36;/\\\$/g;
$result =~ s/�?37;/\\%/g;
@@ -963,82 +862,82 @@
# $result =~ s/½//g;
# $result =~ s/¾//g;
# $result =~ s/¾//g;
- $result =~ s/¿/?`/g;
- $result =~ s/¿/?`/g;
- $result =~ s/À/\\`{A}/g;
- $result =~ s/À/\\`{A}/g;
+ $result =~ s/¿/?`/g;
+ $result =~ s/¿/?`/g; #`
+ $result =~ s/À/\\`{A}/g;
+ $result =~ s/À/\\`{A}/g; #`
$result =~ s/Á/\\'{A}/g;
- $result =~ s/Á/\\'{A}/g;
+ $result =~ s/Á/\\'{A}/g; #'
$result =~ s/Â/\\^{A}/g;
$result =~ s/Â/\\^{A}/g;
$result =~ s/Ã/\\~{A}/g;
$result =~ s/Ã/\\~{A}/g;
$result =~ s/Ä/\\"{A}/g;
- $result =~ s/Ä/\\"{A}/g;
+ $result =~ s/Ä/\\"{A}/g; #"
$result =~ s/Å/{\\AA}/g;
$result =~ s/Å/{\\AA}/g;
$result =~ s/Æ/{\\AE}/g;
$result =~ s/Æ/{\\AE}/g;
# $result =~ s/Ç//g;
# $result =~ s/Ç//g;
- $result =~ s/È/\\`{E}/g;
- $result =~ s/È/\\`{E}/g;
- $result =~ s/É/\\'{E}/g;
- $result =~ s/É/\\'{E}/g;
+ $result =~ s/È/\\`{E}/g;
+ $result =~ s/È/\\`{E}/g; #`
+ $result =~ s/É/\\'{E}/g; #'
+ $result =~ s/É/\\'{E}/g; #'
$result =~ s/Ê/\\^{E}/g;
$result =~ s/Ê/\\^{E}/g;
$result =~ s/Ë/\\`{E}/g;
- $result =~ s/Ë/\\`{E}/g;
+ $result =~ s/Ë/\\`{E}/g; #`
$result =~ s/Ì/\\`{I}/g;
- $result =~ s/Ì/\\`{I}/g;
- $result =~ s/Í/\\'{I}/g;
- $result =~ s/Í/\\'{I}/g;
+ $result =~ s/Ì/\\`{I}/g; #`
+ $result =~ s/Í/\\'{I}/g;
+ $result =~ s/Í/\\'{I}/g; #'
$result =~ s/Î/\\^{I}/g;
$result =~ s/Î/\\^{I}/g;
- $result =~ s/Ï/\\"{I}/g;
- $result =~ s/Ï/\\"{I}/g;
+ $result =~ s/Ï/\\"{I}/g;
+ $result =~ s/Ï/\\"{I}/g; #"
# $result =~ s/Ð//g;
# $result =~ s/Ð//g;
$result =~ s/Ñ/\\~{N}/g;
$result =~ s/Ñ/\\~{N}/g;
$result =~ s/Ò/\\`{O}/g;
- $result =~ s/Ò/\\`{O}/g;
+ $result =~ s/Ò/\\`{O}/g; #`
$result =~ s/Ó/\\'{O}/g;
- $result =~ s/Ó/\\'{O}/g;
+ $result =~ s/Ó/\\'{O}/g; #'
$result =~ s/Ô/\\^{O}/g;
$result =~ s/Ô/\\^{O}/g;
$result =~ s/Õ/\\~{O}/g;
$result =~ s/Õ/\\~{O}/g;
- $result =~ s/Ö/\\"{O}/g;
- $result =~ s/Ö/\\"{O}/g;
+ $result =~ s/Ö/\\"{O}/g;
+ $result =~ s/Ö/\\"{O}/g; #"
$result =~ s/×/\$\\times\$/g;
$result =~ s/×/\$\\times\$/g;
$result =~ s/Ø/{\\O}/g;
$result =~ s/Ø/{\\O}/g;
- $result =~ s/Ù/\\`{U}/g;
- $result =~ s/Ù/\\`{U}/g;
- $result =~ s/Ú/\\'{U}/g;
- $result =~ s/Ú/\\'{U}/g;
+ $result =~ s/Ù/\\`{U}/g;
+ $result =~ s/Ù/\\`{U}/g; #`
+ $result =~ s/Ú/\\'{U}/g; #'
+ $result =~ s/Ú/\\'{U}/g; #'
$result =~ s/Û/\\^{U}/g;
$result =~ s/Û/\\^{U}/g;
- $result =~ s/Ü/\\"{U}/g;
- $result =~ s/Ü/\\"{U}/g;
+ $result =~ s/Ü/\\"{U}/g; #"
+ $result =~ s/Ü/\\"{U}/g; #"
$result =~ s/Ý/\\'{Y}/g;
- $result =~ s/Ý/\\'{Y}/g;
+ $result =~ s/Ý/\\'{Y}/g; #'
# $result =~ s/Þ//g;
# $result =~ s/Þ//g;
# $result =~ s/ß//g;
# $result =~ s/ß//g;
$result =~ s/à/\\`{a}/g;
- $result =~ s/à/\\`{a}/g;
+ $result =~ s/à/\\`{a}/g; #`
$result =~ s/á/\\'{a}/g;
- $result =~ s/á/\\'{a}/g;
+ $result =~ s/á/\\'{a}/g; #'
$result =~ s/â/\\^{a}/g;
$result =~ s/â/\\^{a}/g;
$result =~ s/ã/\\~{a}/g;
$result =~ s/ã/\\~{a}/g;
$result =~ s/ä/\\"{a}/g;
- $result =~ s/ä/\\"{a}/g;
+ $result =~ s/ä/\\"{a}/g; #"
$result =~ s/å/{\\aa}/g;
$result =~ s/å/{\\aa}/g;
$result =~ s/æ/{\\ae}/g;
@@ -1046,59 +945,140 @@
# $result =~ s/ç//g;
# $result =~ s/ç//g;
$result =~ s/è/\\`{e}/g;
- $result =~ s/è/\\`{e}/g;
+ $result =~ s/è/\\`{e}/g; #`
$result =~ s/é/\\'{e}/g;
- $result =~ s/é/\\'{e}/g;
+ $result =~ s/é/\\'{e}/g; #'
$result =~ s/ê/\\^{e}/g;
$result =~ s/ê/\\^{e}/g;
$result =~ s/ë/\\"{e}/g;
- $result =~ s/ë/\\"{e}/g;
+ $result =~ s/ë/\\"{e}/g; #"
$result =~ s/ì/\\`{i}/g;
- $result =~ s/ì/\\`{i}/g;
+ $result =~ s/ì/\\`{i}/g; #`
$result =~ s/í/\\'{i}/g;
- $result =~ s/í/\\'{i}/g;
+ $result =~ s/í/\\'{i}/g; #'
$result =~ s/î/\\^{i}/g;
$result =~ s/î/\\^{i}/g;
$result =~ s/ï/\\"{i}/g;
- $result =~ s/ï/\\"{i}/g;
+ $result =~ s/ï/\\"{i}/g; #"
# $result =~ s/ð//g;
# $result =~ s/ð//g;
$result =~ s/ñ/\\~{n}/g;
$result =~ s/ñ/\\~{n}/g;
$result =~ s/ò/\\`{o}/g;
- $result =~ s/ò/\\`{o}/g;
+ $result =~ s/ò/\\`{o}/g; #`
$result =~ s/ó/\\'{o}/g;
- $result =~ s/ó/\\'{o}/g;
+ $result =~ s/ó/\\'{o}/g; #'
$result =~ s/ô/\\^{o}/g;
$result =~ s/ô/\\^{o}/g;
$result =~ s/õ/\\~{o}/g;
$result =~ s/õ/\\~{o}/g;
$result =~ s/ö/\\"{o}/g;
- $result =~ s/ö/\\"{o}/g;
+ $result =~ s/ö/\\"{o}/g; #"
$result =~ s/÷/\$\\div\$/g;
$result =~ s/÷/\$\\div\$/g;
$result =~ s/ø/{\\o}/g;
$result =~ s/ø/{\\o}/g;
$result =~ s/ù/\\`{u}/g;
- $result =~ s/ù/\\`{u}/g;
+ $result =~ s/ù/\\`{u}/g; #`
$result =~ s/ú/\\'{u}/g;
- $result =~ s/ú/\\'{u}/g;
+ $result =~ s/ú/\\'{u}/g; #'
$result =~ s/û/\\^{u}/g;
$result =~ s/û/\\^{u}/g;
$result =~ s/ü/\\"{u}/g;
- $result =~ s/ü/\\"{u}/g;
+ $result =~ s/ü/\\"{u}/g; #"
$result =~ s/ý/\\'{y}/g;
- $result =~ s/ý/\\'{y}/g;
+ $result =~ s/ý/\\'{y}/g; #'
# $result =~ s/þ//g;
# $result =~ s/þ//g;
$result =~ s/ÿ/\\"{y}/g;
- $result =~ s/ÿ/\\"{y}/g;
+ $result =~ s/ÿ/\\"{y}/g; #"
$result =~ s/θ/\$\\theta\$/g; #converts theta from html into tex
return $result;
}
-#'"`
+ sub page_format {
+ my ($papersize,$layout,$numberofcolumns) = @_;
+ 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 eq '1') {
+ $textwidth = '8.8 in';
+ $textheight = '6.8 in';
+ $oddoffset = '-40 pt';
+ $evenoffset = '-60 pt';
+ } elsif ($numberofcolumns == 2) {
+ $textwidth = '4.2 in';
+ $textheight = '6.8 in';
+ $oddoffset = '-40 pt';
+ $evenoffset = '-60 pt';
+ }
+ }
+# } elsif($papersize=~/Legal/) {
+# } elsif($papersize=~/Ledger/) {
+# } elsif($papersize=~/Executive/) {
+ } elsif($papersize=~/A4/) {
+ if ($layout eq 'CAPA') {
+ if ($numberofcolumns == 1) {
+ $textwidth = '18 cm';
+ $textheight = '28 cm';
+ $oddoffset = '-0.57 in';
+ $evenoffset = '-0.57 in';
+ } elsif ($numberofcolumns == 2) {
+ $textwidth = '9 cm';
+ $textheight = '2 cm';
+ $oddoffset = '-0.57 in';
+ $evenoffset = '-0.57 in';
+ }
+ } elsif ($layout eq 'CBI') {
+ if ($numberofcolumns eq '1') {
+ $textwidth = '8.5 in';
+ $textheight = '7.7 in';
+ $oddoffset = '-40 pt';
+ $evenoffset = '-60 pt';
+ } elsif ($numberofcolumns == 2) {
+ $textwidth = '3.9 in';
+ $textheight = '7.7 in';
+ $oddoffset = '-40 pt';
+ $evenoffset = '-60 pt';
+ }
+ }
+# } elsif($papersize=~/A3/) {
+# } elsif($papersize=~/A2/) {
+# } elsif($papersize=~/A5/) {
+# } elsif($papersize=~/A6/) {
+ }
+ return $textwidth,$textheight,$oddoffset,$evenoffset;
+ }
+
+
+sub page_format_transformation {
+ my ($papersize,$layout,$numberofcolumns,$choice,$text) = @_;
+ my ($textwidth,$textheight,$oddoffset,$evenoffset) = &page_format($papersize,$layout,$numberofcolumns);
+ my $courseidinfo = $ENV{'course.'.$ENV{'request.course.id'}.'.description'};
+ if ($layout eq 'CBI') {
+ $text =~ s/\\begin{document}/\\setlength{\\oddsidemargin}{$oddoffset}\\setlength{\\evensidemargin}{$evenoffset}\\setlength{\\topmargin}{200pt}\\setlength{\\textwidth}{$textwidth}\\setlength{\\textheight}{$textheight}\\setlength{\\parindent}{20pt}\\setlength{\\marginparwidth}{90pt}\\setlength{\\textfloatsep}{8pt plus 2\.0pt minus 4\.0pt}\\newlength{\\minipagewidth}\\setlength{\\minipagewidth}{\\textwidth\/\$number_of_columns-0\.2cm} \\begin{document}\\setcounter{page}{1}\\noindent\\parbox{\\minipagewidth}{\\noindent\\fbox{\\textbf{$ENV{'environment.firstname'} $ENV{'environment.lastname'}}} \\hfill $courseidinfo} \\vskip 5 mm /;
+ } elsif ($layout eq 'CAPA') {
+ if ($choice ne 'All class print') {
+ $text =~ 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}\\noindent\\parbox{\\minipagewidth}{\\noindent\\fbox{\\textbf{$ENV{'environment.firstname'} $ENV{'environment.lastname'}}} \\hfill $courseidinfo} \\vskip 5 mm /;
+ } else {
+ $text =~ s/\\begin{document}/\\setlength{\\textheight}{$textheight}\\setlength{\\oddsidemargin}{$oddoffset}\\setlength{\\evensidemargin}{$evenoffset}\\setlength{\\textheight}{$textheight}\\newlength{\\minipagewidth}\\setlength{\\minipagewidth}{\\textwidth\/\$number_of_columns-0\.2cm}\\renewcommand{\\ref}{\\keephidden\}\\begin{document}\\voffset=-1\.8cm\\setcounter{page}{1} \\vskip 5 mm /;
+ }
+ }
+ return $text;
+}
sub page_cleanup {
@@ -1132,6 +1112,40 @@
}
return ($name_of_resourse,$name_of_sequence,$name_of_map);
+}
+
+
+sub latex_corrections {
+
+ my ($number_of_columns,$result) = @_;
+
+ $result =~ s/\\includegraphics{/\\includegraphics\[\\minipagewidth\]{/g;
+ $result =~ s/\$number_of_columns/$number_of_columns/g;
+ $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\[\\textwidth\/$number_of_columns\]\[b\]{\\hrulefill})/$2$1/g;
+ $result =~ s/(\\end{longtable}\s*)\\newline/$1/g;
+#-- LaTeX corrections
+ my $first_comment = index($result,'<!--',0);
+ while ($first_comment != -1) {
+ my $end_comment = index($result,'-->',$first_comment);
+ substr($result,$first_comment,$end_comment-$first_comment+3) = '';
+ $first_comment = index($result,'<!--',$first_comment);
+ }
+ $result =~ s/^\s+$//gm; #remove empty lines
+ $result =~ s/(\s)+/$1/g; #removes more than one empty space
+ $result =~ s/\\\\\s*\\vskip/\\vskip/gm;
+ $result =~ s/\\\\\s*\\noindent\s*(\\\\)+/\\\\\\noindent /g;
+ $result =~ s/{\\par }\s*\\\\/\\\\/gm;
+ $result =~ s/\\\\\s+\[/ \[/g;
+ $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);
+ }
+ $result =~ s/(\\end{tabular})\s*\\vskip 0 mm/$1/g;
+ $result =~ s/(\\begin{enumerate})\s*\\noindent/$1/g;
+
+ return $result;
}
--sakharuk1034013527--