--- loncom/xml/londefdef.pm 2004/08/30 18:25:55 1.239 +++ loncom/xml/londefdef.pm 2004/10/18 22:02:02 1.243 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Tags Default Definition Module # -# $Id: londefdef.pm,v 1.239 2004/08/30 18:25:55 sakharuk Exp $ +# $Id: londefdef.pm,v 1.243 2004/10/18 22:02:02 albertel Exp $ # # # Copyright Michigan State University Board of Trustees @@ -63,9 +63,9 @@ sub initialize_londefdef { $Apache::londefdef::TD_redirection=0; @Apache::londefdef::table = (); $Apache::londefdef::select=0; - @Apache::londefdef::description=(); - $Apache::londefdef::DD_redirection=0; - $Apache::londefdef::DT_redirection=0; + undef(@Apache::londefdef::description); + @Apache::londefdef::DD=(0); + @Apache::londefdef::DT=(0); $Apache::londefdef::list_index=0; } @@ -151,8 +151,7 @@ sub start_html { my $options=$ENV{'course.'.$ENV{'request.course.id'}.'.tthoptions'}; &Apache::lontexconvert::init_tth(); if ($target eq 'web' || $target eq 'edit') { - $currentstring = &Apache::lonxml::xmlbegin(). - &Apache::lonxml::fontsettings(); + $currentstring = &Apache::lonxml::xmlbegin(); } elsif ($target eq 'tex') { @Apache::londefdef::table = (); $currentstring .= '\documentclass[letterpaper]{book}'; @@ -190,7 +189,7 @@ sub start_head { my ($target,$token) = @_; my $currentstring = ''; if ($target eq 'web') { - $currentstring = $token->[4]; + $currentstring = $token->[4].&Apache::lonxml::fontsettings(); } return $currentstring; } @@ -1698,9 +1697,10 @@ sub start_dl { $currentstring = $token->[4]; } elsif ($target eq 'tex') { $currentstring = '\begin{description}'; - @Apache::londefdef::description=(); - $Apache::londefdef::DD_redirection=0; - $Apache::londefdef::DT_redirection=0; + $Apache::londefdef::DL++; + push(@Apache::londefdef::description,[]); + $Apache::londefdef::DD[$Apache::londefdef::DL]=0; + $Apache::londefdef::DT[$Apache::londefdef::DL]=0; } return $currentstring; } @@ -1711,18 +1711,16 @@ sub end_dl { if ($target eq 'web') { $currentstring = $token->[2]; } elsif ($target eq 'tex') { - if ($Apache::londefdef::DT_redirection) { - my $data=&item_cleanup; - push @Apache::londefdef::description,'\item['.$data.']'; - $Apache::londefdef::DT_redirection=0; - } elsif ($Apache::londefdef::DD_redirection) { - $Apache::londefdef::description[-1].=&Apache::lonxml::endredirection(); - } - foreach my $element (@Apache::londefdef::description) { + if ($Apache::londefdef::DT[-1]) { &end_dt(@_); } + if ($Apache::londefdef::DD[-1]) { &end_dd(@_); } + foreach my $element (@{$Apache::londefdef::description[-1]}) { $currentstring.=' '.$element.' '; } - @Apache::londefdef::description=(); + pop(@Apache::londefdef::description); $currentstring.='\end{description}'; + delete($Apache::londefdef::DD[$Apache::londefdef::DL]); + delete($Apache::londefdef::DT[$Apache::londefdef::DL]); + $Apache::londefdef::DL--; } return $currentstring; } @@ -1734,16 +1732,10 @@ sub start_dt { if ($target eq 'web') { $currentstring = $token->[4]; } elsif ($target eq 'tex') { - if ($Apache::londefdef::DT_redirection) { - my $data=&item_cleanup; - push @Apache::londefdef::description,'\item['.$data.']'; - $Apache::londefdef::DT_redirection=0; - } elsif ($Apache::londefdef::DD_redirection) { - $Apache::londefdef::description[-1].=&Apache::lonxml::endredirection(); - $Apache::londefdef::DD_redirection=0; - } + if ($Apache::londefdef::DT[-1]) { &end_dt(@_); } + if ($Apache::londefdef::DD[-1]) { &end_dd(@_); } &Apache::lonxml::startredirection(); - $Apache::londefdef::DT_redirection=1; + $Apache::londefdef::DT[-1]++; } return $currentstring; } @@ -1754,9 +1746,11 @@ sub end_dt { if ($target eq 'web') { $currentstring = $token->[2]; } elsif ($target eq 'tex') { - my $data=&item_cleanup; - push @Apache::londefdef::description,'\item['.$data.']'; - $Apache::londefdef::DT_redirection=0; + if ($Apache::londefdef::DT[-1]) { + my $data=&item_cleanup(); + push(@{$Apache::londefdef::description[-1]},'\item['.$data.']'); + $Apache::londefdef::DT[-1]--; + } } return $currentstring; } @@ -1775,12 +1769,11 @@ sub start_dd { if ($target eq 'web') { $currentstring = $token->[4]; } elsif ($target eq 'tex') { - if ($Apache::londefdef::DT_redirection) { - my $data=&item_cleanup; - push @Apache::londefdef::description,'\item['.$data.']'; - $Apache::londefdef::DT_redirection=0; - } - $Apache::londefdef::DD_redirection=1; + if ($Apache::londefdef::DT[-1]) { &end_dt(@_); } + if ($Apache::londefdef::DD[-1]) { &end_dd(@_);} + push(@{$Apache::londefdef::description[-1]},''); + $Apache::londefdef::description[-1]->[-1].=' \strut '; + $Apache::londefdef::DD[-1]++; &Apache::lonxml::startredirection(); } return $currentstring; @@ -1792,8 +1785,9 @@ sub end_dd { if ($target eq 'web') { $currentstring = $token->[2]; } elsif ($target eq 'tex') { - $Apache::londefdef::description[-1].=&Apache::lonxml::endredirection(); - $Apache::londefdef::DD_redirection=0; + $Apache::londefdef::description[-1]->[-1].= + &Apache::lonxml::endredirection().' \vskip 0mm '; + $Apache::londefdef::DD[-1]--; } return $currentstring; } @@ -2444,7 +2438,7 @@ sub start_img { my ($file,$path)=&file_path($src); my $newsrc = $src; $newsrc =~ s/\.(gif|jpg|png)$/.eps/i; - my $dummy_content=&Apache::lonnet::getfile($oldSRC); + &Apache::lonnet::repcopy($oldSRC); $file=~s/\.(gif|jpg|png)$/.eps/i; #where can we find the picture? if (-e $newsrc) { @@ -2672,7 +2666,7 @@ sub start_allow { $src=&Apache::lonnet::filelocation($Apache::lonxml::pwd[-1],$src); $Apache::lonxml::extlinks[$#Apache::lonxml::extlinks+1]= &Apache::lonnet::clutter($src); - &image_replication($src); + if ($target eq 'tex') { &image_replication($src); } my $result; if ($target eq 'edit') { $result .=&Apache::edit::tag_start($target,$token);