--- loncom/xml/londefdef.pm 2002/11/15 16:35:23 1.103 +++ loncom/xml/londefdef.pm 2003/02/05 23:17:32 1.111 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Tags Default Definition Module # -# $Id: londefdef.pm,v 1.103 2002/11/15 16:35:23 sakharuk Exp $ +# $Id: londefdef.pm,v 1.111 2003/02/05 23:17:32 albertel Exp $ # # # Copyright Michigan State University Board of Trustees @@ -52,7 +52,7 @@ use Image::Magick; BEGIN { - &Apache::lonxml::register('Apache::londefdef',('a','abbr','acronym','address','allow','applet','area','b','base','basefont','bgo','bgsound','big','blink','blockquote','blankspace','body','br','button','caption','center','cite','code','col','colgroup','dd','del','dfn','dir','div','dl','dt','em','embed','externallink','fieldset','font','form','frame','frameset','h1','h2','h3','h4','h5','h6','head','hr','html','i','iframe','img','input','ins','insert','isindex','kbd','keygen','label','layer','legend','li','link','m','map','marquee','menu','meta','multicol','nobr','noembed','noframes','nolayer','noscript','object','ol','optgroup','option','output','p','param','pre','q','s','samp','select','server','small','spacer','span','strike','strong','sub','sup','table','tbody','td','textarea','tfoot','th','thead','title','tr','tt','u','ul','var','wbr')); + &Apache::lonxml::register('Apache::londefdef',('a','abbr','acronym','address','allow','applet','area','b','base','basefont','bgo','bgsound','big','blink','blockquote','blankspace','body','br','button','caption','center','cite','code','col','colgroup','dd','del','dfn','dir','div','dl','dt','em','embed','externallink','fieldset','font','form','frame','frameset','h1','h2','h3','h4','h5','h6','head','hr','html','i','iframe','img','input','ins','insert','isindex','kbd','keygen','label','layer','legend','li','link','m','map','marquee','menu','meta','multicol','nobr','noembed','noframes','nolayer','noscript','object','ol','optgroup','option','output','p','param','pre','q','s','samp','select','server','small','spacer','span','strike','strong','sub','sup','table','tbody','td','textarea','tfoot','th','thead','title','tr','tt','tthoption','u','ul','var','wbr')); } @@ -108,6 +108,27 @@ sub end_m { } return $currentstring; } + +sub start_tthoption { + my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; + my $result; + if ($target eq 'web') { + my $inside = &Apache::lonxml::get_all_text("/tthoption",$parser); + $inside=~s/^\s*//; + if ($ENV{'browser.mathml'}) { + &tth::ttmoptions($inside); + } else { + &tth::tthoptions($inside); + } + } +} + +sub end_tthoption { + my ($target,$token) = @_; + my $result; + return $result; +} + #-- tag sub start_html { my ($target,$token) = @_; @@ -353,7 +374,7 @@ sub start_html { delete($token->[2]->{$key}); } } - $token->[2]->{'onLoad'}=&Apache::lonxml::loadevents(). + $token->[2]->{'onload'}=&Apache::lonxml::loadevents(). ';'.$onLoad; my $onUnload=''; foreach my $key (keys(%{$token->[2]})) { @@ -362,7 +383,7 @@ sub start_html { delete($token->[2]->{$key}); } } - $token->[2]->{'onUnload'}=&Apache::lonxml::unloadevents(). + $token->[2]->{'onunload'}=&Apache::lonxml::unloadevents(). ';'.$onUnload; $currentstring .= '<'.$token->[1]; @@ -965,7 +986,7 @@ EDITBUTTON if ($target eq 'web') { $currentstring .= $token->[4]; } elsif ($target eq 'tex') { - $currentstring .= '\underline{'; + &Apache::lonxml::startredirection(); } return $currentstring; } @@ -975,7 +996,10 @@ EDITBUTTON if ($target eq 'web') { $currentstring .= $token->[2]; } elsif ($target eq 'tex') { - $currentstring .= '}'; + $currentstring=&Apache::lonxml::endredirection(); + $currentstring=~s/(\S)(\s+)(\S)/$1}$2\\underline{$3/g; + $currentstring=~s/^\s*(\S)/\\underline{$1/; + $currentstring=~s/(\S)\s*$/$1}/; } return $currentstring; } @@ -986,7 +1010,7 @@ EDITBUTTON if ($target eq 'web') { $currentstring .= $token->[4]; } elsif ($target eq 'tex') { - $currentstring .= '\underline{'; + &Apache::lonxml::startredirection(); } return $currentstring; } @@ -996,7 +1020,10 @@ EDITBUTTON if ($target eq 'web') { $currentstring .= $token->[2]; } elsif ($target eq 'tex') { - $currentstring .= '}'; + $currentstring=&Apache::lonxml::endredirection(); + $currentstring=~s/(\S)(\s+)(\S)/$1}$2\\underline{$3/g; + $currentstring=~s/^\s*(\S)/\\underline{$1/; + $currentstring=~s/(\S)\s*$/$1}/; } return $currentstring; } @@ -1142,7 +1169,7 @@ EDITBUTTON if ($target eq 'web') { $currentstring .= $token->[4]; } elsif ($target eq 'tex') { - $currentstring .= '\underline{'; + &Apache::lonxml::startredirection(); } return $currentstring; } @@ -1152,7 +1179,10 @@ EDITBUTTON if ($target eq 'web') { $currentstring .= $token->[2]; } elsif ($target eq 'tex') { - $currentstring .= '}'; + $currentstring=&Apache::lonxml::endredirection(); + $currentstring=~s/(\S)(\s+)(\S)/$1}$2\\underline{$3/g; + $currentstring=~s/^\s*(\S)/\\underline{$1/; + $currentstring=~s/(\S)\s*$/$1}/; } return $currentstring; } @@ -1425,6 +1455,9 @@ sub start_table { my $shorthand = ($filled_columns+1)*4; $output =~ s/\$SpacePerColumn/$SpacePerColumn - $shorthand mm/g; } + if ($how_many_columns==1) { #start of block with width correction for one column table + $output=~s/^\s*\\parbox{([^}]*)}/\\parbox{\\textwidth - 1 cm}/; + } #end of block with width correction for one column table $Apache::londefdef::table[-1]{'output'} .= $header_of_table.$output.$Apache::londefdef::table[-1]{'hinc'}.'\end{tabular}\vskip 0 mm '; if ($#Apache::londefdef::table > 0) { $inmemory = $Apache::londefdef::table[-1]{'output'}; @@ -1478,7 +1511,7 @@ sub start_table { my $currentstring = ''; if ($target eq 'web') { $currentstring = $token->[4]; - } elsif ($target eq 'tex') { + } elsif ($target eq 'tex') { my $what_to_push = substr(&Apache::lonxml::get_param('align',$parstack,$safeeval,undef,1),0,1); if ($what_to_push eq '') { $what_to_push = substr($Apache::londefdef::table[-1]{'rows'}[0],0,1);; @@ -1486,7 +1519,6 @@ sub start_table { push @{ $Apache::londefdef::table[-1]{'columns'} }, $what_to_push; $Apache::londefdef::table[-1]{'counter_columns'}++; &Apache::lonxml::startredirection(); -; } return $currentstring; } @@ -1505,7 +1537,7 @@ sub start_table { } else { if (length($data)<5) { $Apache::londefdef::table[-1]{'length'} .= '0 mm,'; - $tempolen = '5 mm'; + $tempolen = '6 mm'; } else { $Apache::londefdef::table[-1]{'length'} .= '0 mm,'; $tempolen = 'TOBECHANGEDONNUMBER'; @@ -1575,8 +1607,8 @@ sub start_table { $height_param = $image->Get('height') * $scaling;; undef $image; #do we have any specified size of the picture? - my $TeXwidth = &Apache::lonxml::get_param('TeXwidth',$parstack,$safeeval) - my $TeXheight = &Apache::lonxml::get_param('TeXheight',$parstack,$safeeval) + my $TeXwidth = &Apache::lonxml::get_param('TeXwidth',$parstack,$safeeval); + my $TeXheight = &Apache::lonxml::get_param('TeXheight',$parstack,$safeeval); my $width = &Apache::lonxml::get_param('width',$parstack,$safeeval, undef,1); if ($TeXwidth ne '') { @@ -1603,7 +1635,7 @@ sub start_table { if (-e $newsrc) { #eps counterpart for image exist if ($path) { - $currentstring .= '\vskip 1 mm \noindent\graphicspath{{'.$path.'}}\fbox{\includegraphics[width='.$width_param.' mm]{'.$file.'}} '; + $currentstring .= '\vskip 1 mm \noindent\graphicspath{{'.$path.'}}\includegraphics[width='.$width_param.' mm]{'.$file.'} '; } } else { #there is no eps counterpart for image - check for ps one @@ -1612,7 +1644,7 @@ sub start_table { #ps counterpart for image exist $file =~ s/\.eps$/\.ps/; if ($path) { - $currentstring .= '\vskip 1 mm \noindent\graphicspath{{'.$path.'}}\fbox{\includegraphics[width='.$width_param.' mm]{'.$file.'}} '; + $currentstring .= '\vskip 1 mm \noindent\graphicspath{{'.$path.'}}\includegraphics[width='.$width_param.' mm]{'.$file.'} '; } } else { #there aren't eps or ps - so create eps @@ -1620,7 +1652,7 @@ sub start_table { my $filename = "/home/httpd/prtspool/$ENV{'user.name'}_$ENV{'user.domain'}_printout.dat"; $temp_file = Apache::File->new('>>'.$filename); print $temp_file "$src\n"; - $currentstring .= '\vskip 1 mm \graphicspath{{/home/httpd/prtspool/}}\fbox{\includegraphics[width='.$width_param.' mm]{'.$file.'}} '; + $currentstring .= '\vskip 1 mm \graphicspath{{/home/httpd/prtspool/}}\includegraphics[width='.$width_param.' mm]{'.$file.'} '; } } } else { @@ -2551,9 +2583,9 @@ sub image_replication { &Apache::lonnet::repcopy('/home/httpd/html'.$src); #replicates eps or ps my $newsrc = $src; - $newsrc =~ s/(.gif|.jpg|.png)$/.eps/; + $newsrc =~ s/\.(gif|jpg|png)$/.eps/; if (not-e $newsrc && &Apache::lonnet::repcopy('/home/httpd/html'.$newsrc) ne 'OK') { - $newsrc =~ s/\.ps$/\.eps/; + $newsrc =~ s/\.eps$/\.ps/; &Apache::lonnet::repcopy('/home/httpd/html'.$newsrc); } }