--- loncom/xml/londefdef.pm 2003/05/07 17:24:16 1.132 +++ loncom/xml/londefdef.pm 2003/08/27 14:59:41 1.169 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Tags Default Definition Module # -# $Id: londefdef.pm,v 1.132 2003/05/07 17:24:16 sakharuk Exp $ +# $Id: londefdef.pm,v 1.169 2003/08/27 14:59:41 albertel Exp $ # # # Copyright Michigan State University Board of Trustees @@ -25,8 +25,7 @@ # /home/httpd/html/adm/gpl.txt # # http://www.lon-capa.org/ -# -# Copyright for TtHfunc and TtMfunc by Ian Hutchinson. +## Copyright for TtHfunc and TtMfunc by Ian Hutchinson. # TtHfunc and TtMfunc (the "Code") may be compiled and linked into # binary executable programs or libraries distributed by the # Michigan State University (the "Licensee"), but any binaries so @@ -52,9 +51,11 @@ use Image::Magick; use Apache::lonmenu(); use Apache::lonmeta(); +$Apache::londefdef::TD_redirection=0; + BEGIN { - &Apache::lonxml::register('Apache::londefdef',('a','abbr','acronym','accessrule','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')); + &Apache::lonxml::register('Apache::londefdef',('a','abbr','acronym','accessrule','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','hideweboutput')); } @@ -157,13 +158,17 @@ sub start_html { &Apache::lonxml::fontsettings(); } elsif ($target eq 'tex') { @Apache::londefdef::table = (); - $currentstring .= '\documentclass[letterpaper]{article} - \newcommand{\keephidden}[1]{} + $currentstring .= '\documentclass[letterpaper]{article}'; + if ($ENV{'form.latex_type'}=~'batchmode') {$currentstring .='\batchmode';} + $currentstring .= '\newcommand{\keephidden}[1]{} \renewcommand{\deg}{$^{\circ}$} + \usepackage{longtable} \usepackage{textcomp} + \usepackage{makeidx} \usepackage[dvips]{graphicx} \usepackage{epsfig}\usepackage{calc} -\newenvironment{choicelist}{\begin{list}{}{\setlength{\rightmargin}{0in}\setlength{\leftmargin}{0.13in}\setlength{\topsep}{0.05in}\setlength{\itemsep}{0.022in}\setlength{\parsep}{0in}\setlength{\belowdisplayskip}{0.04in}\setlength{\abovedisplayskip}{0.05in}\setlength{\abovedisplayshortskip}{-0.04in}\setlength{\belowdisplayshortskip}{0.04in}}}{\end{list}}'; +\newenvironment{choicelist}{\begin{list}{}{\setlength{\rightmargin}{0in}\setlength{\leftmargin}{0.13in}\setlength{\topsep}{0.05in}\setlength{\itemsep}{0.022in}\setlength{\parsep}{0in}\setlength{\belowdisplayskip}{0.04in}\setlength{\abovedisplayskip}{0.05in}\setlength{\abovedisplayshortskip}{-0.04in}\setlength{\belowdisplayshortskip}{0.04in}}}{\end{list}} +\renewenvironment{theindex}{\begin{list}{}{{\vskip 1mm \noindent \large\textbf{Index}} \newline \setlength{\rightmargin}{0in}\setlength{\leftmargin}{0.13in}\setlength{\topsep}{0.01in}\setlength{\itemsep}{0.1in}\setlength{\parsep}{-0.02in}\setlength{\belowdisplayskip}{0.01in}\setlength{\abovedisplayskip}{0.01in}\setlength{\abovedisplayshortskip}{-0.04in}\setlength{\belowdisplayshortskip}{0.01in}}}{\end{list}}'; } return $currentstring; } @@ -318,7 +323,7 @@ sub start_title { if ($target eq 'web') { $currentstring = $token->[4]; } elsif ($target eq 'tex') { - $currentstring .= '\keephidden{' + $currentstring .= '\keephidden{Title of the document: ' } if ($target eq 'meta') { $currentstring='
tag
sub start_p {
- my ($target,$token) = @_;
+ my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_;
my $currentstring = '';
if ($target eq 'web') {
$currentstring .= $token->[4];
} elsif ($target eq 'tex') {
- $currentstring .= '{\par ';
- } elsif ($target eq 'latexsource') {
- $currentstring .= '{\par ';
- }
+ my $signal=1;
+ foreach my $tag (@$tagstack) {if (lc($tag) eq 'b') {$signal=0;}}
+ if ($signal) {$currentstring .= '\par ';}
+ }
return $currentstring;
}
@@ -1093,10 +1102,6 @@ sub end_p {
my $currentstring = '';
if ($target eq 'web') {
$currentstring .= $token->[2];
- } elsif ($target eq 'tex') {
- $currentstring .= '}';
- } elsif ($target eq 'latexsource') {
- $currentstring .= '}';
}
return $currentstring;
}
@@ -1109,11 +1114,9 @@ sub start_br {
$currentstring .= $token->[4];
} elsif ($target eq 'tex') {
if ($$tagstack[-2] ne 'sub' && $$tagstack[-2] ne 'sup') {
- $currentstring .= '\vskip 0.2 mm';
+ $currentstring .= '\vskip 0.2 mm ';
}
- } elsif ($target eq 'latexsource') {
- $currentstring .= '\\';
- }
+ }
return $currentstring;
}
@@ -1133,10 +1136,8 @@ sub start_big {
if ($target eq 'web') {
$currentstring .= $token->[4];
} elsif ($target eq 'tex') {
- $currentstring .= '\large{';
- } elsif ($target eq 'latexsource') {
- $currentstring .= '{\Large ';
- }
+ $currentstring .= '{\large ';
+ }
return $currentstring;
}
@@ -1147,8 +1148,6 @@ sub end_big {
$currentstring .= $token->[2];
} elsif ($target eq 'tex') {
$currentstring .= '}';
- } elsif ($target eq 'latexsource') {
- $currentstring .= '}';
}
return $currentstring;
}
@@ -1161,9 +1160,7 @@ sub start_small {
$currentstring .= $token->[4];
} elsif ($target eq 'tex') {
$currentstring .= '{\footnotesize ';
- } elsif ($target eq 'latexsource') {
- $currentstring .= '{\footnotesize ';
- }
+ }
return $currentstring;
}
@@ -1174,8 +1171,6 @@ sub end_small {
$currentstring .= $token->[2];
} elsif ($target eq 'tex') {
$currentstring .= '}';
- } elsif ($target eq 'latexsource') {
- $currentstring .= '}';
}
return $currentstring;
}
@@ -1215,7 +1210,12 @@ sub start_font {
my $currentstring = '';
if ($target eq 'web') {
my $face=&Apache::lonxml::get_param('face',$parstack,$safeeval);
- if ($face=~/symbol/i) {$Apache::lonxml::prevent_entity_encode++;}
+ if ($face=~/symbol/i) {
+ $Apache::lonxml::prevent_entity_encode++;
+ } else {
+ if (($ENV{'browser.fontenhance'} eq 'on') ||
+ ($ENV{'browser.blackwhite'} eq 'on')) { return ''; }
+ }
$currentstring = $token->[4];
} elsif ($target eq 'tex') {
my $fontsize=&Apache::lonxml::get_param('TeXsize',$parstack,$safeeval);
@@ -1347,14 +1347,14 @@ sub start_hr {
if ($target eq 'web') {
$currentstring .= $token->[4];
} elsif ($target eq 'tex') {
- my $LaTeXwidth = &Apache::lonxml::get_param('TeXwidth',$parstack,$safeeval,0);
+ my $LaTeXwidth = &Apache::lonxml::get_param('TeXwidth',$parstack,$safeeval,undef,0);
if (defined $LaTeXwidth) {
if ($LaTeXwidth=~/^%/) {
substr($LaTeXwidth,0,1)='';
$LaTeXwidth=($LaTeXwidth/100).'\textwidth';
}
} else {
- $LaTeXwidth ='0.95\textwidth';
+ $LaTeXwidth ='0.9\textwidth';
}
my ($pre,$post);
my $align=&Apache::lonxml::get_param('align',$parstack,$safeeval,undef,1);
@@ -1365,7 +1365,7 @@ sub start_hr {
} elsif ($align eq 'right') {
$pre=' \hfill \llap{'; $post='}';
}
- $currentstring .= ' \vskip 0 mm \noindent\makebox[\textwidth]{'.$pre.'\makebox['.
+ $currentstring .= ' \vskip 0 mm \noindent\makebox['.$LaTeXwidth.']{'.$pre.'\makebox['.
$LaTeXwidth.'][b]{\hrulefill}'.$post.'}\vskip 0 mm ';
}
return $currentstring;
@@ -1376,8 +1376,7 @@ sub end_hr {
my $currentstring = '';
if ($target eq 'web') {
$currentstring .= $token->[2];
- } elsif ($target eq 'tex') {
- }
+ }
return $currentstring;
}
@@ -1402,50 +1401,50 @@ sub end_div {
#-- tag
sub start_a {
- my ($target,$token) = @_;
+ my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_;
my $currentstring = '';
if ($target eq 'web') {
$currentstring .= $token->[4];
} elsif ($target eq 'tex') {
+ my $a=&Apache::lonxml::get_param('href',$parstack,$safeeval,undef,1);
+ my $b=&Apache::lonxml::get_param('name',$parstack,$safeeval,undef,1);
+ if ($a=~/\S/) {
+ $a=~s/([^\\])%/$1\\\%/g;
+ $currentstring .= '\ref{URI: '.$a.'}';
+ } elsif ($b=~/\S/) {
+ $currentstring .= '\ref{Anchor: '.$b.'}';
+ } else {
+ $currentstring.='';
+ }
}
return $currentstring;
}
sub end_a {
- my ($target,$token,$tagstack,$stackref) = @_;
+ my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_;
my $currentstring = '';
if ($target eq 'web') {
$currentstring .= $token->[2];
- } elsif ($target eq 'tex') {
- my $tempor_var = $stackref->[$#$stackref];
- if (index($tempor_var,'name') != -1 ) {
- $tempor_var =~ s/name=([^,]*),/$1/g;
- } elsif (index($tempor_var,'href') != -1 ) {
- $tempor_var =~ s/href=([^,]*),/$1/g;
- $currentstring .= " \\ref{$tempor_var}";
- }
}
return $currentstring;
}
#-- tag
sub start_table {
my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_;
- my $textwidth;
+ my $textwidth='';
if (not defined @Apache::londefdef::table) {
$textwidth=&recalc($ENV{'form.textwidth'});
- $textwidth=~/(\d+)/;
- $textwidth=$1;
+ $textwidth=~/(\d+\.?\d*)/;
+ $textwidth=0.95*$1;
} else {
$textwidth=&Apache::lonxml::get_param('TeXwidth',$parstack,$safeeval,undef,0);
}
@@ -1742,7 +1747,7 @@ sub start_table {
$Apache::londefdef::table[-1]{'vvinc'} = '';
}
$Apache::londefdef::table[-1]{'output'} = ' \noindent \begin{tabular} ';
- $currentstring = '\keephidden{NEW TABLE ENTRY '.$textwidth.'}';
+ $currentstring = '\keephidden{NEW TABLE ENTRY}';
}
return $currentstring;
}
@@ -1790,7 +1795,7 @@ sub end_table {
$needed=$#length_row_final-$needed+1;
for (my $jn=0;$jn<=$#length_row_final;$jn++) {
if ($length_row_final[$jn]==0) {
- if ($length_raw_row[$jn]<$available_length/3) {
+ if ($length_raw_row[$jn]<$available_length) {
$length_row_final[$jn]=$length_raw_row[$jn];
$available_length=$available_length-$length_raw_row[$jn];
$needed--;
@@ -1820,12 +1825,13 @@ sub end_table {
} else {
$currentstring .= $Apache::londefdef::table[-1]{'output'};
pop @Apache::londefdef::table;
+ undef @Apache::londefdef::table;
}
}
return $currentstring;
}
-#--
tag
+#-- tag (end tag optional)
sub start_tr {
my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_;
my $currentstring = '';
@@ -1848,74 +1854,121 @@ sub start_tr {
}
sub end_tr {
- my ($target,$token) = @_;
+ my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_;
my $currentstring = '';
if ($target eq 'web') {
$currentstring = $token->[2];
} elsif ($target eq 'tex') {
+ if ($Apache::londefdef::TD_redirection) {
+ &end_td_tex($parstack,$parser,$safeeval);
+ }
push @{ $Apache::londefdef::table[-1]{'TeXlengthrow'} },$Apache::londefdef::table[-1]{'TeXlength'};
push @{ $Apache::londefdef::table[-1]{'lengthrow'} },$Apache::londefdef::table[-1]{'length'};
}
return $currentstring;
}
-#-- tag
+#-- tag (end tag optional)
sub start_td {
my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_;
my $currentstring = '';
if ($target eq 'web') {
$currentstring = $token->[4];
} 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);;
- }
- push @{ $Apache::londefdef::table[-1]{'columns'} }, $what_to_push;
- $Apache::londefdef::table[-1]{'counter_columns'}++;
- &Apache::lonxml::startredirection();
+ $Apache::londefdef::TD_redirection = 1;
+ &tag_check('tr','td',$tagstack,$parstack,$parser,$safeeval);
}
return $currentstring;
}
-
+
+sub tag_check {
+ my ($good_tag,$bad_tag,$tagstack,$parstack,$parser,$safeeval) = @_;
+ my @ar=@$parstack;
+ for (my $i=$#ar-1;$i>=0;$i--) {
+ if (lc($$tagstack[$i]) eq $good_tag) {
+ &start_td_tex($parstack,$parser,$safeeval);
+ last;
+ } elsif (lc($$tagstack[$i]) eq $bad_tag) {
+ splice @ar, $i+1;
+ &end_td_tex(\@ar,$parser,$safeeval);
+ &start_td_tex($parstack,$parser,$safeeval);
+ last;
+ }
+ }
+ return '';
+}
+
+sub start_td_tex {
+ my ($parstack,$parser,$safeeval) = @_;
+ 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);;
+ }
+ push @{ $Apache::londefdef::table[-1]{'columns'} }, $what_to_push;
+ $Apache::londefdef::table[-1]{'counter_columns'}++;
+ &Apache::lonxml::startredirection();
+ return '';
+}
+
+sub end_td_tex {
+ my ($parstack,$parser,$safeeval) = @_;
+ my $current_row = $Apache::londefdef::table[-1]{'row_number'};
+ my $data=&Apache::lonxml::endredirection();
+ my $TeXwidth=&Apache::lonxml::get_param('TeXwidth',$parstack,$safeeval,undef,0);
+ if (defined $TeXwidth) {
+ my $current_length=&recalc($TeXwidth);
+ $current_length=~/(\d+)/;
+ $Apache::londefdef::table[-1]{'TeXlength'} .= $1.',';
+ $Apache::londefdef::table[-1]{'length'} .= '0,';
+ } else {
+ if ($data=~m/width\s*=\s*(\d+\.?\d*\s*(mm|cm|in|pc|pt)*)/) {
+ my $current_length=&recalc($1);
+ $current_length=~/(\d+\.?\d*)/;
+ $Apache::londefdef::table[-1]{'TeXlength'} .= $1.',';
+ $Apache::londefdef::table[-1]{'length'} .= '0,';
+ } else {
+ $data=~s/^\s+(\S.*)/$1/;
+ $data=~s/(.*\S)\s+$/$1/;
+ $data=~s/(\s)+/$1/;
+ my $current_length=0;
+ if ($data=~/\\vskip/) {
+ my $newdata=$data;
+ $newdata=~s/\\vskip \d*\.?\d*\s*mm/THISISJUSTTEMPORARYSEPARATOR/g;
+ my @newdata=split(/THISISJUSTTEMPORARYSEPARATOR/,$newdata);
+ foreach my $elementdata (@newdata) {
+ $elementdata=~s/^\s+(\S.*)/$1/;
+ $elementdata=~s/(.*\S)\s+$/$1/;
+ $elementdata=~s/(\s)+/$1/;
+ my $lengthnewdata=1.8*length($elementdata);
+ if ($lengthnewdata>$current_length) {$current_length=$lengthnewdata;}
+ }
+ } else {
+ $current_length=1.8*length($data);
+ }
+ $Apache::londefdef::table[-1]{'length'} .= $current_length.',';
+ $Apache::londefdef::table[-1]{'TeXlength'} .= '0,';
+ }
+ }
+ for (my $in=0; $in<=$#{$Apache::londefdef::table[-1]{'include'}};$in++) {
+ $data=~s/\\keephidden\{NEW TABLE ENTRY\}/$Apache::londefdef::table[-1]{'include'}[$in]/;
+ }
+ @{ $Apache::londefdef::table[-1]{'rowdata'} }[$current_row] .= '\parbox{TOBECHANGEDONNUMBER}{'.$data.'} '.$Apache::londefdef::table[-1]{'vinc'};
+ return'';
+}
+
sub end_td {
my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_;
my $currentstring = '';
if ($target eq 'web') {
$currentstring = $token->[2];
} elsif ($target eq 'tex') {
- my $current_row = $Apache::londefdef::table[-1]{'row_number'};
- my $data=&Apache::lonxml::endredirection();
- my $TeXwidth=&Apache::lonxml::get_param('TeXwidth',$parstack,$safeeval,undef,0);
- if (defined $TeXwidth) {
- my $current_length=&recalc($TeXwidth);
- $current_length=~/(\d+)/;
- $Apache::londefdef::table[-1]{'TeXlength'} .= $1.',';
- $Apache::londefdef::table[-1]{'length'} .= '0,';
- } else {
- if ($data=~m/width\s*=\s*(\d+\.?\d*\s*(mm|cm|in|pc|pt)*)/) {
- my $current_length=&recalc($1);
- $current_length=~/(\d+\.?\d*)/;
- $Apache::londefdef::table[-1]{'TeXlength'} .= $1.',';
- $Apache::londefdef::table[-1]{'length'} .= '0,';
- } else {
- $data=~/^\s*(\S.*)/;
- $data=$1;
- $data=~/(.*\S)\s*$/;
- $data=$1;
- my $current_length=2*length($data);
- $Apache::londefdef::table[-1]{'length'} .= $current_length.',';
- $Apache::londefdef::table[-1]{'TeXlength'} .= '0,';
- }
- }
- for (my $in=0; $in<=$#{$Apache::londefdef::table[-1]{'include'}};$in++) {
- $data=~s/\\keephidden\{NEW TABLE ENTRY\}/$Apache::londefdef::table[-1]{'include'}[$in]/;
- }
- @{ $Apache::londefdef::table[-1]{'rowdata'} }[$current_row] .= '\parbox{TOBECHANGEDONNUMBER}{'.$data.'} '.$Apache::londefdef::table[-1]{'vinc'};
+ $Apache::londefdef::TD_redirection =0;
+ &end_td_tex($parstack,$parser,$safeeval);
}
return $currentstring;
}
-#-- tag
+#-- tag (end tag optional)
sub start_th {
my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_;
my $currentstring = '';
@@ -1981,10 +2034,9 @@ sub start_img {
my $width_param = '';
my $height_param = '';
my $scaling = .3;
-
if ($target eq 'web') {
if ($ENV{'browser.imagesuppress'} ne 'on') {
- $currentstring = $token->[4];
+ $currentstring.= $token->[4];
} else {
my $alttag= &Apache::lonxml::get_param
('alt',$parstack,$safeeval,undef,1);
@@ -1992,12 +2044,11 @@ sub start_img {
$alttag=&Apache::lonmeta::alttag
($Apache::lonxml::pwd[-1],$src);
}
- $currentstring='[IMAGE: '.$alttag.']';
+ $currentstring.='[IMAGE: '.$alttag.']';
}
} elsif ($target eq 'tex') {
$src=&Apache::lonnet::filelocation($Apache::lonxml::pwd[-1],$src);
&image_replication($src);
-
#if original gif/jpg/png file exist do following:
if (-e $src) {
#defines the default size of image
@@ -2022,6 +2073,7 @@ sub start_img {
} elsif ($width ne '') {
$width_param = $width*$scaling;
}
+ if ($width_param > $ENV{'form.textwidth'}) {$width_param =0.95*$ENV{'form.textwidth'}}
my $file;
my $path;
if ($src =~ m!(.*)/([^/]*)$!) {
@@ -2194,7 +2246,8 @@ sub start_allow {
my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_;
my $src = &Apache::lonxml::get_param('src',$parstack,$safeeval,undef,1);
$src=&Apache::lonnet::filelocation($Apache::lonxml::pwd[-1],$src);
- $Apache::lonxml::extlinks[$#Apache::lonxml::extlinks+1]=$src;
+ $Apache::lonxml::extlinks[$#Apache::lonxml::extlinks+1]=
+ &Apache::lonnet::clutter($src);
&image_replication($src);
my $result;
if ($target eq 'edit') {
@@ -2224,7 +2277,29 @@ sub start_frameset {
$currentstring.=''.
&Apache::lonmenu::registerurl(undef,$target).'';
}
- $currentstring .= $token->[4];
+ my $onLoad='';
+ foreach my $key (keys(%{$token->[2]})) {
+ if ($key =~ /^onload$/i) {
+ $onLoad.=$token->[2]->{$key}.';';
+ delete($token->[2]->{$key});
+ }
+ }
+ $token->[2]->{'onload'}=&Apache::lonmenu::loadevents().';'.$onLoad;
+ my $onUnload='';
+ foreach my $key (keys(%{$token->[2]})) {
+ if ($key =~ /^onunload$/i) {
+ $onUnload.=$token->[2]->{$key}.';';
+ delete($token->[2]->{$key});
+ }
+ }
+ $token->[2]->{'onunload'}=&Apache::lonmenu::unloadevents().
+ ';'.$onUnload;
+
+ $currentstring .= '<'.$token->[1];
+ foreach (keys %{$token->[2]}) {
+ $currentstring.=' '.$_.'="'.$token->[2]->{$_}.'"';
+ }
+ $currentstring.='>';
}
return $currentstring;
}
@@ -2238,6 +2313,29 @@ sub end_frameset {
return $currentstring;
}
+#--
sub start_pre {
my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_;
@@ -2245,9 +2343,7 @@ sub start_pre {
if ($target eq 'web') {
$currentstring .= $token->[4];
} elsif ($target eq 'tex') {
- my $width = &Apache::lonxml::get_param('TeXwidth',$parstack,$safeeval,undef,0);
- if (not defined $width) {$width ='\textwidth';}
- $currentstring .= '\parbox['.$width.']{\begin{verbatim}';
+ $currentstring .= '\begin{verbatim}';
}
return $currentstring;
}
@@ -2258,7 +2354,7 @@ sub end_pre {
if ($target eq 'web') {
$currentstring .= $token->[2];
} elsif ($target eq 'tex') {
- $currentstring .= '\end{verbatim}}';
+ $currentstring .= '\end{verbatim}';
}
return $currentstring;
}
@@ -2386,7 +2482,7 @@ sub start_base {
my $currentstring = '';
if ($target eq 'web') {
$currentstring = $token->[4];
- }
+ }
return $currentstring;
}
@@ -3026,7 +3122,7 @@ sub end_tbody {
return $currentstring;
}
-#-- tag
+#-- tag (end tag optional)
sub start_tfoot {
my ($target,$token) = @_;
my $currentstring = '';
@@ -3045,7 +3141,7 @@ sub end_tfoot {
return $currentstring;
}
-#-- tag
+#-- tag (end tag optional)
sub start_thead {
my ($target,$token) = @_;
my $currentstring = '';
@@ -3070,7 +3166,9 @@ sub start_var {
my $currentstring = '';
if ($target eq 'web') {
$currentstring = $token->[4];
- }
+ } elsif ($target eq 'tex') {
+ $currentstring = '\textit{';
+ }
return $currentstring;
}
@@ -3078,12 +3176,14 @@ sub end_var {
my ($target,$token) = @_;
my $currentstring = '';
if ($target eq 'web') {
- $currentstring = $token->[2];
+ $currentstring = $token->[2];
+ } elsif ($target eq 'tex') {
+ $currentstring = '}';
}
return $currentstring;
}
-#--