--- loncom/xml/londefdef.pm 2006/01/13 21:10:03 1.314 +++ loncom/xml/londefdef.pm 2006/02/05 18:32:40 1.319 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Tags Default Definition Module # -# $Id: londefdef.pm,v 1.314 2006/01/13 21:10:03 albertel Exp $ +# $Id: londefdef.pm,v 1.319 2006/02/05 18:32:40 albertel Exp $ # # # Copyright Michigan State University Board of Trustees @@ -105,11 +105,21 @@ sub start_m { $inside=&Apache::run::evaluate($inside,$safeeval,$$parstack[-1]); #&Apache::lonxml::debug("M is evaulated to:$inside:"); } + my $tex = $inside; my $display=&Apache::lonxml::get_param('display',$parstack,$safeeval); $currentstring = &Apache::lontexconvert::converted(\$inside,$display); if ($Apache::lontexconvert::errorstring) { - &Apache::lonxml::warning("tth error: ". - $Apache::lontexconvert::errorstring); + my $errormsg='
'.&HTML::Entities::encode($Apache::lontexconvert::errorstring,'<>&"').'
occured while attempting to convert this TeX:
';
+	    $tex = &HTML::Entities::encode($tex,'<>&"');
+	    my ($linenumber) =
+		($Apache::lontexconvert::errorstring =~ /Line (\d+)/);
+	    if (defined($linenumber)) {
+		my @tex=split("\n",$tex);
+		$tex[$linenumber]=''.
+		    $tex[$linenumber].'';
+		$tex=join("\n",@tex);
+	    }
+	    &Apache::lonxml::warning($errormsg.$tex.'
'); $Apache::lontexconvert::errorstring=''; } #&Apache::lonxml::debug("M is ends with:$currentstring:"); @@ -1202,7 +1212,7 @@ sub start_p { } else { $currentstring.='\par '; if (&is_inside_of($tagstack, 'table')) { - $closing_string = '\vskip 12pt'; # Safer in tables. + $closing_string = '\vskip 0pt'; # Seems to be consistent with

in tables. } else { $closing_string = '\strut\\\\\strut '; } @@ -1980,7 +1990,12 @@ sub start_table { $Apache::londefdef::table[-1]{'width'}=$1*$textwidth/100; } else { $Apache::londefdef::table[-1]{'width'}=$TeXwidth; - } + } + # In the end, however the table width cannot be wider than $textwidth... + + if ($Apache::londefdef::table[-1]{'width'} > $textwidth) { + $Apache::londefdef::table[-1]{'width'} = $textwidth; + } #table's border my $border = &Apache::lonxml::get_param('border',$parstack,$safeeval); @@ -3164,6 +3179,7 @@ sub start_pre { $currentstring .= $token->[4]; } elsif ($target eq 'tex') { $currentstring .= '\begin{verbatim}'; + &Apache::lonxml::disable_LaTeX_substitutions(); } return $currentstring; } @@ -3175,6 +3191,7 @@ sub end_pre { $currentstring .= $token->[2]; } elsif ($target eq 'tex') { $currentstring .= '\end{verbatim}'; + &Apache::lonxml::enable_LaTeX_substitutions(); } return $currentstring; }