--- loncom/xml/londefdef.pm 2009/01/20 12:01:00 1.398
+++ loncom/xml/londefdef.pm 2010/02/02 15:34:58 1.403.4.1
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Tags Default Definition Module
#
-# $Id: londefdef.pm,v 1.398 2009/01/20 12:01:00 foxr Exp $
+# $Id: londefdef.pm,v 1.403.4.1 2010/02/02 15:34:58 raeburn Exp $
#
#
# Copyright Michigan State University Board of Trustees
@@ -176,47 +176,8 @@ sub start_html {
if ($target eq 'web' || $target eq 'edit' || $target eq 'webgrade' ) {
# start_body() takes care of emitting the
} elsif ($target eq 'tex') {
- $currentstring .=
- '\documentclass[letterpaper,twoside]{article}\raggedbottom';
- if (($env{'form.latex_type'}=~'batchmode') ||
- (!$env{'request.role.adv'})) {$currentstring .='\batchmode';}
- $currentstring .= '\newcommand{\keephidden}[1]{}'.
- '\renewcommand{\deg}{$^{\circ}$}'.
- '\usepackage{multirow}'.
- '\usepackage{longtable}'.
- '\usepackage{textcomp}'.
- '\usepackage{makeidx}'.
- '\usepackage[dvips]{graphicx}'.
- '\usepackage{wrapfig}'.
- '\usepackage{picins}'.
- '\usepackage[T1]{fontenc}'."\n".
- '\usepackage{lmodern}'."\n".
- '\usepackage[postscript]{ucs}'."\n".
- '\usepackage[utf8x]{inputenc}'."\n".
- '\usepackage{pifont}' ."\n".
- '\usepackage{latexsym}'."\n".
- '\usepackage{epsfig}'.
- "\\usepackage{xtab}\n".
- "\\usepackage{tabularx}\n".
- "\\usepackage{booktabs}\n".
- "\\usepackage{array}\n".
- "\\usepackage{colortbl}\n".
- "\\usepackage{xcolor}\n".
- '\usepackage{calc}'.
- '\usepackage{amsmath}'.
- '\usepackage{amssymb}'.
- '\usepackage{amsfonts}'.
- '\usepackage{amsthm}'.
- '\usepackage{amscd}';
-
- if($env{'form.pdfFormFields'} eq 'yes') {
- $currentstring .= '\usepackage{hyperref}'.
- '\usepackage{eforms}'.
- '\usepackage{tabularx}';
- }
- $currentstring .= '\newenvironment{choicelist}{\begin{list}{}{\setlength{\rightmargin}{0in}\setlength{\leftmargin}{0.13in}\setlength{\topsep}{0.05in}\setlength{\itemsep}{0.022in}\setlength{\parsep}{0in}\setlength{\belowdisplayskip}{0.04in}\setlength{\abovedisplayskip}{0.05in}\setlength{\abovedisplayshortskip}{-0.04in}\setlength{\belowdisplayshortskip}{0.04in}}}{\end{list}}'.
- '\renewenvironment{theindex}{\begin{list}{}{{\vskip 1mm \noindent \large\textbf{Index}} \newline \setlength{\rightmargin}{0in}\setlength{\leftmargin}{0.13in}\setlength{\topsep}{0.01in}\setlength{\itemsep}{0.1in}\setlength{\parsep}{-0.02in}\setlength{\belowdisplayskip}{0.01in}\setlength{\abovedisplayskip}{0.01in}\setlength{\abovedisplayshortskip}{-0.04in}\setlength{\belowdisplayshortskip}{0.01in}}}{\end{list}}';
+ $currentstring .= &latex_header();
}
return $currentstring;
}
@@ -591,19 +552,24 @@ sub start_body {
}
$currentstring.=&Apache::lonxml::message_location();
} elsif ($target eq 'tex') {
- $currentstring = '\begin{document}';
+ $currentstring = ''; # '\begin{document}' is in header.
}
return $currentstring;
}
sub edit_controls {
+ my ($nochgview) = @_;
my $result .= '
';
@@ -1651,6 +1617,26 @@ sub start_a {
my $href=&Apache::lonxml::get_param('href',$parstack,$safeeval,
undef,1);
$currentstring=&Apache::lonenc::encrypt_ref($token,{'href'=>$href});
+ if ($href =~ /\S/) {
+ if ($href !~ m{^https?://}) {
+ my $url=&Apache::lonnet::hreflocation('',$env{'request.filename'});
+ my $linkurl;
+ if ($href =~ m{^/uploaded/}) {
+ $linkurl = $href;
+ } elsif ($href =~ m{^[^/]}) {
+ my $path = $url;
+ $path =~ s{[^/]*$}{};
+ $linkurl = $path.$href;
+ }
+ if ($linkurl =~ m{^/uploaded/}) {
+ if (!&Apache::lonnet::allowed('bre',$linkurl)) {
+ if (&Apache::lonnet::is_on_map($url)) {
+ &Apache::lonxml::extlink($linkurl);
+ }
+ }
+ }
+ }
+ }
}
return $currentstring;
}
@@ -4735,7 +4721,7 @@ sub align_latex_image {
# Even though we set a default alignment value, the user
# could have given us an illegal value. In that case we
# just use the default alignment of bottom..
- $currentstring = "\n% figurewrapping \n";
+ $currentstring = '';
if ($align eq "top") {
$currentstring .= '\raisebox{-'.$height.'mm}{'.$image;
$closure = '}';
@@ -4778,8 +4764,6 @@ sub align_latex_image {
$currentstring .= "{$image";
$closure = '}';
}
- $currentstring .= "\n% end wrappage\n";
- $closure = "\n% Begin closure\n".$closure."\n% End closure\n";
return ($currentstring, $closure);
}
@@ -4796,6 +4780,68 @@ sub is_inside_of {
}
+#
+# This sub provides the typical LaTeX prefix matter for tex output:
+#
+sub latex_header {
+ my ($mode) = @_;
+ my $currentstring = '';
+
+ $currentstring .=
+ "\n% &Apache::lonxml::londefdef \n" .
+ '\documentclass[letterpaper,twoside]{article}\raggedbottom';
+ if (($env{'form.latex_type'}=~'batchmode') ||
+ (!$env{'request.role.adv'}) ||
+ ($mode eq 'batchmode')) {$currentstring .='\batchmode';}
+ $currentstring .= '\newcommand{\keephidden}[1]{}'.
+ '\renewcommand{\deg}{$^{\circ}$}'.
+ '\usepackage{multirow}'.
+ '\usepackage{longtable}'.
+ '\usepackage{textcomp}'.
+ '\usepackage{makeidx}'.
+ '\usepackage[dvips]{graphicx}'.
+ '\usepackage{wrapfig}'.
+ '\usepackage{picins}'.
+ '\usepackage[T1]{fontenc}'."\n".
+ '\usepackage{lmodern}'."\n".
+ '\usepackage[postscript]{ucs}'."\n".
+ '\usepackage[utf8x]{inputenc}'."\n".
+ '\usepackage{pifont}' ."\n".
+ '\usepackage{latexsym}'."\n".
+ '\usepackage{epsfig}'.
+ "\\usepackage{xtab}\n".
+ "\\usepackage{tabularx}\n".
+ "\\usepackage{booktabs}\n".
+ "\\usepackage{array}\n".
+ "\\usepackage{colortbl}\n".
+ "\\usepackage{xcolor}\n".
+ '\usepackage{calc}'.
+ '\usepackage{amsmath}'.
+ '\usepackage{amssymb}'.
+ '\usepackage{amsfonts}'.
+ '\usepackage{amsthm}'.
+ '\usepackage{amscd}'
+ .'\usepackage{picins}\usepackage{calc}'."\n". # From lonprintout.pm
+ '\usepackage[T1]{fontenc}'."\n".
+ '\usepackage{lmodern}'."\n".
+ '\usepackage[postscript]{ucs}'."\n".
+ '\usepackage[utf8x]{inputenc}'."\n".
+ '\usepackage{pifont}' . "\n";
+
+ if($env{'form.pdfFormFields'} eq 'yes') {
+ $currentstring .= '\usepackage{hyperref}'.
+ '\usepackage{eforms}'.
+ '\usepackage{tabularx}';
+ }
+
+ $currentstring .= '\newenvironment{choicelist}{\begin{list}{}{\setlength{\rightmargin}{0in}\setlength{\leftmargin}{0.13in}\setlength{\topsep}{0.05in}\setlength{\itemsep}{0.022in}\setlength{\parsep}{0in}\setlength{\belowdisplayskip}{0.04in}\setlength{\abovedisplayskip}{0.05in}\setlength{\abovedisplayshortskip}{-0.04in}\setlength{\belowdisplayshortskip}{0.04in}}}{\end{list}}'.
+ '\renewenvironment{theindex}{\begin{list}{}{{\vskip 1mm \noindent \large\textbf{Index}} \newline \setlength{\rightmargin}{0in}\setlength{\leftmargin}{0.13in}\setlength{\topsep}{0.01in}\setlength{\itemsep}{0.1in}\setlength{\parsep}{-0.02in}\setlength{\belowdisplayskip}{0.01in}\setlength{\abovedisplayskip}{0.01in}\setlength{\abovedisplayshortskip}{-0.04in}\setlength{\belowdisplayshortskip}{0.01in}}}{\end{list}}';
+ $currentstring .= '\begin{document}';
+
+ return $currentstring;
+
+}
+
=pod
=head1 NAME