Diff for /loncom/xml/londefdef.pm between versions 1.300 and 1.304

version 1.300, 2005/12/05 23:22:49 version 1.304, 2005/12/20 23:12:03
Line 48  use Apache::lonmenu(); Line 48  use Apache::lonmenu();
 use Apache::lonmeta();  use Apache::lonmeta();
 use Apache::Constants qw(:common);  use Apache::Constants qw(:common);
 use File::Basename;  use File::Basename;
 #use Data::Dumper;  # use Data::Dumper;
   
 BEGIN {  BEGIN {
   
Line 71  BEGIN { Line 71  BEGIN {
 #  #
 #    }  #    }
 #}  #}
   
 sub initialize_londefdef {  sub initialize_londefdef {
     $Apache::londefdef::TD_redirection=0;      $Apache::londefdef::TD_redirection=0;
     @Apache::londefdef::table = ();      @Apache::londefdef::table = ();
Line 2188  sub end_table { Line 2187  sub end_table {
  #fill the table   #fill the table
  for (my $in=0;$in<=$Apache::londefdef::table[-1]{'row_number'};$in++) {   for (my $in=0;$in<=$Apache::londefdef::table[-1]{'row_number'};$in++) {
     for (my $jn=0;$jn<=$#fwidth;$jn++) {      for (my $jn=0;$jn<=$#fwidth;$jn++) {
    #
    #  Do the appropriate magic if this has a colspan
    # 
    my $colspan = $Apache::londefdef::table[-1]{'colspan'}[$in][$jn];
    if ($colspan > 1) {
       $output .= '\multicolumn{'.
    $colspan
    .'}{|l|}{';
    }
  if ($Apache::londefdef::table[-1]{'align'}[$in][$jn] eq 'c') {   if ($Apache::londefdef::table[-1]{'align'}[$in][$jn] eq 'c') {
     # $output.='\vspace*{-6 mm}\begin{center}';      # $output.='\vspace*{-6 mm}\begin{center}';
     $output.='\begin{center}';      $output.='\begin{center}';
Line 2201  sub end_table { Line 2209  sub end_table {
  } elsif ($Apache::londefdef::table[-1]{'align'}[$in][$jn] eq 'r') {   } elsif ($Apache::londefdef::table[-1]{'align'}[$in][$jn] eq 'r') {
     $output.='} ';      $output.='} ';
  }   }
    #  Close off the colspan...
    #
    if ($colspan > 1)  {
       $output .= '}';
       $jn += $colspan-1; # Adjust for number of rows really left.
    }
                 if ($jn!=$#fwidth) {$output.=' '.$Apache::londefdef::table[-1]{'vinc'};}                  if ($jn!=$#fwidth) {$output.=' '.$Apache::londefdef::table[-1]{'vinc'};}
     }      }
     $output.=' \\\\ '.$Apache::londefdef::table[-1]{'hinc'}.' ';      $output.=' \\\\ '.$Apache::londefdef::table[-1]{'hinc'}.' ';
Line 2347  sub start_td_tex { Line 2361  sub start_td_tex {
   
 sub end_td_tex {  sub end_td_tex {
     my ($parstack,$parser,$safeeval) = @_;      my ($parstack,$parser,$safeeval) = @_;
     my $current_row = $Apache::londefdef::table[-1]{'row_number'};      my $current_row    = $Apache::londefdef::table[-1]{'row_number'};
     my $data=&Apache::lonxml::endredirection();      my $current_column = $Apache::londefdef::table[-1]{'counter_columns'}; 
       my $data = &Apache::lonxml::endredirection();
   
   
       
   
     my $TeXwidth=&Apache::lonxml::get_param('TeXwidth',$parstack,$safeeval,undef,0);      my $TeXwidth=&Apache::lonxml::get_param('TeXwidth',$parstack,$safeeval,undef,0);
     if (defined $TeXwidth) {      if (defined $TeXwidth) {
  push @ {$Apache::londefdef::table[-1]{'objectlen'}[$Apache::londefdef::table[-1]{'row_number'}] },'0';   push @ {$Apache::londefdef::table[-1]{'objectlen'}[$Apache::londefdef::table[-1]{'row_number'}] },'0';
Line 2425  sub end_td_tex { Line 2444  sub end_td_tex {
     push @ {$Apache::londefdef::table[-1]{'minlen'}[$Apache::londefdef::table[-1]{'row_number'}] },$min_length;      push @ {$Apache::londefdef::table[-1]{'minlen'}[$Apache::londefdef::table[-1]{'row_number'}] },$min_length;
  }           }        
     }      }
  for (my $in=0; $in<=$#{$Apache::londefdef::table[-1]{'include'}};$in++) {          # Substitute all of the tables nested in this cell in their appropriate places.
     my $nested = $Apache::londefdef::table[-1]{'include'}[$in];  
     $nested =~ s/\\end\{tabular\}\\strut\\\\/\\end\{tabular\}/;  
    # $data=~s/\\keephidden\{NEW TABLE ENTRY\}/$Apache::londefdef::table[-1]{'include'}[$in]/;      my $nested_count = $#{$Apache::londefdef::table[-1]{'include'}}; # This one is constant...
     $data =~ s/\\keephidden\{NEW TABLE ENTRY\}/$nested/;      for (my $in=0; $in<=$nested_count; $in++) {    
  }   my $nested = shift @{$Apache::londefdef::table[-1]{'include'}};
    $nested =~ s/\\end\{tabular\}\\strut\\\\/\\end\{tabular\}/;
    # $data=~s/\\keephidden\{NEW TABLE ENTRY\}/$Apache::londefdef::table[-1]{'include'}[$in]/;
    $data =~ s/\\keephidden\{NEW TABLE ENTRY\}/$nested/;
   
       }
       # Should be be killing off the 'include' elements as they're used up?
     push @ {$Apache::londefdef::table[-1]{'content'}[-1] },$data;      push @ {$Apache::londefdef::table[-1]{'content'}[-1] },$data;
     return'';      # Get the column and row spans.
       # Colspan can be done via \multicolumn if I can figure out the data structs.
       # Rowspan, can be done using the multirow package which adds similar stuff to rowspanning.
   
       my $colspan = &Apache::lonxml::get_param('colspan', $parstack, $safeeval, undef, 0);
       if (!$colspan) {
    $colspan = 1;
       }
       my $rowspan = &Apache::lonxml::get_param('rowspan', $parstack, $safeeval, undef, 0);
   
   
       #  the colspan array will indicate how many columns will be spanned by this
       #  cell..this requires that counter_columns also be adjusted accordingly
       #  so that the next bunch of text goes in the right cell.  Note that since
       #  counter_columns is incremented in the start_td_tex, we adjust by colspan-1.
       #
   
       $Apache::londefdef::table[-1]{'colspan'}[$current_row][$current_column] = $colspan;
       $Apache::londefdef::table[-1]{'counter_columns'} += $colspan -1;
   
       # Put empty text in spanned cols.
   
       for (my $i = 0; $i < ($colspan -1); $i++) {
    push @ {$Apache::londefdef::table[-1]{'content'}[-1] },'';
       }
   
   
       return '';
 }  }
   
 sub end_td {  sub end_td {

Removed from v.1.300  
changed lines
  Added in v.1.304


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>