version 1.97, 2002/11/06 16:50:11
|
version 1.103, 2002/11/15 16:35:23
|
Line 109 sub end_m {
|
Line 109 sub end_m {
|
return $currentstring; |
return $currentstring; |
} |
} |
#-- <html> tag |
#-- <html> tag |
sub start_html { |
sub start_html { |
my ($target,$token) = @_; |
my ($target,$token) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
if ($ENV{'browser.mathml'}) { |
if ($ENV{'browser.mathml'}) { |
&tth::ttminit(); |
&tth::ttminit(); |
} else { |
if ($ENV{'browser.unicode'}) { |
&tth::tthinit(); |
&tth::ttmoptions('-L -u1'); |
} |
} else { |
if ($target eq 'web') { |
&tth::ttmoptions('-L -u0'); |
$currentstring = &Apache::lonxml::xmlbegin(). |
} |
&Apache::lonxml::fontsettings(); |
} else { |
} elsif ($target eq 'tex') { |
&tth::tthinit(); |
@Apache::londefdef::table = (); |
if ($ENV{'browser.unicode'}) { |
$currentstring .= '\documentclass[letterpaper]{article} |
&tth::tthoptions('-L -u1'); |
|
} else { |
|
&tth::tthoptions('-L -u0'); |
|
} |
|
} |
|
if ($target eq 'web') { |
|
$currentstring = &Apache::lonxml::xmlbegin(). |
|
&Apache::lonxml::fontsettings(); |
|
} elsif ($target eq 'tex') { |
|
@Apache::londefdef::table = (); |
|
$currentstring .= '\documentclass[letterpaper]{article} |
\newcommand{\keephidden}[1]{} |
\newcommand{\keephidden}[1]{} |
\renewcommand{\deg}{$^{\circ}$} |
\renewcommand{\deg}{$^{\circ}$} |
\usepackage[dvips]{graphicx} |
\usepackage[dvips]{graphicx} |
\usepackage{epsfig}\usepackage{calc} |
\usepackage{epsfig}\usepackage{calc} |
\newenvironment{choicelist}{\begin{enumerate}}{\end{enumerate}}'; |
\newenvironment{choicelist}{\begin{enumerate}}{\end{enumerate}}'; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
sub end_html { |
sub end_html { |
my ($target,$token) = @_; |
my ($target,$token) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
Line 1300 sub start_table {
|
Line 1310 sub start_table {
|
push @Apache::londefdef::table, $aa; |
push @Apache::londefdef::table, $aa; |
$Apache::londefdef::table[-1]{'row_number'} = -1; |
$Apache::londefdef::table[-1]{'row_number'} = -1; |
$Apache::londefdef::table[-1]{'output'} = ' \noindent \begin{tabular} '; |
$Apache::londefdef::table[-1]{'output'} = ' \noindent \begin{tabular} '; |
my $border = &Apache::lonxml::get_param('border',$parstack,$safeeval); |
my $border = &Apache::lonxml::get_param('border',$parstack,$safeeval,undef,1); |
unless (defined $border) { $border = 0; } |
unless (defined $border) { $border = 0; } |
if ($border) { |
if ($border) { |
$Apache::londefdef::table[-1]{'hinc'} = '\hline '; |
$Apache::londefdef::table[-1]{'hinc'} = '\hline '; |
Line 1314 sub start_table {
|
Line 1324 sub start_table {
|
my $width; |
my $width; |
foreach my $key (keys(%{$token->[2]})) { |
foreach my $key (keys(%{$token->[2]})) { |
if ($key =~ /^width$/i) { |
if ($key =~ /^width$/i) { |
$width = &Apache::lonxml::get_param($key,$parstack,$safeeval); |
$width = &Apache::lonxml::get_param($key,$parstack,$safeeval,undef,1); |
} |
} |
} |
} |
if (defined($width)) { $Apache::londefdef::table[-1]{'width'}=$width; } |
if (defined($width)) { $Apache::londefdef::table[-1]{'width'}=$width; } |
Line 1412 sub start_table {
|
Line 1422 sub start_table {
|
if ($signature) { |
if ($signature) { |
my $NumberEmptyLength = $how_many_columns - $filled_columns; |
my $NumberEmptyLength = $how_many_columns - $filled_columns; |
my $SpacePerColumn = '(\textwidth '.$available_space.')/'.$NumberEmptyLength; |
my $SpacePerColumn = '(\textwidth '.$available_space.')/'.$NumberEmptyLength; |
my $shorthand = ($NumberEmptyLength+1)*4; |
my $shorthand = ($filled_columns+1)*4; |
$output =~ s/\$SpacePerColumn/$SpacePerColumn - $shorthand mm/g; |
$output =~ s/\$SpacePerColumn/$SpacePerColumn - $shorthand mm/g; |
} |
} |
$Apache::londefdef::table[-1]{'output'} .= $header_of_table.$output.$Apache::londefdef::table[-1]{'hinc'}.'\end{tabular}\vskip 0 mm '; |
$Apache::londefdef::table[-1]{'output'} .= $header_of_table.$output.$Apache::londefdef::table[-1]{'hinc'}.'\end{tabular}\vskip 0 mm '; |
Line 1439 sub start_table {
|
Line 1449 sub start_table {
|
$currentstring = $token->[4]; |
$currentstring = $token->[4]; |
} elsif ($target eq 'tex') { |
} elsif ($target eq 'tex') { |
$Apache::londefdef::table[-1]{'row_number'}++; |
$Apache::londefdef::table[-1]{'row_number'}++; |
my $alignchar = substr(&Apache::lonxml::get_param('align',$parstack,$safeeval),0,1); |
my $alignchar = substr(&Apache::lonxml::get_param('align',$parstack,$safeeval,undef,1),0,1); |
if ($alignchar ne '') { |
if ($alignchar ne '') { |
push @ {$Apache::londefdef::table[-1]{'rows'} }, $alignchar; |
push @ {$Apache::londefdef::table[-1]{'rows'} }, $alignchar; |
} else { |
} else { |
Line 1469 sub start_table {
|
Line 1479 sub start_table {
|
if ($target eq 'web') { |
if ($target eq 'web') { |
$currentstring = $token->[4]; |
$currentstring = $token->[4]; |
} elsif ($target eq 'tex') { |
} elsif ($target eq 'tex') { |
my $what_to_push = substr(&Apache::lonxml::get_param('align',$parstack,$safeeval),0,1); |
my $what_to_push = substr(&Apache::lonxml::get_param('align',$parstack,$safeeval,undef,1),0,1); |
if ($what_to_push eq '') { |
if ($what_to_push eq '') { |
$what_to_push = substr($Apache::londefdef::table[-1]{'rows'}[0],0,1);; |
$what_to_push = substr($Apache::londefdef::table[-1]{'rows'}[0],0,1);; |
} |
} |
Line 1512 sub start_table {
|
Line 1522 sub start_table {
|
if ($target eq 'web') { |
if ($target eq 'web') { |
$currentstring = $token->[4]; |
$currentstring = $token->[4]; |
} elsif ($target eq 'tex') { |
} elsif ($target eq 'tex') { |
my $what_to_push = substr(&Apache::lonxml::get_param('align',$parstack,$safeeval),0,1); |
my $what_to_push = substr(&Apache::lonxml::get_param('align',$parstack,$safeeval,undef,1),0,1); |
if ($what_to_push eq '') { |
if ($what_to_push eq '') { |
$what_to_push = substr($Apache::londefdef::table[-1]{'rows'}[0],0,1);; |
$what_to_push = substr($Apache::londefdef::table[-1]{'rows'}[0],0,1);; |
} |
} |
Line 1543 sub start_table {
|
Line 1553 sub start_table {
|
#-- <img> tag |
#-- <img> tag |
sub start_img { |
sub start_img { |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; |
$Apache::lonxml::extlinks[$#Apache::lonxml::extlinks+1]= |
my $src = &Apache::lonxml::get_param('src',$parstack,$safeeval, |
$token->[2]->{'src'}; |
undef,1); |
|
$Apache::lonxml::extlinks[$#Apache::lonxml::extlinks+1]=$src; |
my $currentstring = ''; |
my $currentstring = ''; |
my $width_param = ''; |
my $width_param = ''; |
my $height_param = ''; |
my $height_param = ''; |
my $scaling = .3; |
my $scaling = .3; |
|
|
if ($target eq 'web') { |
if ($target eq 'web') { |
$currentstring = $token->[4]; |
$currentstring = $token->[4]; |
} elsif ($target eq 'tex') { |
} elsif ($target eq 'tex') { |
my $src = &Apache::lonxml::get_param('src',$parstack,$safeeval); |
&image_replication($src); |
&image_replication($src); |
|
$src=&Apache::lonnet::filelocation($Apache::lonxml::pwd[-1],$src); |
$src=&Apache::lonnet::filelocation($Apache::lonxml::pwd[-1],$src); |
#if original gif/jpg file exist do following: |
#if original gif/jpg/png file exist do following: |
if (-e $src) { |
if (-e $src) { |
#defines the default size of image |
#defines the default size of image |
my $image = Image::Magick->new; |
my $image = Image::Magick->new; |
Line 1565 sub start_table {
|
Line 1575 sub start_table {
|
$height_param = $image->Get('height') * $scaling;; |
$height_param = $image->Get('height') * $scaling;; |
undef $image; |
undef $image; |
#do we have any specified size of the picture? |
#do we have any specified size of the picture? |
my $TeXwidth = &Apache::lonxml::get_param('TeXwidth',$parstack,$safeeval); |
my $TeXwidth = &Apache::lonxml::get_param('TeXwidth',$parstack,$safeeval) |
my $TeXheight = &Apache::lonxml::get_param('TeXheight',$parstack,$safeeval); |
my $TeXheight = &Apache::lonxml::get_param('TeXheight',$parstack,$safeeval) |
my $width = &Apache::lonxml::get_param('width',$parstack,$safeeval); |
my $width = &Apache::lonxml::get_param('width',$parstack,$safeeval, |
|
undef,1); |
if ($TeXwidth ne '') { |
if ($TeXwidth ne '') { |
if ($TeXwidth=~/(\d+)\s*\%/) { |
if ($TeXwidth=~/(\d+)\s*\%/) { |
$width_param = $1*$ENV{'form.textwidth'}/100; |
$width_param = $1*$ENV{'form.textwidth'}/100; |
Line 1586 sub start_table {
|
Line 1597 sub start_table {
|
$path = $1.'/'; |
$path = $1.'/'; |
} |
} |
my $newsrc = $src; |
my $newsrc = $src; |
$newsrc =~ s/(\.gif|\.jpg)$/\.eps/i; |
$newsrc =~ s/\.(gif|jpg|png)$/.eps/i; |
$file=~s/(\.gif|\.jpg)$/\.eps/i; |
$file=~s/\.(gif|jpg|png)$/.eps/i; |
#where can we find the picture? |
#where can we find the picture? |
if (-e $newsrc) { |
if (-e $newsrc) { |
#eps counterpart for image exist |
#eps counterpart for image exist |
Line 1614 sub start_table {
|
Line 1625 sub start_table {
|
} |
} |
} else { |
} else { |
#original image file doesn't exist so check the alt attribute |
#original image file doesn't exist so check the alt attribute |
my $alt = &Apache::lonxml::get_param('alt',$parstack,$safeeval); |
my $alt = &Apache::lonxml::get_param('alt',$parstack,$safeeval,undef,1); |
if ($alt) { |
if ($alt) { |
$currentstring .= ' '.$alt.' '; |
$currentstring .= ' '.$alt.' '; |
} else { |
} else { |
Line 1715 sub start_embed {
|
Line 1726 sub start_embed {
|
return $currentstring; |
return $currentstring; |
} |
} |
#-- <allow> tag |
#-- <allow> tag |
sub start_allow { |
sub start_allow { |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; |
$Apache::lonxml::extlinks[$#Apache::lonxml::extlinks+1]= |
$Apache::lonxml::extlinks[$#Apache::lonxml::extlinks+1]= |
$token->[2]->{'src'}; |
$token->[2]->{'src'}; |
my $src = &Apache::lonxml::get_param('src',$parstack,$safeeval); |
my $src = &Apache::lonxml::get_param('src',$parstack,$safeeval,undef,1); |
&image_replication($src); |
&image_replication($src); |
return ''; |
my $result; |
} |
if ($target eq 'edit') { |
sub end_allow { |
$result .=&Apache::edit::tag_start($target,$token); |
return ''; |
$result .=&Apache::edit::text_arg('File Spec:','src',$token,70); |
} |
$result .=&Apache::edit::end_row();#.&Apache::edit::start_spanning_row(); |
|
} elsif ($target eq 'modified') { |
|
my $constructtag=&Apache::edit::get_new_args($token,$parstack, |
|
$safeeval,'src'); |
|
if ($constructtag) { $result = &Apache::edit::rebuild_tag($token); } |
|
} |
|
return $result; |
|
} |
|
|
|
sub end_allow { |
|
my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; |
|
if ( $target eq 'edit') { return (&Apache::edit::end_table()); } |
|
return ''; |
|
} |
#-- Frames |
#-- Frames |
sub start_frameset { |
sub start_frameset { |
my ($target,$token) = @_; |
my ($target,$token) = @_; |
Line 1773 sub start_embed {
|
Line 1797 sub start_embed {
|
my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
if ($target eq 'web') { |
if ($target eq 'web') { |
my $display = &Apache::lonxml::get_param('display',$parstack,$safeeval); |
my $display = &Apache::lonxml::get_param('display',$parstack,$safeeval,undef,1); |
$currentstring .= '<b>'.$display.'</b>';; |
$currentstring .= '<b>'.$display.'</b>';; |
} |
} |
return $currentstring; |
return $currentstring; |
Line 1791 sub start_embed {
|
Line 1815 sub start_embed {
|
my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
if ($target eq 'web') { |
if ($target eq 'web') { |
my $display = &Apache::lonxml::get_param('display',$parstack,$safeeval); |
my $display = &Apache::lonxml::get_param('display',$parstack,$safeeval,undef,1); |
$currentstring .= '<b>'.$display.'</b>';; |
$currentstring .= '<b>'.$display.'</b>';; |
} |
} |
return $currentstring; |
return $currentstring; |
Line 1809 sub start_embed {
|
Line 1833 sub start_embed {
|
my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
if ($target eq 'tex') { |
if ($target eq 'tex') { |
my $howmuch = &Apache::lonxml::get_param('heigth',$parstack,$safeeval); |
my $howmuch = &Apache::lonxml::get_param('heigth',$parstack,$safeeval,undef,1); |
$currentstring .= '\vskip '.$howmuch.' '; |
$currentstring .= '\vskip '.$howmuch.' '; |
} |
} |
return $currentstring; |
return $currentstring; |
Line 2527 sub image_replication {
|
Line 2551 sub image_replication {
|
&Apache::lonnet::repcopy('/home/httpd/html'.$src); |
&Apache::lonnet::repcopy('/home/httpd/html'.$src); |
#replicates eps or ps |
#replicates eps or ps |
my $newsrc = $src; |
my $newsrc = $src; |
$newsrc =~ s/(.gif|.jpg)$/.eps/; |
$newsrc =~ s/(.gif|.jpg|.png)$/.eps/; |
if (not-e $newsrc && &Apache::lonnet::repcopy('/home/httpd/html'.$newsrc) ne 'OK') { |
if (not-e $newsrc && &Apache::lonnet::repcopy('/home/httpd/html'.$newsrc) ne 'OK') { |
$newsrc =~ s/\.ps$/\.eps/; |
$newsrc =~ s/\.ps$/\.eps/; |
&Apache::lonnet::repcopy('/home/httpd/html'.$newsrc); |
&Apache::lonnet::repcopy('/home/httpd/html'.$newsrc); |