[LON-CAPA-cvs] cvs: loncom /xml londefdef.pm

foxr lon-capa-cvs@mail.lon-capa.org
Mon, 05 Dec 2005 23:22:52 -0000


foxr		Mon Dec  5 18:22:52 2005 EDT

  Modified files:              
    /loncom/xml	londefdef.pm 
  Log:
  When tables had subtables with some rows not having all columns,
  widths for printing were not calculated correctly because the
  code implicitly assumed that that number of columns in the last row was
  was the correct max number of columns.   Now explicitly keep track of
  the maximum number of columns in the counter_columns element of the
  table array so that sizing can include all rows.
  
  
Index: loncom/xml/londefdef.pm
diff -u loncom/xml/londefdef.pm:1.299 loncom/xml/londefdef.pm:1.300
--- loncom/xml/londefdef.pm:1.299	Thu Dec  1 13:46:17 2005
+++ loncom/xml/londefdef.pm	Mon Dec  5 18:22:49 2005
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # Tags Default Definition Module 
 #
-# $Id: londefdef.pm,v 1.299 2005/12/01 18:46:17 albertel Exp $
+# $Id: londefdef.pm,v 1.300 2005/12/05 23:22:49 foxr Exp $
 # 
 #
 # Copyright Michigan State University Board of Trustees
@@ -2218,9 +2218,9 @@
 	    my $min_nested_width = 0;
 	    my $max_nested_width = 0;
 	    for (my $col = 0; $col <= $Apache::londefdef::table[-1]{'counter_columns'}; $col++) {
-		
 		$min_nested_width +=  $min_len[$col];
 		$max_nested_width +=  $max_len[$col];
+		
 	    }
 	    # Fudge in an extra 5 mm for borders etc:
 	    
@@ -2262,6 +2262,10 @@
 	    push @ {$Apache::londefdef::table[-1]{'rows'} }, 'l';
 	}
 	push ( @{ $Apache::londefdef::table[-1]{'rowdata'} }, $Apache::londefdef::table[-1]{'hinc'});
+	#
+	#  Need to save the number of table columns to preserve the max # columns.
+	#
+	$Apache::londefdef::table[-1]{'prior_columns'}   = $Apache::londefdef::table[-1]{'counter_columns'};
 	$Apache::londefdef::table[-1]{'counter_columns'} = -1;
 	push @ {$Apache::londefdef::table[-1]{'TeXlen'}}, [];
 	push @ {$Apache::londefdef::table[-1]{'objectlen'}}, [];
@@ -2281,6 +2285,11 @@
 	if ($Apache::londefdef::TD_redirection) {
 	    &end_td_tex($parstack,$parser,$safeeval);    
 	}
+	# Counter columns must be the maximum number of columns seen
+	# in the table so far so:
+	if ($Apache::londefdef::table[-1]{'prior_columns'} > $Apache::londefdef::table[-1]{'counter_columns'}) {
+	    $Apache::londefdef::table[-1]{'counter_columns'} = $Apache::londefdef::table[-1]{'prior_columns'};
+	}
 
 
 	
@@ -2418,9 +2427,7 @@
     }
 	for (my $in=0; $in<=$#{$Apache::londefdef::table[-1]{'include'}};$in++) {    
 	    my $nested = $Apache::londefdef::table[-1]{'include'}[$in];
-	    &Apache::lonnet::logthis("Nested: $nested");
 	    $nested =~ s/\\end\{tabular\}\\strut\\\\/\\end\{tabular\}/;
-	    &Apache::lonnet::logthis("After sub: $nested");
 	   # $data=~s/\\keephidden\{NEW TABLE ENTRY\}/$Apache::londefdef::table[-1]{'include'}[$in]/;
 	    $data =~ s/\\keephidden\{NEW TABLE ENTRY\}/$nested/;
 	}