[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/;
}