[LON-CAPA-cvs] cvs: loncom /interface lonprintout.pm
sakharuk
lon-capa-cvs@mail.lon-capa.org
Mon, 08 Jul 2002 17:31:36 -0000
This is a MIME encoded message
--sakharuk1026149496
Content-Type: text/plain
sakharuk Mon Jul 8 13:31:36 2002 EDT
Modified files:
/loncom/interface lonprintout.pm
Log:
Added translation of html character entities to LaTeX.
--sakharuk1026149496
Content-Type: text/plain
Content-Disposition: attachment; filename="sakharuk-20020708133136.txt"
Index: loncom/interface/lonprintout.pm
diff -u loncom/interface/lonprintout.pm:1.36 loncom/interface/lonprintout.pm:1.37
--- loncom/interface/lonprintout.pm:1.36 Mon Jul 1 16:56:20 2002
+++ loncom/interface/lonprintout.pm Mon Jul 8 13:31:36 2002
@@ -1,7 +1,7 @@
# The LearningOnline Network
# Printout
#
-# $Id: lonprintout.pm,v 1.36 2002/07/01 20:56:20 sakharuk Exp $
+# $Id: lonprintout.pm,v 1.37 2002/07/08 17:31:36 sakharuk Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -259,9 +259,13 @@
$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/(\\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/\\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 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\\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;
}
#-- LaTeX corrections
my $first_comment = index($result,'<!--',0);
@@ -280,6 +284,10 @@
$result =~ s/\\\\\s+\[/ \[/g;
$result =~ s/θ/\$\\theta\$/g; #converts theta from html into tex
$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);
+ }
#-- writing .tex file in prtspool
my $temp_file;
my $filename = "/home/httpd/prtspool/$ENV{'user.name'}_$ENV{'user.domain'}_printout_".time."_".rand(10000000).".tex";
@@ -295,6 +303,329 @@
FINALEND
}
+sub character_chart {
+ my $result = shift;
+ $result =~ s/	//g;
+ $result =~ s/
//g;
+ $result =~ s/
//g;
+ $result =~ s/ / /g;
+ $result =~ s/!/!/g;
+ $result =~ s/"/"/g;
+ $result =~ s/"/"/g; #"
+ $result =~ s/#/\\#/g;
+ $result =~ s/$/\\\$/g;
+ $result =~ s/%/\\%/g;
+ $result =~ s/&/\\&/g;
+ $result =~ s/&/\\&/g;
+ $result =~ s/'/'/g;
+ $result =~ s/(/(/g;
+ $result =~ s/)/)/g;
+ $result =~ s/*/\*/g;
+ $result =~ s/+/\+/g;
+ $result =~ s/,/,/g;
+ $result =~ s/-/-/g;
+ $result =~ s/./\./g;
+ $result =~ s///\//g;
+ $result =~ s/0/0/g;
+ $result =~ s/1/1/g;
+ $result =~ s/2/2/g;
+ $result =~ s/3/3/g;
+ $result =~ s/4/4/g;
+ $result =~ s/5/5/g;
+ $result =~ s/6/6/g;
+ $result =~ s/7/7/g;
+ $result =~ s/8/8/g;
+ $result =~ s/9/9/g;
+ $result =~ s/:/:/g;
+ $result =~ s/;/;/g;
+ $result =~ s/</\$<\$/g;
+ $result =~ s/</\$<\$/g;
+ $result =~ s/=/\$=\$/g;
+ $result =~ s/>/\$>\$/g;
+ $result =~ s/>/\$>\$/g;
+ $result =~ s/?/?/g;
+# $result =~ s/@//g;
+ $result =~ s/A/A/g;
+ $result =~ s/B/B/g;
+ $result =~ s/C/C/g;
+ $result =~ s/D/D/g;
+ $result =~ s/E/E/g;
+ $result =~ s/F/F/g;
+ $result =~ s/G/G/g;
+ $result =~ s/H/H/g;
+ $result =~ s/I/I/g;
+ $result =~ s/J/J/g;
+ $result =~ s/K/K/g;
+ $result =~ s/L/L/g;
+ $result =~ s/M/M/g;
+ $result =~ s/N/N/g;
+ $result =~ s/O/O/g;
+ $result =~ s/P/P/g;
+ $result =~ s/Q/Q/g;
+ $result =~ s/R/R/g;
+ $result =~ s/S/S/g;
+ $result =~ s/T/T/g;
+ $result =~ s/U/U/g;
+ $result =~ s/V/V/g;
+ $result =~ s/W/W/g;
+ $result =~ s/X/X/g;
+ $result =~ s/Y/Y/g;
+ $result =~ s/Z/Z/g;
+ $result =~ s/[/[/g;
+ $result =~ s/\/\\/g;
+ $result =~ s/]/]/g;
+# $result =~ s/^//g;
+# $result =~ s/_//g;
+ $result =~ s/`/`/g;
+ $result =~ s/a/a/g;
+ $result =~ s/b/b/g;
+ $result =~ s/c/c/g;
+ $result =~ s/d/d/g;
+ $result =~ s/e/e/g;
+ $result =~ s/f/f/g;
+ $result =~ s/g/g/g;
+ $result =~ s/h/h/g;
+ $result =~ s/i/i/g;
+ $result =~ s/j/j/g;
+ $result =~ s/k/k/g;
+ $result =~ s/l/l/g;
+ $result =~ s/m/m/g;
+ $result =~ s/n/n/g;
+ $result =~ s/o/o/g;
+ $result =~ s/p/p/g;
+ $result =~ s/q/q/g;
+ $result =~ s/r/r/g;
+ $result =~ s/s/s/g;
+ $result =~ s/t/t/g;
+ $result =~ s/u/u/g;
+ $result =~ s/v/v/g;
+ $result =~ s/w/w/g;
+ $result =~ s/x/x/g;
+ $result =~ s/y/y/g;
+ $result =~ s/z/z/g;
+ $result =~ s/{/\\{/g;
+ $result =~ s/|/\|/g;
+ $result =~ s/}/\\}/g;
+ $result =~ s/~/\~/g;
+ $result =~ s/‚/,/g;
+# $result =~ s/ƒ//g;
+ $result =~ s/„/''/g;
+ $result =~ s/…/\$\\ldots\$/g;
+ $result =~ s/†/\$\\dagger\$/g;
+ $result =~ s/‡/\$\\ddagger\$/g;
+# $result =~ s/ˆ//g;
+# $result =~ s/‰//g;
+# $result =~ s/Š//g;
+ $result =~ s/‹/\$<\$/g;
+# $result =~ s/Œ//g;
+ $result =~ s/‘/`/g;
+ $result =~ s/’/'/g;
+ $result =~ s/“/``/g;
+ $result =~ s/”/''/g;
+ $result =~ s/•/\$\\bullet\$/g;
+# $result =~ s/–//g;
+# $result =~ s/—//g;
+ $result =~ s/˜/~/g;
+# $result =~ s/™//g;
+# $result =~ s/š//g;
+ $result =~ s/›/\$>\$/g;
+ $result =~ s/œ/\\{\\oe\\}/g;
+ $result =~ s/Ÿ/\\"\\{Y\\}/g;
+ $result =~ s/ //g;
+ $result =~ s/ //g;
+ $result =~ s/¡/!`/g;
+ $result =~ s/¡/!`/g; #`
+# $result =~ s/¢//g;
+# $result =~ s/¢//g;
+ $result =~ s/£/\\pounds/g;
+ $result =~ s/£/\\pounds/g;
+# $result =~ s/¤//g;
+# $result =~ s/¤//g;
+# $result =~ s/¥//g;
+# $result =~ s/¥//g;
+# $result =~ s/¦//g;
+# $result =~ s/¦//g;
+# $result =~ s/§//g;
+# $result =~ s/§//g;
+# $result =~ s/¨//g;
+# $result =~ s/¨//g;
+ $result =~ s/©/\\copyright/g;
+ $result =~ s/©/\\copyright/g;
+# $result =~ s/ª//g;
+# $result =~ s/ª//g;
+# $result =~ s/«//g;
+# $result =~ s/«//g;
+ $result =~ s/¬/\$\\neg\$/g;
+ $result =~ s/¬/\$\\neg\$/g;
+# $result =~ s/­//g;
+# $result =~ s/­//g;
+# $result =~ s/®//g;
+# $result =~ s/®//g;
+# $result =~ s/¯//g;
+# $result =~ s/¯//g;
+ $result =~ s/°/\$^\\{\\circ\\}\$/g;
+ $result =~ s/°/\$^\\{\\circ\\}\$/g;
+ $result =~ s/±/\$\\pm\$/g;
+ $result =~ s/±/\$\\pm\$/g;
+ $result =~ s/²/\$^2\$/g;
+ $result =~ s/²/\$^2\$/g;
+ $result =~ s/³/\$^3\$/g;
+ $result =~ s/³/\$^3\$/g;
+# $result =~ s/´//g;
+# $result =~ s/´//g;
+ $result =~ s/µ/\$\\mu\$/g;
+ $result =~ s/µ/\$\\mu\$/g;
+ $result =~ s/¶/\\P/g;
+ $result =~ s/¶/\\P/g;
+ $result =~ s/·/\$\\cdot\$/g;
+ $result =~ s/·/\$\\cdot\$/g;
+# $result =~ s/¸//g;
+# $result =~ s/¸//g;
+ $result =~ s/¹/\$^1\$/g;
+ $result =~ s/¹/\$^1\$/g;
+# $result =~ s/º//g;
+# $result =~ s/º//g;
+# $result =~ s/»//g;
+# $result =~ s/»//g;
+# $result =~ s/¼//g;
+# $result =~ s/¼//g;
+# $result =~ s/½//g;
+# $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/Á/\\'{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/Ì/\\`{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/×/\$\\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/Ý/\\'{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/å/{\\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/ì/\\`{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/÷/\$\\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/ý/\\'{y}/g;
+ $result =~ s/ý/\\'{y}/g;
+# $result =~ s/þ//g;
+# $result =~ s/þ//g;
+ $result =~ s/ÿ/\\"{y}/g;
+ $result =~ s/ÿ/\\"{y}/g;
+ return $result;
+}
+
sub additional_cleanup {
my $result = shift;
my $first_app = index($result,'\documentclass',0);
@@ -319,6 +650,7 @@
$result =~ s/&\s*REMOVETHEHEADOFLONGTABLE\\\\/\\\\/g;
$result =~ s/(\\vskip\s*\d+\s*mm)/}\\\\\\parbox{\\minipagewidth}{/g;
$result =~ s/\\parbox{\\minipagewidth}{}\s*\\\\\s*(\\parbox{\\minipagewidth})/$1/g;
+ $result =~ s/\\parbox{\\minipagewidth}{\s*\\\\\\\\/\\parbox{\\minipagewidth}{/g;
return $result,$number_of_columns;
}
--sakharuk1026149496--