version 1.236, 2004/08/23 15:23:53
|
version 1.247, 2004/11/19 22:16:33
|
Line 63 sub initialize_londefdef {
|
Line 63 sub initialize_londefdef {
|
$Apache::londefdef::TD_redirection=0; |
$Apache::londefdef::TD_redirection=0; |
@Apache::londefdef::table = (); |
@Apache::londefdef::table = (); |
$Apache::londefdef::select=0; |
$Apache::londefdef::select=0; |
@Apache::londefdef::description=(); |
undef(@Apache::londefdef::description); |
$Apache::londefdef::DD_redirection=0; |
@Apache::londefdef::DD=(0); |
$Apache::londefdef::DT_redirection=0; |
@Apache::londefdef::DT=(0); |
|
@Apache::londefdef::seenDT=(0); |
|
$Apache::londefdef::list_index=0; |
} |
} |
|
|
#======================= TAG SUBROUTINES ===================== |
#======================= TAG SUBROUTINES ===================== |
Line 150 sub start_html {
|
Line 152 sub start_html {
|
my $options=$ENV{'course.'.$ENV{'request.course.id'}.'.tthoptions'}; |
my $options=$ENV{'course.'.$ENV{'request.course.id'}.'.tthoptions'}; |
&Apache::lontexconvert::init_tth(); |
&Apache::lontexconvert::init_tth(); |
if ($target eq 'web' || $target eq 'edit') { |
if ($target eq 'web' || $target eq 'edit') { |
$currentstring = &Apache::lonxml::xmlbegin(). |
$currentstring = &Apache::lonxml::xmlbegin(); |
&Apache::lonxml::fontsettings(); |
|
} elsif ($target eq 'tex') { |
} elsif ($target eq 'tex') { |
@Apache::londefdef::table = (); |
@Apache::londefdef::table = (); |
$currentstring .= '\documentclass[letterpaper]{book}'; |
$currentstring .= '\documentclass[letterpaper]{article}'; |
if ($ENV{'form.latex_type'}=~'batchmode') {$currentstring .='\batchmode';} |
if ($ENV{'form.latex_type'}=~'batchmode') {$currentstring .='\batchmode';} |
$currentstring .= '\newcommand{\keephidden}[1]{}'. |
$currentstring .= '\newcommand{\keephidden}[1]{}'. |
'\renewcommand{\deg}{$^{\circ}$}'. |
'\renewcommand{\deg}{$^{\circ}$}'. |
Line 189 sub start_head {
|
Line 190 sub start_head {
|
my ($target,$token) = @_; |
my ($target,$token) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
if ($target eq 'web') { |
if ($target eq 'web') { |
$currentstring = $token->[4]; |
$currentstring = $token->[4].&Apache::lonxml::fontsettings(); |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
Line 478 sub end_accessrule {
|
Line 479 sub end_accessrule {
|
sub start_body { |
sub start_body { |
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') { |
if ($Apache::lonhomework::parsing_a_problem) { |
if ($Apache::lonhomework::parsing_a_problem) { |
&Apache::lonxml::warning("<body> tag found inside of <problem> tag this can cause problems."); |
&Apache::lonxml::warning("<body> tag found inside of <problem> tag this can cause problems."); |
Line 529 sub start_body {
|
Line 531 sub start_body {
|
$token->[2]->{'onunload'}=&Apache::lonmenu::unloadevents(). |
$token->[2]->{'onunload'}=&Apache::lonmenu::unloadevents(). |
';'.$onUnload; |
';'.$onUnload; |
|
|
$currentstring .= '<'.$token->[1]; |
if ($ENV{'request.state'} ne 'construct') { |
|
$currentstring .= '<'.$token->[1]; |
|
} |
foreach (keys %{$token->[2]}) { |
foreach (keys %{$token->[2]}) { |
$currentstring.=' '.$_.'="'.$token->[2]->{$_}.'"'; |
$currentstring.=' '.$_.'="'.$token->[2]->{$_}.'"'; |
} |
} |
$currentstring.='>'; |
if ($ENV{'request.state'} ne 'construct') { |
|
$currentstring.='>'; |
|
} |
if ($ENV{'request.state'} ne 'published') { |
if ($ENV{'request.state'} ne 'published') { |
|
my $remote=($ENV{'environment.remote'} ne 'off'); |
|
$currentstring=&Apache::loncommon::bodytag(undef,undef, |
|
$currentstring,$remote); |
$currentstring.=(<<EDITBUTTON); |
$currentstring.=(<<EDITBUTTON); |
<form method="post"> |
<form method="post"> |
<input type="submit" name="editmode" accesskey="e" value="Edit" /> |
<input type="submit" name="editmode" accesskey="e" value="Edit" /> |
Line 1485 sub start_li {
|
Line 1494 sub start_li {
|
if ($target eq 'web') { |
if ($target eq 'web') { |
$currentstring = $token->[4]; |
$currentstring = $token->[4]; |
} elsif ($target eq 'tex') { |
} elsif ($target eq 'tex') { |
my $type=&Apache::lonxml::get_param('type',$parstack,$safeeval,undef,1); |
my $type=&Apache::lonxml::get_param('type',$parstack,$safeeval,undef,0); |
if ($type=~/circle/) { |
my $value=&Apache::lonxml::get_param('value',$parstack,$safeeval,undef,0); |
$currentstring .= ' \item[o] '; |
#FIXME need to support types i and I |
|
if ($type=~/disc/) { |
|
$currentstring .= ' \item[$\bullet$] '; |
|
} elsif ($type=~/circle/) { |
|
$currentstring .= ' \item[$\circ$] '; |
} elsif ($type=~/square/) { |
} elsif ($type=~/square/) { |
$currentstring .= ' \item[$\Box$] '; |
$currentstring .= ' \item[$\diamond$] '; |
} elsif ($type ne '') { |
} elsif ($type eq '1') { |
$currentstring .= ' \item['.$type.'] '; |
$currentstring .= ' \item['.($Apache::londefdef::list_index+1).'.]'; |
|
} elsif ($type eq 'A') { |
|
$currentstring .= ' \item['.('A'..'Z')[$Apache::londefdef::list_index].'.]'; |
|
} elsif ($type eq 'a') { |
|
$currentstring .= ' \item['.('a'..'z')[$Apache::londefdef::list_index].'.]'; |
|
} elsif ($value ne '') { |
|
$currentstring .= ' \item['.$value.'] '; |
} else { |
} else { |
$currentstring .= ' \item '; |
$currentstring .= ' \item '; |
} |
} |
} |
$Apache::londefdef::list_index++; |
|
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
Line 1542 sub start_ul {
|
Line 1562 sub start_ul {
|
$currentstring = $token->[4]; |
$currentstring = $token->[4]; |
} elsif ($target eq 'tex') { |
} elsif ($target eq 'tex') { |
my $TeXtype=&Apache::lonxml::get_param('type',$parstack,$safeeval,undef,0); |
my $TeXtype=&Apache::lonxml::get_param('type',$parstack,$safeeval,undef,0); |
|
$Apache::londefdef::list_index=0; |
if ($TeXtype eq 'disc') { |
if ($TeXtype eq 'disc') { |
$currentstring .= '\renewcommand{\labelitemi}{$\bullet$}'. |
$currentstring .= '\renewcommand{\labelitemi}{$\bullet$}'. |
'\renewcommand{\labelitemii}{$\bullet$}'. |
'\renewcommand{\labelitemii}{$\bullet$}'. |
Line 1630 sub start_ol {
|
Line 1651 sub start_ol {
|
if ($target eq 'web') { |
if ($target eq 'web') { |
$currentstring = $token->[4]; |
$currentstring = $token->[4]; |
} elsif ($target eq 'tex') { |
} elsif ($target eq 'tex') { |
|
$Apache::londefdef::list_index=0; |
my $type=&Apache::lonxml::get_param('type',$parstack,$safeeval,undef,0); |
my $type=&Apache::lonxml::get_param('type',$parstack,$safeeval,undef,0); |
if ($type eq '1') { |
if ($type eq '1') { |
$currentstring .= '\renewcommand{\labelenumi}{\arabic{enumi}.}'. |
$currentstring .= '\renewcommand{\labelenumi}{\arabic{enumi}.}'. |
Line 1684 sub start_dl {
|
Line 1706 sub start_dl {
|
$currentstring = $token->[4]; |
$currentstring = $token->[4]; |
} elsif ($target eq 'tex') { |
} elsif ($target eq 'tex') { |
$currentstring = '\begin{description}'; |
$currentstring = '\begin{description}'; |
@Apache::londefdef::description=(); |
$Apache::londefdef::DL++; |
$Apache::londefdef::DD_redirection=0; |
push(@Apache::londefdef::description,[]); |
$Apache::londefdef::DT_redirection=0; |
$Apache::londefdef::DD[$Apache::londefdef::DL]=0; |
|
$Apache::londefdef::DT[$Apache::londefdef::DL]=0; |
|
$Apache::londefdef::seenDT[$Apache::londefdef::DL]=0; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
Line 1697 sub end_dl {
|
Line 1721 sub end_dl {
|
if ($target eq 'web') { |
if ($target eq 'web') { |
$currentstring = $token->[2]; |
$currentstring = $token->[2]; |
} elsif ($target eq 'tex') { |
} elsif ($target eq 'tex') { |
if ($Apache::londefdef::DT_redirection) { |
if ($Apache::londefdef::DT[-1]) { &end_dt(@_); } |
my $data=&item_cleanup; |
if ($Apache::londefdef::DD[-1]) { &end_dd(@_); } |
push @Apache::londefdef::description,'\item['.$data.']'; |
foreach my $element (@{$Apache::londefdef::description[-1]}) { |
$Apache::londefdef::DT_redirection=0; |
|
} elsif ($Apache::londefdef::DD_redirection) { |
|
$Apache::londefdef::description[-1].=&Apache::lonxml::endredirection(); |
|
} |
|
foreach my $element (@Apache::londefdef::description) { |
|
$currentstring.=' '.$element.' '; |
$currentstring.=' '.$element.' '; |
} |
} |
@Apache::londefdef::description=(); |
pop(@Apache::londefdef::description); |
$currentstring.='\end{description}'; |
$currentstring.='\end{description}'; |
|
delete($Apache::londefdef::DD[$Apache::londefdef::DL]); |
|
delete($Apache::londefdef::DT[$Apache::londefdef::DL]); |
|
delete($Apache::londefdef::seenDT[$Apache::londefdef::DL]); |
|
$Apache::londefdef::DL--; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
Line 1720 sub start_dt {
|
Line 1743 sub start_dt {
|
if ($target eq 'web') { |
if ($target eq 'web') { |
$currentstring = $token->[4]; |
$currentstring = $token->[4]; |
} elsif ($target eq 'tex') { |
} elsif ($target eq 'tex') { |
if ($Apache::londefdef::DT_redirection) { |
if ($Apache::londefdef::DT[-1]) { &end_dt(@_); } |
my $data=&item_cleanup; |
if ($Apache::londefdef::DD[-1]) { &end_dd(@_); } |
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; |
|
} |
|
&Apache::lonxml::startredirection(); |
&Apache::lonxml::startredirection(); |
$Apache::londefdef::DT_redirection=1; |
$Apache::londefdef::DT[-1]++; |
|
$Apache::londefdef::seenDT[-1]=1; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
Line 1740 sub end_dt {
|
Line 1758 sub end_dt {
|
if ($target eq 'web') { |
if ($target eq 'web') { |
$currentstring = $token->[2]; |
$currentstring = $token->[2]; |
} elsif ($target eq 'tex') { |
} elsif ($target eq 'tex') { |
my $data=&item_cleanup; |
if ($Apache::londefdef::DT[-1]) { |
push @Apache::londefdef::description,'\item['.$data.']'; |
my $data=&item_cleanup(); |
$Apache::londefdef::DT_redirection=0; |
push(@{$Apache::londefdef::description[-1]},'\item['.$data.'] \strut \vskip 0mm'); |
|
$Apache::londefdef::DT[-1]--; |
|
} |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
Line 1761 sub start_dd {
|
Line 1781 sub start_dd {
|
if ($target eq 'web') { |
if ($target eq 'web') { |
$currentstring = $token->[4]; |
$currentstring = $token->[4]; |
} elsif ($target eq 'tex') { |
} elsif ($target eq 'tex') { |
if ($Apache::londefdef::DT_redirection) { |
if ($Apache::londefdef::DT[-1]) { &end_dt(@_); } |
my $data=&item_cleanup; |
if ($Apache::londefdef::DD[-1]) { &end_dd(@_);} |
push @Apache::londefdef::description,'\item['.$data.']'; |
if (!$Apache::londefdef::seenDT[-1]) { |
$Apache::londefdef::DT_redirection=0; |
push(@{$Apache::londefdef::description[-1]},'\item[\strut] \strut \vskip 0mm '); |
} |
} |
$Apache::londefdef::DD_redirection=1; |
push(@{$Apache::londefdef::description[-1]},''); |
|
$Apache::londefdef::description[-1]->[-1].=' \strut '; |
|
$Apache::londefdef::DD[-1]++; |
&Apache::lonxml::startredirection(); |
&Apache::lonxml::startredirection(); |
} |
} |
return $currentstring; |
return $currentstring; |
Line 1778 sub end_dd {
|
Line 1800 sub end_dd {
|
if ($target eq 'web') { |
if ($target eq 'web') { |
$currentstring = $token->[2]; |
$currentstring = $token->[2]; |
} elsif ($target eq 'tex') { |
} elsif ($target eq 'tex') { |
$Apache::londefdef::description[-1].=&Apache::lonxml::endredirection(); |
$Apache::londefdef::description[-1]->[-1].= |
$Apache::londefdef::DD_redirection=0; |
&Apache::lonxml::endredirection().' \vskip 0mm '; |
|
$Apache::londefdef::DD[-1]--; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
Line 2420 sub start_img {
|
Line 2443 sub start_img {
|
$currentstring.='[IMAGE: '.$alttag.']'; |
$currentstring.='[IMAGE: '.$alttag.']'; |
} |
} |
} elsif ($target eq 'tex') { |
} elsif ($target eq 'tex') { |
|
my $oldSRC=$src; |
|
$oldSRC=~s/\.(gif|jpg|png)$/\.eps/; |
$src=&Apache::lonnet::filelocation($Apache::lonxml::pwd[-1],$src); |
$src=&Apache::lonnet::filelocation($Apache::lonxml::pwd[-1],$src); |
#if original gif/jpg/png file exist do following: |
#if original gif/jpg/png file exist do following: |
if (-e $src) { |
if (-e $src) { |
Line 2428 sub start_img {
|
Line 2453 sub start_img {
|
my ($file,$path)=&file_path($src); |
my ($file,$path)=&file_path($src); |
my $newsrc = $src; |
my $newsrc = $src; |
$newsrc =~ s/\.(gif|jpg|png)$/.eps/i; |
$newsrc =~ s/\.(gif|jpg|png)$/.eps/i; |
|
&Apache::lonnet::repcopy($oldSRC); |
$file=~s/\.(gif|jpg|png)$/.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 |
if ($path) { |
if ($path) { |
$currentstring .= '\vskip 1 mm \noindent\graphicspath{{'.$path.'}}\includegraphics[width='.$width_param.' mm]{'.$file.'} '; |
$currentstring .= '\graphicspath{{'.$path.'}}\includegraphics[width='.$width_param.' mm]{'.$file.'} '; |
} |
} |
} else { |
} else { |
#there is no eps counterpart for image - check for ps one |
#there is no eps counterpart for image - check for ps one |
Line 2442 sub start_img {
|
Line 2468 sub start_img {
|
#ps counterpart for image exist |
#ps counterpart for image exist |
$file =~ s/\.eps$/\.ps/; |
$file =~ s/\.eps$/\.ps/; |
if ($path) { |
if ($path) { |
$currentstring .= '\vskip 1 mm \noindent\graphicspath{{'.$path.'}}\includegraphics[width='.$width_param.' mm]{'.$file.'} '; |
$currentstring .= '\graphicspath{{'.$path.'}}\includegraphics[width='.$width_param.' mm]{'.$file.'} '; |
} |
} |
} else { |
} else { |
#care about eps dynamical generation |
#care about eps dynamical generation |
$currentstring.='\vskip 1 mm '.&eps_generation($src,$file,$width_param); |
$currentstring.=&eps_generation($src,$file,$width_param); |
} |
} |
} |
} |
} else { |
} else { |
Line 2655 sub start_allow {
|
Line 2681 sub start_allow {
|
$src=&Apache::lonnet::filelocation($Apache::lonxml::pwd[-1],$src); |
$src=&Apache::lonnet::filelocation($Apache::lonxml::pwd[-1],$src); |
$Apache::lonxml::extlinks[$#Apache::lonxml::extlinks+1]= |
$Apache::lonxml::extlinks[$#Apache::lonxml::extlinks+1]= |
&Apache::lonnet::clutter($src); |
&Apache::lonnet::clutter($src); |
&image_replication($src); |
if ($target eq 'tex') { &image_replication($src); } |
my $result; |
my $result; |
if ($target eq 'edit') { |
if ($target eq 'edit') { |
$result .=&Apache::edit::tag_start($target,$token); |
$result .=&Apache::edit::tag_start($target,$token); |
Line 3696 sub eps_generation {
|
Line 3722 sub eps_generation {
|
$newsrc=~s/\/home\/httpd\/lonUsers//; |
$newsrc=~s/\/home\/httpd\/lonUsers//; |
$newsrc=~s/\/([^\/]+)\/(\w)\/(\w)\/(\w)\//\/$1\//; |
$newsrc=~s/\/([^\/]+)\/(\w)\/(\w)\/(\w)\//\/$1\//; |
} |
} |
return ' \graphicspath{{/home/httpd/prtspool'.$newsrc.'}}\includegraphics[width='.$width_param.' mm]{'.$file.'} '; |
if ($newsrc=~/\/userfiles\//) { |
|
return ' \graphicspath{{'.$newsrc.'}}\includegraphics[width='.$width_param.' mm]{'.$file.'} '; |
|
} else { |
|
return ' \graphicspath{{/home/httpd/prtspool'.$newsrc.'}}\includegraphics[width='.$width_param.' mm]{'.$file.'} '; |
|
} |
} |
} |
|
|
sub file_path { |
sub file_path { |