--- loncom/xml/londefdef.pm	2003/05/12 20:13:36	1.133
+++ loncom/xml/londefdef.pm	2003/06/19 18:45:57	1.141
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # Tags Default Definition Module 
 #
-# $Id: londefdef.pm,v 1.133 2003/05/12 20:13:36 www Exp $
+# $Id: londefdef.pm,v 1.141 2003/06/19 18:45:57 sakharuk Exp $
 # 
 #
 # Copyright Michigan State University Board of Trustees
@@ -54,7 +54,7 @@ use Apache::lonmeta();
 
 BEGIN {
 
-    &Apache::lonxml::register('Apache::londefdef',('a','abbr','acronym','accessrule','address','allow','applet','area','b','base','basefont','bgo','bgsound','big','blink','blockquote','blankspace','body','br','button','caption','center','cite','code','col','colgroup','dd','del','dfn','dir','div','dl','dt','em','embed','externallink','fieldset','font','form','frame','frameset','h1','h2','h3','h4','h5','h6','head','hr','html','i','iframe','img','input','ins','insert','isindex','kbd','keygen','label','layer','legend','li','link','m','map','marquee','menu','meta','multicol','nobr','noembed','noframes','nolayer','noscript','object','ol','optgroup','option','output','p','param','pre','q','s','samp','select','server','small','spacer','span','strike','strong','sub','sup','table','tbody','td','textarea','tfoot','th','thead','title','tr','tt','tthoption','u','ul','var','wbr'));
+    &Apache::lonxml::register('Apache::londefdef',('a','abbr','acronym','accessrule','address','allow','applet','area','b','base','basefont','bgo','bgsound','big','blink','blockquote','blankspace','body','br','button','caption','center','cite','code','col','colgroup','dd','del','dfn','dir','div','dl','dt','em','embed','externallink','fieldset','font','form','frame','frameset','h1','h2','h3','h4','h5','h6','head','hr','html','i','iframe','img','input','ins','insert','isindex','kbd','keygen','label','layer','legend','li','link','m','map','marquee','menu','meta','multicol','nobr','noembed','noframes','nolayer','noscript','object','ol','optgroup','option','output','p','param','pre','q','s','samp','select','server','small','spacer','span','strike','strong','sub','sup','table','tbody','td','textarea','tfoot','th','thead','title','tr','tt','tthoption','u','ul','var','wbr','hideweboutput'));
 
 }
 
@@ -158,6 +158,7 @@ sub start_html {
     } elsif ($target eq 'tex') {
 	@Apache::londefdef::table = ();
 	$currentstring .= '\documentclass[letterpaper]{article}
+                           \batchmode
                            \newcommand{\keephidden}[1]{}
                            \renewcommand{\deg}{$^{\circ}$}
                            \usepackage{textcomp}
@@ -354,8 +355,7 @@ sub start_meta {
 	} else {
 	    $currentstring = $token->[4];
 	}
-    }
-    if ($target eq 'meta') {
+    } elsif ($target eq 'meta') {
 	unless (&Apache::lonxml::get_param
 		('http-equiv',$parstack,$safeeval,undef,1)) {
 	    my $name=$token->[2]->{'name'};
@@ -366,9 +366,11 @@ sub start_meta {
 		$currentstring='<'.$name.'>'.
 		    &Apache::lonxml::get_param
 			('content',$parstack,$safeeval,undef,1).
-			    '</'.$name.'>';
+			'</'.$name.'>';
 	    }
 	}
+    } elsif ($target eq 'tex') {
+	&Apache::lonxml::startredirection();
     }
     return $currentstring;
 }
@@ -382,7 +384,10 @@ sub end_meta {
 	if ($args ne '') {
 	    $currentstring = $token->[4];
 	}
-    } 
+    } elsif ($target eq 'tex') {
+	$currentstring=&Apache::lonxml::endredirection();
+	$currentstring='';
+    }
     return $currentstring;
 }
 
@@ -1133,7 +1138,7 @@ sub start_big {
     if ($target eq 'web') {
 	$currentstring .= $token->[4];
     } elsif ($target eq 'tex') {
-	$currentstring .= '\large{';
+	$currentstring .= '{\large ';
     } elsif ($target eq 'latexsource') {
 	$currentstring .= '{\Large ';
     }  
@@ -1696,11 +1701,11 @@ sub end_dd {
 #-- <table> tag
 sub start_table {
     my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_;
-    my $textwidth;
+    my $textwidth='';
     if (not defined @Apache::londefdef::table) {
 	$textwidth=&recalc($ENV{'form.textwidth'});
-	$textwidth=~/(\d+)/;
-	$textwidth=$1;
+	$textwidth=~/(\d+\.?\d*)/;
+	$textwidth=0.95*$1;
     } else {
 	$textwidth=&Apache::lonxml::get_param('TeXwidth',$parstack,$safeeval,undef,0);
     }
@@ -1742,7 +1747,7 @@ sub start_table {
 	    $Apache::londefdef::table[-1]{'vvinc'} = '';
 	}
 	$Apache::londefdef::table[-1]{'output'} = ' \noindent \begin{tabular} ';
-	$currentstring = '\keephidden{NEW TABLE ENTRY '.$textwidth.'}';
+	$currentstring = '\keephidden{NEW TABLE ENTRY '.$textwidth.' }';
     }
     return $currentstring;
 }
@@ -1820,6 +1825,7 @@ sub end_table {
 	} else {
 	    $currentstring .= $Apache::londefdef::table[-1]{'output'};
 	    pop @Apache::londefdef::table;
+            undef @Apache::londefdef::table;
 	}
     }
     return $currentstring;
@@ -2194,7 +2200,8 @@ sub start_allow {
     my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_;
     my $src = &Apache::lonxml::get_param('src',$parstack,$safeeval,undef,1);
     $src=&Apache::lonnet::filelocation($Apache::lonxml::pwd[-1],$src);
-    $Apache::lonxml::extlinks[$#Apache::lonxml::extlinks+1]=$src;
+    $Apache::lonxml::extlinks[$#Apache::lonxml::extlinks+1]=
+	&Apache::lonnet::clutter($src);
     &image_replication($src);
     my $result;
     if ($target eq 'edit') {
@@ -2267,9 +2274,7 @@ sub start_pre {
     if ($target eq 'web') {
 	$currentstring .= $token->[4];
     } elsif ($target eq 'tex') {
-	my $width = &Apache::lonxml::get_param('TeXwidth',$parstack,$safeeval,undef,0);
-	if (not defined $width) {$width ='\textwidth';}
-	$currentstring .= '\parbox['.$width.']{\begin{verbatim}';
+	$currentstring .= '\begin{verbatim}';
     } 
     return $currentstring;
 }
@@ -2280,7 +2285,7 @@ sub end_pre {
     if ($target eq 'web') {
 	$currentstring .= $token->[2];
     } elsif ($target eq 'tex') {
-	$currentstring .= '\end{verbatim}}';
+	$currentstring .= '\end{verbatim}';
     }
     return $currentstring;
 }
@@ -3124,6 +3129,26 @@ sub end_wbr {
     return $currentstring;
 }
 
+
+#-- <hideweboutput> tag
+sub start_hideweboutput {
+    my ($target,$token) = @_;
+    if ($target eq 'web') {
+	&Apache::lonxml::startredirection();     
+    } 
+    return '';
+}
+
+sub end_hideweboutput {
+    my ($target,$token) = @_;
+    my $currentstring = '';
+    if ($target eq 'web') {
+	$currentstring = &Apache::lonxml::endredirection();    
+    } 
+    return '';
+}
+
+
 sub image_replication {
     my $src = shift;
     if (not -e $src) {