--- loncom/xml/londefdef.pm 2003/08/26 14:40:03 1.166 +++ loncom/xml/londefdef.pm 2003/09/25 15:52:57 1.172 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Tags Default Definition Module # -# $Id: londefdef.pm,v 1.166 2003/08/26 14:40:03 sakharuk Exp $ +# $Id: londefdef.pm,v 1.172 2003/09/25 15:52:57 sakharuk Exp $ # # # Copyright Michigan State University Board of Trustees @@ -410,7 +410,7 @@ sub end_meta { my $content=&Apache::lonxml::get_param('content',$parstack,$safeeval); my $name=&Apache::lonxml::get_param('name',$parstack,$safeeval); if ((not defined $content) && (not defined $name)) { - &Apache::lonxml::startredirection(); + &Apache::lonxml::endredirection(); } } return $currentstring; @@ -466,6 +466,10 @@ sub start_body { my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; my $currentstring = ''; if ($target eq 'web') { + if ($Apache::lonhomework::parsing_a_problem) { + &Apache::lonxml::warning(" tag found inside of tag this can cause problems."); + return ''; + } if (!$Apache::lonxml::registered) { $currentstring.=''. &Apache::lonmenu::registerurl(undef,$target).''; @@ -537,7 +541,7 @@ sub end_body { if ($target eq 'web') { $currentstring = $token->[2]; } elsif ($target eq 'tex') { - $currentstring = '\end{document}'; + $currentstring = '\strut\newline\noindent\makebox[\textwidth/$number_of_columns][b]{\hrulefill}\newline\noindent \end{document}'; } return $currentstring; } @@ -1421,7 +1425,7 @@ sub start_a { } sub end_a { - my ($target,$token,$tagstack,$parstack,$safeeval) = @_; + my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; my $currentstring = ''; if ($target eq 'web') { $currentstring .= $token->[2]; @@ -1431,7 +1435,7 @@ sub end_a { #--
  • tag sub start_li { - my ($target,$token,$tagstack,$parstack,$safeeval) = @_; + my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; my $currentstring = ''; if ($target eq 'web') { $currentstring = $token->[4]; @@ -1650,25 +1654,28 @@ sub end_dl { return $currentstring; } -#--
    tag +#--
    tag (end tag optional) sub start_dt { - my ($target,$token) = @_; - my $currentstring = ''; + my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; + my $currentstring=''; if ($target eq 'web') { $currentstring = $token->[4]; } elsif ($target eq 'tex') { - $currentstring = '\item['; + &Apache::lonxml::startredirection();; } return $currentstring; } sub end_dt { - my ($target,$token) = @_; + my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; my $currentstring = ''; if ($target eq 'web') { $currentstring = $token->[2]; } elsif ($target eq 'tex') { - $currentstring = ']'; + my $data=&Apache::lonxml::endredirection(); + $data=~s/\\begin{center}//g; + $data=~s/\\end{center}//g; + $currentstring.='\item['.$data.']'; } return $currentstring; } @@ -1680,10 +1687,8 @@ sub start_dd { if ($target eq 'web') { $currentstring = $token->[4]; } elsif ($target eq 'tex') { - if ($$tagstack[-2] eq 'dl') { - $currentstring = ' \item [] '; - } elsif ($$tagstack[-2] eq 'dt') { - $currentstring = ']'; + if ($$tagstack[-2] eq 'dt') { + $currentstring.='\item['.&Apache::lonxml::endredirection().']'; } } return $currentstring; @@ -1776,11 +1781,9 @@ sub end_table { } } #continues trying estimate the width of raw data -# $currentstring.=' SSS '.$Apache::londefdef::table[-1]{'lengthrow'}[0].' FFF '; ####for test only my @length_raw_row = split(/,/,$Apache::londefdef::table[-1]{'lengthrow'}[0]); for (my $in=1;$in<=$Apache::londefdef::table[-1]{'row_number'};$in++) { my @length_row = split(/,/,$Apache::londefdef::table[-1]{'lengthrow'}[$in]); -# $currentstring.=' SSS '.$Apache::londefdef::table[-1]{'lengthrow'}[$in].' FFF '; ####for test only for (my $jn=0;$jn<=$#length_row;$jn++) { if ($length_raw_row[$jn]<$length_row[$jn]) {$length_raw_row[$jn]=$length_row[$jn];} } @@ -1797,7 +1800,7 @@ sub end_table { $needed=$#length_row_final-$needed+1; for (my $jn=0;$jn<=$#length_row_final;$jn++) { if ($length_row_final[$jn]==0) { - if ($length_raw_row[$jn]<$available_length/3) { + if ($length_raw_row[$jn]<$available_length) { $length_row_final[$jn]=$length_raw_row[$jn]; $available_length=$available_length-$length_raw_row[$jn]; $needed--;