--- loncom/interface/lonprintout.pm 2006/11/20 11:01:50 1.492
+++ loncom/interface/lonprintout.pm 2007/04/20 20:13:58 1.498
@@ -2,7 +2,7 @@
# The LearningOnline Network
# Printout
#
-# $Id: lonprintout.pm,v 1.492 2006/11/20 11:01:50 foxr Exp $
+# $Id: lonprintout.pm,v 1.498 2007/04/20 20:13:58 foxr Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -48,6 +48,34 @@ my %perm;
my %parmhash;
my $resources_printed;
+# Fetch the contents of a resource, uninterpreted.
+# This is used here to fetch a latex file to be included
+# verbatim into the printout<
+# NOTE: Ask Guy if there is a lonnet function similar to this?
+#
+# Parameters:
+# URL of the file
+#
+sub fetch_raw_resource {
+ my ($url) = @_;
+
+ my $filename = &Apache::lonnet::filelocation("", $url);
+ #
+ # fetch if needed:
+ #
+ if (! -e $filename) {
+ my $repcopy_result = &Apache::lonnet::repcopy($filename);
+
+ if ($repcopy_result ne 'ok') {
+ return "File open failed for $filename"; # This will bomb the print.
+ }
+ }
+ my $contents = &Apache::lonnet::readfile($filename);
+
+ return $contents;
+
+}
+
#
# printf_style_subst item format_string repl
#
@@ -490,7 +518,7 @@ sub character_chart {
$result =~ s/&\#147;/\`\`/g;
$result =~ s/&\#148;/\'\'/g;
$result =~ s/&\#149;/\\ensuremath\{\\bullet\}/g;
- $result =~ s/&\#150;/--/g;
+ $result =~ s/&(\#150|\#8211);/--/g;
$result =~ s/&\#151;/---/g;
$result =~ s/&\#152;/\\ensuremath\{\\sim\}/g;
$result =~ s/&\#153;/\\texttrademark /g;
@@ -697,6 +725,20 @@ sub character_chart {
$result =~ s/&(clubs|\#9827);/\\ensuremath\{\\clubsuit\}/g;
$result =~ s/&(hearts|\#9829);/\\ensuremath\{\\heartsuit\}/g;
$result =~ s/&(diams|\#9830);/\\ensuremath\{\\diamondsuit\}/g;
+# Chemically useful 'things' contributed by Hon Kie (bug 4652).
+ $result =~ s/&\#8636;/\\ensuremath\{\\leftharpoonup\}/g;
+ $result =~ s/&\#8637;/\\ensuremath\{\\leftharpoondown\}/g;
+ $result =~ s/&\#8640;/\\ensuremath\{\\rightharpoonup\}/g;
+ $result =~ s/&\#8641;/\\ensuremath\{\\rightharpoondown\}/g;
+ $result =~ s/&\#8652;/\\ensuremath\{\\rightleftharpoons\}/g;
+ $result =~ s/&\#8605;/\\ensuremath\{\\leadsto\}/g;
+ $result =~ s/&\#8617;/\\ensuremath\{\\hookleftarrow\}/g;
+ $result =~ s/&\#8618;/\\ensuremath\{\\hookrightarrow\}/g;
+ $result =~ s/&\#8614;/\\ensuremath\{\\mapsto\}/g;
+ $result =~ s/&\#8599;/\\ensuremath\{\\nearrow\}/g;
+ $result =~ s/&\#8600;/\\ensuremath\{\\searrow\}/g;
+ $result =~ s/&\#8601;/\\ensuremath\{\\swarrow\}/g;
+ $result =~ s/&\#8598;/\\ensuremath\{\\nwarrow\}/g;
return $result;
}
@@ -705,11 +747,11 @@ sub character_chart {
my %page_formats=
('letter' => {
'book' => {
- '1' => [ '7.1 in','9.8 in', '-0.57 in','-0.57 in','0.7 cm'],
- '2' => ['3.66 in','9.8 in', '-0.57 in','-0.57 in','0.7 cm']
+ '1' => [ '7.1 in','9.8 in', '-0.57 in','-0.57 in','0.275 in'],
+ '2' => ['3.66 in','9.8 in', '-0.57 in','-0.57 in','0.275 in']
},
'album' => {
- '1' => [ '8.8 in', '6.8 in','-0.55 in', '-0.55 in','1 cm'],
+ '1' => [ '8.8 in', '6.8 in','-0.55 in', '-0.55 in','0.394 in'],
'2' => [ '4.8 in', '6.8 in','-0.5 in', '-1.0 in','3.5 in']
},
},
@@ -765,12 +807,12 @@ my %page_formats=
},
'a4' => {
'book' => {
- '1' => ['17.6 cm','27.2 cm','-0.55 in','-0.83 in','-0.5 in'],
- '2' => [ '9.1 cm','27.2 cm','-0.55 in','-0.83 in','-0.5 in']
+ '1' => ['17.6 cm','27.2 cm','-1.397 cm','-2.11 cm','-1.27 cm'],
+ '2' => [ '9.1 cm','27.2 cm','-1.397 cm','-2.11 cm','-1.27 cm']
},
'album' => {
- '1' => ['8.5 in','7.7 in','-0.55 in','-0.83 in','0 in'],
- '2' => ['3.9 in','7.7 in','-0.55 in','-0.83 in','0 in']
+ '1' => ['21.59 cm','19.558 cm','-1.397cm','-2.11 cm','0 cm'],
+ '2' => ['9.91 cm','19.558 cm','-1.397 cm','-2.11 cm','0 cm']
},
},
'a5' => {
@@ -1441,6 +1483,13 @@ ENDPART
$resources_printed .= $currentURL.':';
my $texversion=&Apache::lonnet::ssi($currentURL,%form);
$result .= $texversion;
+ } elsif ($cleanURL =~/.tex$/) {
+ # For this sort of print of a single LaTeX file,
+ # We can just print the LaTeX file as it is uninterpreted in any way:
+ #
+
+ $result = &fetch_raw_resource($currentURL);
+
} else {
$result.=&unsupported($currentURL,$helper->{'VARS'}->{'LATEX_TYPE'},
$helper->{'VARS'}->{'symb'});
@@ -2784,7 +2833,10 @@ CHOOSE_FROM_ANY_SEQUENCE
if (($perm{'pav'} and &Apache::lonnet::allowed('vgr',$env{'request.course.id'})) or
($helper->{VARS}->{'construction'} eq '1')) {
- addMessage("
Print: | ");
+ addMessage("
".
+ ': | ");
$paramHash = Apache::lonhelper::getParamHash();
$paramHash->{'variable'} = 'ANSWER_TYPE';
$helper->declareVar('ANSWER_TYPE');
@@ -2800,10 +2852,16 @@ CHOOSE_FROM_ANY_SEQUENCE
if ($perm{'pav'}) {
if (!$startedTable) {
- addMessage("
LaTeX mode: | ");
+ addMessage("
|
|
|