--- loncom/xml/londefdef.pm 2007/03/09 17:10:33 1.357 +++ loncom/xml/londefdef.pm 2007/03/13 13:35:39 1.358 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Tags Default Definition Module # -# $Id: londefdef.pm,v 1.357 2007/03/09 17:10:33 foxr Exp $ +# $Id: londefdef.pm,v 1.358 2007/03/13 13:35:39 foxr Exp $ # # # Copyright Michigan State University Board of Trustees @@ -1925,7 +1925,7 @@ sub start_table { if ($#Apache::londefdef::table==0) { $textwidth=&recalc($env{'form.textwidth'}); #result is always in mm $textwidth=~/(\d+\.?\d*)/; - $textwidth=0.95*$1; #accounts "internal" LaTeX space for table frame + $textwidth=0.85*$1; #accounts "internal" LaTeX space for table frame } else { if ($Apache::londefdef::table[-2]{'TeXlen'}[$Apache::londefdef::table[-2]{'row_number'}][$Apache::londefdef::table[-2]{'counter_columns'}]=~/\d/) { #the maximum width of nested table is determined by LATeX width of parent cell @@ -2028,6 +2028,7 @@ sub end_table { $available_space=$available_space-$Apache::londefdef::table[-1]{'TeXlen'}[0][$jn]; } } + #boundaries for contents columns my @min_len=();#columns can not be narrower my @max_len=();#maximum length of column @@ -2219,6 +2220,16 @@ sub end_table { $Apache::londefdef::table[-1]{'content'}=\@cleaned_table; @fwidth=@cleaned_header; } + # At this time we must be sure the table does not overhang the total width + # this can happen due to our 'average width' adjustment. + # Total the column widths and see if they are larger than the avail width; + # If so scale them down in proportion to their percentage of total width. + + my $current_total_width = 0; + for (my $col = 0; $col < $#fwidth; $col++) { + $current_total_width = $current_total_width + $fwidth[$col]; + } + #construct header of the table my $header_of_table = '{'.$Apache::londefdef::table[-1]{'vvinc'}; for (my $in=0;$in<=$#fwidth;$in++) {