Diff for /loncom/xml/londefdef.pm between versions 1.360 and 1.381

version 1.360, 2007/03/13 15:05:19 version 1.381, 2008/02/14 22:37:46
Line 448  sub start_meta { Line 448  sub start_meta {
  if ((not defined $content) && (not defined $name)) {   if ((not defined $content) && (not defined $name)) {
     &Apache::lonxml::startredirection();      &Apache::lonxml::startredirection();
  }   }
       } elsif ($target eq 'edit') {
    $currentstring .= &Apache::edit::tag_start($target,$token);
    $currentstring .= &Apache::edit::text_arg('Name:','name',$token,30);
    $currentstring .= &Apache::edit::text_arg('Content:','content',$token,70);
    $currentstring .= &Apache::edit::end_row();
       } elsif ($target eq 'modified') {
    my $constructtag =
       &Apache::edit::get_new_args($token,$parstack,$safeeval,
    'name','content');
    if ($constructtag) { $currentstring = &Apache::edit::rebuild_tag($token); }
     }      }
     return $currentstring;      return $currentstring;
 }  }
Line 471  sub end_meta { Line 481  sub end_meta {
     return $currentstring;      return $currentstring;
 }  }
   
   sub insert_meta {
       return '
       <meta />';
   }
   
 # accessrule  # accessrule
 sub start_accessrule {  sub start_accessrule {
     my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style) = @_;      my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style) = @_;
     my $currentstring = '';      my $currentstring = '';
     my $eff=&Apache::lonxml::get_param      my $eff  =&Apache::lonxml::get_param('effect',$parstack,$safeeval,undef,1);
  ('effect',$parstack,$safeeval,undef,1);      my $realm=&Apache::lonxml::get_param('realm', $parstack,$safeeval,undef,1);
     my $realm=&Apache::lonxml::get_param      my $role =&Apache::lonxml::get_param('role',  $parstack,$safeeval,undef,1);
  ('realm',$parstack,$safeeval,undef,1);      my $type =&Apache::lonxml::get_param('type',  $parstack,$safeeval,undef,1);
     my $role=&Apache::lonxml::get_param  
  ('role',$parstack,$safeeval,undef,1);      my ($dom,$crs,$sec,$separator);
     $realm=~s/\s+//g;      if ($type eq 'user') {
     $realm=~s/\//\_/g;   ($dom,$crs,$sec)=split(m{/},$realm);
     $realm=~s/^\_//;   $crs = &LONCAPA::clean_username($crs);
     $realm=~s/\W/\;/g;   $separator = '/';
     $role=~s/\s+//g;      } else {
     $role=~s/\//\_/g;   ($dom,$crs,$sec)=split(/\_/,$realm);
     $role=~s/\W/\;/g;   $crs = &LONCAPA::clean_courseid($crs);
    $separator = '_';
       }
       $dom = &LONCAPA::clean_domain($dom);
   
       $sec =~s/\W//;
       $realm = $dom;
       if ($crs =~ /\S/) { $realm .= $separator.$crs; }
       if ($sec =~ /\S/) { $realm .= $separator.$sec; }
       $role=~s/\W//g;
   
     if ($target eq 'web') {      if ($target eq 'web') {
  my $args='';   my $args='';
  if ( $#$parstack > -1 ) { $args=$$parstack[$#$parstack]; }   if ( $#$parstack > -1 ) { $args=$$parstack[$#$parstack]; }
Line 498  sub start_accessrule { Line 523  sub start_accessrule {
  }   }
     }      }
     if ($target eq 'meta') {      if ($target eq 'meta') {
  $currentstring='<rule>'.$eff.':'.$realm.':'.$role.'</rule>';   $currentstring='<rule>'.$eff.':'.$realm.':'.$role.':'.$type.'</rule>';
     }      }
     return $currentstring;      return $currentstring;
 }  }
Line 516  sub end_accessrule { Line 541  sub end_accessrule {
     return $currentstring;      return $currentstring;
 }  }
   
   sub generate_css_links {
       my $links;
       my $css_href = &Apache::lonnet::EXT('resource.0.cssfile');
       if ($css_href =~ /\S/) {
    &Apache::lonxml::extlink($css_href);
    $links .= 
       '<link rel="stylesheet" type="text/css" href="'.$css_href.'" />';
       }
       return $links;
   }
   
 #-- <body> tag (end tag required)  #-- <body> tag (end tag required)
 sub start_body {  sub start_body {
     my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_;      my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_;
Line 530  sub start_body { Line 566  sub start_body {
  if (&is_inside_of($tagstack, "head")) {   if (&is_inside_of($tagstack, "head")) {
     &end_head(@_);      &end_head(@_);
  }   }
   
    my $extra_head = &generate_css_links();
   
  $currentstring =    $currentstring = 
     &Apache::loncommon::start_page($Apache::londefdef::title,      &Apache::loncommon::start_page($Apache::londefdef::title,
    $Apache::londefdef::head,     $Apache::londefdef::head
         .$extra_head,
    {'add_entries'    => $token->[2],     {'add_entries'    => $token->[2],
     'no_title'       => 1,      'no_title'       => 1,
     'force_register' => 1});      'force_register' => 1});
   
  if ($env{'request.state'} ne 'published') {   if ($env{'request.state'} ne 'published') {
     $currentstring.=&Apache::lonmenu::constspaceform();      $currentstring.=&Apache::lonmenu::constspaceform();
     $currentstring.=(<<EDITBUTTON);      $currentstring.=&Apache::londefdef::edit_controls();
 <form method="post">  
 <input type="submit" name="editmode" accesskey="e" value="Edit" />  
 </form>  
 <br />  
 EDITBUTTON  
  }   }
  $currentstring.=&Apache::lonxml::message_location();   $currentstring.=&Apache::lonxml::message_location();
     } elsif ($target eq 'tex') {      } elsif ($target eq 'tex') {
Line 553  EDITBUTTON Line 588  EDITBUTTON
     return $currentstring;      return $currentstring;
 }  }
   
   sub edit_controls {
       my $result .= (<<EDITBUTTON);
   <form method="post">
   <input type="submit" name="editmode" accesskey="e" value="Edit" />
   </form>
   <br />
   EDITBUTTON
       return $result;
   }
   
 sub end_body {  sub end_body {
     my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_;      my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_;
     my $currentstring = &end_p(); # Close off unclosed <p>      my $currentstring = &end_p(); # Close off unclosed <p>
Line 1228  sub start_br { Line 1273  sub start_br {
  $signal = 1;   $signal = 1;
     }      }
  }   }
  if ($signal eq 1) {   if ($signal != 1) {
     $currentstring .= ' \vskip 0 mm ';  
  } else {  
     $currentstring .= '\strut \\\\ \strut ';      $currentstring .= '\strut \\\\ \strut ';
  }   }
           
Line 1461  sub start_hr { Line 1504  sub start_hr {
     if ($target eq 'web' || $target eq 'webgrade') {      if ($target eq 'web' || $target eq 'webgrade') {
  $currentstring .= $token->[4];   $currentstring .= $token->[4];
     } elsif ($target eq 'tex') {      } elsif ($target eq 'tex') {
   
    # <hr /> can't be inside of <sup><sub> thank you LaTeX.
    # 
    my $restart_sub = 0;
    my $restart_sup = 0;
   
    # Since <sub> and <sup> are simple tags it's ok to turn off/on
    # using the start_ stop_ functions.. those tags only care about
    # $target.
   
    if (&is_inside_of($tagstack, "sub")) {
       $restart_sub = 1;
       $currentstring .= &end_sub($target, $token, $tagstack, 
          $parstack, $parser, $safeeval);
    }
    if (&is_inside_of($tagstack, "sup")) {
       $restart_sup = 1;
       $currentstring .= &end_sup($target, $token, $tagstack,
          $parstack, $parser, $safeeval);
    }
   
  my $LaTeXwidth = &Apache::lonxml::get_param('TeXwidth',$parstack,$safeeval,undef,0);   my $LaTeXwidth = &Apache::lonxml::get_param('TeXwidth',$parstack,$safeeval,undef,0);
  if (defined $LaTeXwidth) {   if (defined $LaTeXwidth) {
     if ($LaTeXwidth=~/^%/) {      if ($LaTeXwidth=~/^%/) {
Line 1481  sub start_hr { Line 1545  sub start_hr {
  }   }
  $currentstring .= ' \vskip 0 mm \noindent\makebox['.$LaTeXwidth.']{'.$pre.'\makebox['.   $currentstring .= ' \vskip 0 mm \noindent\makebox['.$LaTeXwidth.']{'.$pre.'\makebox['.
                                     $LaTeXwidth.'][b]{\hrulefill}'.$post.'}\vskip 0 mm ';                                      $LaTeXwidth.'][b]{\hrulefill}'.$post.'}\vskip 0 mm ';
    # Turn stuff back on that we can't be inside of.
   
    if ($restart_sub) {
       $currentstring .= &start_sub($target, $token, $tagstack,
    $parstack, $parser, $safeeval);
    }
    if ($restart_sup) {
       $currentstring .= &start_sup($target, $token, $tagstack,
    $parstack, $parser, $safeeval);
    }
     }       } 
     return $currentstring;      return $currentstring;
 }  }
Line 1511  sub start_div { Line 1585  sub start_div {
     }       } 
     if ($target eq 'tex') {      if ($target eq 'tex') {
  # 4 possible alignments: left, right, center, and -missing-.   # 4 possible alignments: left, right, center, and -missing-.
           # If inside a table row, we must let the table logic
    # do the alignment, however.
    # 
   
  my $endstring = '';   my $endstring = '';
   
Line 1521  sub start_div { Line 1598  sub start_div {
     $endstring      = '\end{center}';      $endstring      = '\end{center}';
     if (&is_inside_of($tagstack, "table")) {      if (&is_inside_of($tagstack, "table")) {
  $currentstring = &center_correction().$currentstring;   $currentstring = &center_correction().$currentstring;
    $endstring    .= &center_end_correction(); 
     }      }
  }   }
  elsif ($align eq 'right') {   elsif ($align eq 'right') {
Line 1578  sub end_a { Line 1656  sub end_a {
     &Apache::lonxml::get_param('name',$parstack,$safeeval,undef,1);      &Apache::lonxml::get_param('name',$parstack,$safeeval,undef,1);
  if ($href =~ /\S/) {   if ($href =~ /\S/) {
     $href =~ s/([^\\])%/$1\\\%/g;      $href =~ s/([^\\])%/$1\\\%/g;
     $currentstring .= ' ({\tt URI:'.&Apache::lonxml::latex_special_symbols($href).'})';      # Substitute special symbols... and allow line breaks at each /
       #
       $href = &Apache::lonxml::latex_special_symbols($href);
       $href =~ s/\//\/\\-/g;              # Map / to /\- to allow hyphenation.
       $currentstring .= ' ({\tt URI:'.$href.'})';
  } elsif ($name =~ /\S/) {   } elsif ($name =~ /\S/) {
     $currentstring .= ' ({\tt Anchor:'.&Apache::lonxml::latex_special_symbols($name).'})';      $currentstring .= ' ({\tt Anchor:'.&Apache::lonxml::latex_special_symbols($name).'})';
  } else {   } else {
Line 1954  sub start_table { Line 2036  sub start_table {
     } else {       } else { 
  $TeXwidth = $textwidth;   $TeXwidth = $textwidth;
     }      }
  } else {  
     $Apache::londefdef::table[-1]{'forcedtablewidth'} = 1;  
  }   }
    # if the width is specified as a % it is converted to an absolute width.
    # otherwise.. just plugged right in the hash
   
  if ($TeXwidth=~/%/) {   if ($TeXwidth=~/%/) {
     $Apache::londefdef::table[-1]{'percent'}=1;  
     $TeXwidth=~/(\d+)/;      $TeXwidth=~/(\d+)/;
             $Apache::londefdef::table[-1]{'width'}=$1*$textwidth/100;              $Apache::londefdef::table[-1]{'width'}=$1*$textwidth/100;
  } else {   } else {
Line 1969  sub start_table { Line 2051  sub start_table {
  if ($Apache::londefdef::table[-1]{'width'} > $textwidth) {   if ($Apache::londefdef::table[-1]{'width'} > $textwidth) {
     $Apache::londefdef::table[-1]{'width'} = $textwidth;      $Apache::londefdef::table[-1]{'width'} = $textwidth;
  }   }
   
         #table's border          #table's border
  my $border = &Apache::lonxml::get_param('border',$parstack,$safeeval);    my $border = &Apache::lonxml::get_param('border',$parstack,$safeeval); 
         my $permission=&Apache::lonxml::get_param('TeXDropEmptyColumns',$parstack,$safeeval,undef,0);          my $permission=&Apache::lonxml::get_param('TeXDropEmptyColumns',$parstack,$safeeval,undef,0);
Line 2009  sub end_table { Line 2090  sub end_table {
     if ($target eq 'web' || $target eq 'webgrade') {      if ($target eq 'web' || $target eq 'webgrade') {
  $currentstring = $token->[2];        $currentstring = $token->[2];     
     } elsif ($target eq 'tex') {      } elsif ($target eq 'tex') {
    my $border =  &Apache::lonxml::get_param('border',$parstack,$safeeval);
  my $inmemory = '';   my $inmemory = '';
  my $output = '';   my $output = '';
  my $WARNING='';   my $WARNING='';
Line 2105  sub end_table { Line 2187  sub end_table {
  my @fwidth=@{$Apache::londefdef::table[-1]{'TeXlen'}[0]};#final width array   my @fwidth=@{$Apache::londefdef::table[-1]{'TeXlen'}[0]};#final width array
  my @adjust=();   my @adjust=();
         #step 1. adjustment by maximum value          #step 1. adjustment by maximum value
  my $space_neeeded=0;   my $space_needed=0;
  for (my $jn=0;$jn<=$#max_len;$jn++) {   for (my $jn=0;$jn<=$#max_len;$jn++) {
     $space_neeeded=$space_neeeded+$max_len[$jn];      $space_needed=$space_needed+$max_len[$jn];
  }   }
  if ($space_neeeded<=$available_space) {   if ($space_needed<=$available_space) {
   
     for (my $jn=0;$jn<=$#max_len;$jn++) {      for (my $jn=0;$jn<=$#max_len;$jn++) {
  if ($fwidth[$jn]==0) {   if ($fwidth[$jn]==0) {
     $fwidth[$jn]=$max_len[$jn];      $fwidth[$jn]=$max_len[$jn];
Line 2117  sub end_table { Line 2200  sub end_table {
     }      }
  } else {   } else {
         #step 2. adjustment by minimum value (estimation)          #step 2. adjustment by minimum value (estimation)
     $space_neeeded=0;      $space_needed=0;
     for (my $jn=0;$jn<=$#min_len;$jn++) {      for (my $jn=0;$jn<=$#min_len;$jn++) {
  $space_neeeded+=$min_len[$jn];   $space_needed+=$min_len[$jn];
     }      }
     if ($space_neeeded>$available_space) {      if ($space_needed>$available_space) {
  $WARNING=' \textbf{NOT ENOUGH SPACE FOR TABLE} ';   $WARNING=' \textbf{NOT ENOUGH SPACE FOR TABLE} ';
  for (my $jn=0;$jn<=$#max_len;$jn++) {   for (my $jn=0;$jn<=$#max_len;$jn++) {
     if ($fwidth[$jn]==0) {      if ($fwidth[$jn]==0) {
Line 2138  sub end_table { Line 2221  sub end_table {
     }      }
  }   }
  if ($how_many_to_scale>0) {   if ($how_many_to_scale>0) {
     my $space_to_adjust=($space_neeeded-$available_space)/$how_many_to_scale;      my $space_to_adjust=($space_needed-$available_space)/$how_many_to_scale;
     foreach my $jn (@to_scale) {      foreach my $jn (@to_scale) {
  for (my $in=0;$in<=$Apache::londefdef::table[-1]{'row_number'};$in++) {   for (my $in=0;$in<=$Apache::londefdef::table[-1]{'row_number'};$in++) {
     $Apache::londefdef::table[-1]{'content'}[$in][$jn]=~m/width\s*=\s*(\d+\.?\d*\s*(mm|cm|in|pc|pt)*)/;      $Apache::londefdef::table[-1]{'content'}[$in][$jn]=~m/width\s*=\s*(\d+\.?\d*\s*(mm|cm|in|pc|pt)*)/;
Line 2160  sub end_table { Line 2243  sub end_table {
  }   }
     } else {      } else {
       #step 3. adjustment over minimal + corrections        #step 3. adjustment over minimal + corrections
  my $enlarge_coef=$available_space/$space_neeeded;   my $enlarge_coef=$available_space/$space_needed;
  my $acsessive=0;   my $acsessive=0;
  for (my $jn=0;$jn<=$#min_len;$jn++) {   for (my $jn=0;$jn<=$#min_len;$jn++) {
     $adjust[$jn]=$min_len[$jn]*$enlarge_coef;      $adjust[$jn]=$min_len[$jn]*$enlarge_coef;
Line 2193  sub end_table { Line 2276  sub end_table {
  }   }
     }      }
  }   }
         #use all available width if it is defined in % or as TeXwidth          # use all available width or specified width as if not specified,
         if (($Apache::londefdef::table[-1]{'percent'}==1) || ($Apache::londefdef::table[-1]{'forcetablewidth'}==1)) {   # the specified width gets defaulted to the available width.
     my $current=0;   
     for (my $i=0;$i<=$#fwidth;$i++) {     my $current=0; 
  $current+=$fwidth[$i];   for (my $i=0;$i<=$#fwidth;$i++) {  
     }      $current+=$fwidth[$i];
     my $coef=$Apache::londefdef::table[-1]{'width'}/$current;   }
     for (my $i=0;$i<=$#fwidth;$i++) {     if ($current == 0) {
  $fwidth[$i]*=$coef;              $current = $Apache::londefdef::table[-1]{'width'};
     }          }
    my $coef=$Apache::londefdef::table[-1]{'width'}/$current;
    for (my $i=0;$i<=$#fwidth;$i++) {  
       $fwidth[$i]*=$coef;
  }   }
         #removing of empty columns if allowed          #removing of empty columns if allowed
         my $permission=&Apache::lonxml::get_param('TeXDropEmptyColumns',$parstack,$safeeval,undef,0);          my $permission=&Apache::lonxml::get_param('TeXDropEmptyColumns',$parstack,$safeeval,undef,0);
Line 2252  sub end_table { Line 2338  sub end_table {
  #  Do the appropriate magic if this has a colspan   #  Do the appropriate magic if this has a colspan
  #    # 
   
    my $border_char = "";
    if ($border) {
       $border_char = "|";
    }
  my $spanwidth = 0;   my $spanwidth = 0;
  if ($colspan > 1) {   if ($colspan > 1) {
     for (my $spancol = $jn; $spancol < $jn + $colspan; $spancol++) {      for (my $spancol = $jn; $spancol < $jn + $colspan; $spancol++) {
Line 2261  sub end_table { Line 2351  sub end_table {
  $colspan   $colspan
  ."}";   ."}";
     if ($Apache::londefdef::table[-1]{'align'}[$in][$jn] eq 'c') {      if ($Apache::londefdef::table[-1]{'align'}[$in][$jn] eq 'c') {
  $output .= '{|c|}{';   $output .= '{'.$border_char.'c'.$border_char.'}{';
     } elsif ($Apache::londefdef::table[-1]{'align'}[$in][$jn] eq 'r') {      } elsif ($Apache::londefdef::table[-1]{'align'}[$in][$jn] eq 'r') {
  $output .= '{|r|}{';   $output .= '{'.$border_char.'r'.$border_char.'}{';
     }      }
     else {      else {
  $output .= "{|p{$spanwidth mm}|}{";   $output .= '{'.$border_char."p{$spanwidth mm}".$border_char.'}{';
     }      }
           
  } else {   } else {
Line 2282  sub end_table { Line 2372  sub end_table {
  if ($rowspan > 1) {   if ($rowspan > 1) {
     if ($colspan == 1) {      if ($colspan == 1) {
  if ($Apache::londefdef::table[-1]{'align'}[$in][$jn] eq 'c') {   if ($Apache::londefdef::table[-1]{'align'}[$in][$jn] eq 'c') {
     $output .= '\multicolumn{1}{|c|}{';      $output .= '\multicolumn{1}{'.$border_char.'c'.$border_char.'}{';
     $multirow_aligned = 1;      $multirow_aligned = 1;
  } elsif ($Apache::londefdef::table[-1]{'align'}[$in][$jn] eq 'r') {   } elsif ($Apache::londefdef::table[-1]{'align'}[$in][$jn] eq 'r') {
     $output .= '\multicolumn{1}{|r|}{';      $output .= '\multicolumn{1}{'.$border_char.'r'.$border_char.'}{';
     $multirow_aligned = 1;      $multirow_aligned = 1;
  }   }
     }      }
Line 2322  sub end_table { Line 2412  sub end_table {
  #   #
  if ($colspan == 1  && $rowspan == 1) {   if ($colspan == 1  && $rowspan == 1) {
     if ($Apache::londefdef::table[-1]{'align'}[$in][$jn] eq 'c') {      if ($Apache::londefdef::table[-1]{'align'}[$in][$jn] eq 'c') {
  $output .= '\multicolumn{1}{|c|}{';   $output .= '\multicolumn{1}{'.$border_char.'c'.$border_char.'}{';
     } elsif ($Apache::londefdef::table[-1]{'align'}[$in][$jn] eq 'r') {      } elsif ($Apache::londefdef::table[-1]{'align'}[$in][$jn] eq 'r') {
  $output .= '\multicolumn{1}{|r|}{';   $output .= '\multicolumn{1}{'.$border_char.'r'.$border_char.'}{';
     }      }
  }   }
   
Line 2951  sub start_img { Line 3041  sub start_img {
  # And here's where the semi-quote breaks down: allow the user   # And here's where the semi-quote breaks down: allow the user
         # to edit the beast as well by rendering the problem for edit:          # to edit the beast as well by rendering the problem for edit:
     } elsif ($target eq 'edit') {      } elsif ($target eq 'edit') {
           my $only = join(',',&Apache::loncommon::filecategorytypes('Pictures'));
  $currentstring .=&Apache::edit::tag_start($target,$token);   $currentstring .=&Apache::edit::tag_start($target,$token);
  $currentstring .=&Apache::edit::text_arg('Image Url:','src',$token,70).   $currentstring .=&Apache::edit::text_arg('Image Url:','src',$token,70).
     &Apache::edit::browse('src',undef,'alt').' '.      &Apache::edit::browse('src',undef,'alt',$only).' '.
     &Apache::edit::search('src',undef,'alt').'<br />';      &Apache::edit::search('src',undef,'alt').'<br />';
  $currentstring .=&Apache::edit::text_arg('Description:','alt',$token,70).'<br />';   $currentstring .=&Apache::edit::text_arg('Description:','alt',$token,70).'<br />';
  $currentstring .=&Apache::edit::text_arg('width (pixel):','width',$token,5);   $currentstring .=&Apache::edit::text_arg('width (pixel):','width',$token,5);
Line 2972  sub start_img { Line 3063  sub start_img {
  my $width=  &Apache::lonxml::get_param('width',$parstack,$safeeval);   my $width=  &Apache::lonxml::get_param('width',$parstack,$safeeval);
  my $height= &Apache::lonxml::get_param('height',$parstack,$safeeval);   my $height= &Apache::lonxml::get_param('height',$parstack,$safeeval);
   
           if ($token->[2]{'src'}=~/\$/) {
  $currentstring .= '<img src="'.$src.'" alt="'.$alt.'" ';             $currentstring.='Variable image source';
  if ($width) { $currentstring.=' width="'.$width.'" '; }          } else {
  if ($height) { $currentstring.=' height="'.$height.'" '; }     $currentstring .= '<img src="'.$src.'" alt="'.$alt.'" ';
  $currentstring .= ' />';     if ($width) { $currentstring.=' width="'.$width.'" '; }
      if ($height) { $currentstring.=' height="'.$height.'" '; }
      $currentstring .= ' />';
           }
     } elsif ($target eq 'modified') {      } elsif ($target eq 'modified') {
  my ($osrc,$owidth,$oheight)=   my ($osrc,$owidth,$oheight)=
     ($token->[2]{'src'},$token->[2]{'width'},$token->[2]{'height'});      ($token->[2]{'src'},$token->[2]{'width'},$token->[2]{'height'});
Line 3059  sub start_applet { Line 3153  sub start_applet {
     $currentstring='[APPLET: '.$alttag.']';      $currentstring='[APPLET: '.$alttag.']';
  }   }
     } elsif ($target eq 'tex') {      } elsif ($target eq 'tex') {
    # Turn off some stuff we can't be inside thank you LaTeX
   
   
    my $restart_sub = 0;
    my $restart_sup = 0;
   
    # Since <sub> and <sup> are simple tags it's ok to turn off/on
    # using the start_ stop_ functions.. those tags only care about
    # $target.
   
    if (&is_inside_of($tagstack, "sub")) {
       $restart_sub = 1;
       $currentstring .= &end_sub($target, $token, $tagstack, 
          $parstack, $parser, $safeeval);
    }
    if (&is_inside_of($tagstack, "sup")) {
       $restart_sup = 1;
       $currentstring .= &end_sup($target, $token, $tagstack,
          $parstack, $parser, $safeeval);
    }
   
    # Now process the applet; just replace it with its alt attribute.
   
  my $alttag= &Apache::lonxml::get_param('alt',$parstack,   my $alttag= &Apache::lonxml::get_param('alt',$parstack,
        $safeeval,undef,1);         $safeeval,undef,1);
  unless ($alttag) {   unless ($alttag) {
Line 3069  sub start_applet { Line 3186  sub start_applet {
  }   }
  $currentstring.='\begin{center} \fbox{Java Applet: '.$alttag.   $currentstring.='\begin{center} \fbox{Java Applet: '.$alttag.
     '.}\end{center}';      '.}\end{center}';
   
    # Turn stuff back on that we can't be inside of.
   
    if ($restart_sub) {
       $currentstring .= &start_sub($target, $token, $tagstack,
    $parstack, $parser, $safeeval);
    }
    if ($restart_sup) {
       $currentstring .= &start_sup($target, $token, $tagstack,
    $parstack, $parser, $safeeval);
    }
     }       } 
     return $currentstring;      return $currentstring;
 }  }
Line 4422  sub align_latex_image { Line 4550  sub align_latex_image {
     my ($align, $latex_rendering, $image, $width, $height) = @_;      my ($align, $latex_rendering, $image, $width, $height) = @_;
     my $currentstring;        # The 1/2 wrapped image.      my $currentstring;        # The 1/2 wrapped image.
     my $closure;              # The closure of the wrappage.      my $closure;              # The closure of the wrappage.
   
       # if it's none just return it back
       if ($latex_rendering eq 'none') {
    return ($image,'');
       }
   
     #    If there's an alignment specification we need to honor it here.      #    If there's an alignment specification we need to honor it here.
     #    For the horizontal alignments, we will also honor the      #    For the horizontal alignments, we will also honor the
     #    value of the latex specfication.  The default is parbox,      #    value of the latex specfication.  The default is parbox,

Removed from v.1.360  
changed lines
  Added in v.1.381


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