version 1.123, 2003/03/19 16:50:14
|
version 1.125, 2003/04/11 18:25:03
|
Line 46 package Apache::londefdef;
|
Line 46 package Apache::londefdef;
|
|
|
use Apache::lonnet(); |
use Apache::lonnet(); |
use strict; |
use strict; |
use Apache::lonxml(); |
use Apache::lonxml; |
use Apache::File(); |
use Apache::File(); |
use Image::Magick; |
use Image::Magick; |
use Apache::lonmenu(); |
use Apache::lonmenu(); |
Line 573 sub end_strong {
|
Line 573 sub end_strong {
|
|
|
#-- <h1> tag |
#-- <h1> tag |
sub start_h1 { |
sub start_h1 { |
my ($target,$token) = @_; |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
if ($target eq 'web') { |
if ($target eq 'web') { |
$currentstring .= $token->[4]; |
$currentstring .= $token->[4]; |
} elsif ($target eq 'tex') { |
} elsif ($target eq 'tex') { |
$currentstring .= '{\large \textbf{'; |
my $pre; |
|
my $align=&Apache::lonxml::get_param('align',$parstack,$safeeval,undef,1); |
|
if (($align eq 'center') || (not defined $align)) { |
|
$pre='\begin{center}'; |
|
} elsif ($align eq 'left') { |
|
$pre='\rlap{'; |
|
} elsif ($align eq 'right') { |
|
$pre=' \hfill \llap{'; |
|
} |
|
my $TeXsize=&Apache::lonxml::get_param('TeXsize',$parstack,$safeeval,undef,0); |
|
if (not defined $TeXsize) {$TeXsize="large";} |
|
$currentstring .= $pre.'{\\'.$TeXsize.' \textbf{'; |
} elsif ($target eq 'meta') { |
} elsif ($target eq 'meta') { |
$currentstring='<subject>'; |
$currentstring='<subject>'; |
&start_output(); |
&start_output(); |
Line 587 sub start_h1 {
|
Line 598 sub start_h1 {
|
} |
} |
|
|
sub end_h1 { |
sub end_h1 { |
my ($target,$token) = @_; |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
if ($target eq 'web') { |
if ($target eq 'web') { |
$currentstring .= $token->[2]; |
$currentstring .= $token->[2]; |
} elsif ($target eq 'tex') { |
} elsif ($target eq 'tex') { |
$currentstring .= '}}'; |
my $post; |
|
my $align=&Apache::lonxml::get_param('align',$parstack,$safeeval,undef,1); |
|
if (($align eq 'center') || (not defined $align)) { |
|
$post='\end{center}'; |
|
} elsif ($align eq 'left') { |
|
$post='} \hfill'.'\vskip 0 mm '; |
|
} elsif ($align eq 'right') { |
|
$post='}'.'\vskip 0 mm '; |
|
} |
|
$currentstring .= '}}'.$post; |
} elsif ($target eq 'meta') { |
} elsif ($target eq 'meta') { |
&end_output(); |
&end_output(); |
$currentstring='</subject>'; |
$currentstring='</subject>'; |
Line 602 sub end_h1 {
|
Line 622 sub end_h1 {
|
|
|
#-- <h2> tag |
#-- <h2> tag |
sub start_h2 { |
sub start_h2 { |
my ($target,$token) = @_; |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
if ($target eq 'web') { |
if ($target eq 'web') { |
$currentstring .= $token->[4]; |
$currentstring .= $token->[4]; |
} elsif ($target eq 'tex') { |
} elsif ($target eq 'tex') { |
$currentstring .= '{\large \textbf{'; |
my $pre; |
|
my $align=&Apache::lonxml::get_param('align',$parstack,$safeeval,undef,1); |
|
if (($align eq 'center') || (not defined $align)) { |
|
$pre='\begin{center}'; |
|
} elsif ($align eq 'left') { |
|
$pre='\rlap{'; |
|
} elsif ($align eq 'right') { |
|
$pre=' \hfill \llap{'; |
|
} |
|
my $TeXsize=&Apache::lonxml::get_param('TeXsize',$parstack,$safeeval,undef,0); |
|
if (not defined $TeXsize) {$TeXsize="large";} |
|
$currentstring .= $pre.'{\\'.$TeXsize.' \textbf{'; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
sub end_h2 { |
sub end_h2 { |
my ($target,$token) = @_; |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
if ($target eq 'web') { |
if ($target eq 'web') { |
$currentstring .= $token->[2]; |
$currentstring .= $token->[2]; |
} elsif ($target eq 'tex') { |
} elsif ($target eq 'tex') { |
$currentstring .= '}}'; |
my $post; |
|
my $align=&Apache::lonxml::get_param('align',$parstack,$safeeval,undef,1); |
|
if (($align eq 'center') || (not defined $align)) { |
|
$post='\end{center}'; |
|
} elsif ($align eq 'left') { |
|
$post='} \hfill'.'\vskip 0 mm '; |
|
} elsif ($align eq 'right') { |
|
$post='}'.'\vskip 0 mm '; |
|
} |
|
$currentstring .= '}}'.$post; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
#-- <h3> tag |
#-- <h3> tag |
sub start_h3 { |
sub start_h3 { |
my ($target,$token) = @_; |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
if ($target eq 'web') { |
if ($target eq 'web') { |
$currentstring .= $token->[4]; |
$currentstring .= $token->[4]; |
} elsif ($target eq 'tex') { |
} elsif ($target eq 'tex') { |
$currentstring .= '{\large \textbf{'; |
my $pre; |
|
my $align=&Apache::lonxml::get_param('align',$parstack,$safeeval,undef,1); |
|
if (($align eq 'center') || (not defined $align)) { |
|
$pre='\begin{center}'; |
|
} elsif ($align eq 'left') { |
|
$pre='\rlap{'; |
|
} elsif ($align eq 'right') { |
|
$pre=' \hfill \llap{'; |
|
} |
|
my $TeXsize=&Apache::lonxml::get_param('TeXsize',$parstack,$safeeval,undef,0); |
|
if (not defined $TeXsize) {$TeXsize="large";} |
|
$currentstring .= $pre.'{\\'.$TeXsize.' \textbf{'; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
sub end_h3 { |
sub end_h3 { |
my ($target,$token) = @_; |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
if ($target eq 'web') { |
if ($target eq 'web') { |
$currentstring .= $token->[2]; |
$currentstring .= $token->[2]; |
} elsif ($target eq 'tex') { |
} elsif ($target eq 'tex') { |
$currentstring .= '}}'; |
my $post; |
|
my $align=&Apache::lonxml::get_param('align',$parstack,$safeeval,undef,1); |
|
if (($align eq 'center') || (not defined $align)) { |
|
$post='\end{center}'; |
|
} elsif ($align eq 'left') { |
|
$post='} \hfill'.'\vskip 0 mm '; |
|
} elsif ($align eq 'right') { |
|
$post='}'.'\vskip 0 mm '; |
|
} |
|
$currentstring .= '}}'.$post; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
#-- <h4> tag |
#-- <h4> tag |
sub start_h4 { |
sub start_h4 { |
my ($target,$token) = @_; |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
if ($target eq 'web') { |
if ($target eq 'web') { |
$currentstring .= $token->[4]; |
$currentstring .= $token->[4]; |
} elsif ($target eq 'tex') { |
} elsif ($target eq 'tex') { |
$currentstring .= '{\large \textbf{'; |
my $pre; |
|
my $align=&Apache::lonxml::get_param('align',$parstack,$safeeval,undef,1); |
|
if (($align eq 'center') || (not defined $align)) { |
|
$pre='\begin{center}'; |
|
} elsif ($align eq 'left') { |
|
$pre='\rlap{'; |
|
} elsif ($align eq 'right') { |
|
$pre=' \hfill \llap{'; |
|
} |
|
my $TeXsize=&Apache::lonxml::get_param('TeXsize',$parstack,$safeeval,undef,0); |
|
if (not defined $TeXsize) {$TeXsize="large";} |
|
$currentstring .= $pre.'{\\'.$TeXsize.' \textbf{'; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
sub end_h4 { |
sub end_h4 { |
my ($target,$token) = @_; |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
if ($target eq 'web') { |
if ($target eq 'web') { |
$currentstring .= $token->[2]; |
$currentstring .= $token->[2]; |
} elsif ($target eq 'tex') { |
} elsif ($target eq 'tex') { |
$currentstring .= '}}'; |
my $post; |
|
my $align=&Apache::lonxml::get_param('align',$parstack,$safeeval,undef,1); |
|
if (($align eq 'center') || (not defined $align)) { |
|
$post='\end{center}'; |
|
} elsif ($align eq 'left') { |
|
$post='} \hfill'.'\vskip 0 mm '; |
|
} elsif ($align eq 'right') { |
|
$post='}'.'\vskip 0 mm '; |
|
} |
|
$currentstring .= '}}'.$post; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
#-- <h5> tag |
#-- <h5> tag |
sub start_h5 { |
sub start_h5 { |
my ($target,$token) = @_; |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
if ($target eq 'web') { |
if ($target eq 'web') { |
$currentstring .= $token->[4]; |
$currentstring .= $token->[4]; |
} elsif ($target eq 'tex') { |
} elsif ($target eq 'tex') { |
$currentstring .= '{\large \textbf{'; |
my $pre; |
|
my $align=&Apache::lonxml::get_param('align',$parstack,$safeeval,undef,1); |
|
if (($align eq 'center') || (not defined $align)) { |
|
$pre='\begin{center}'; |
|
} elsif ($align eq 'left') { |
|
$pre='\rlap{'; |
|
} elsif ($align eq 'right') { |
|
$pre=' \hfill \llap{'; |
|
} |
|
my $TeXsize=&Apache::lonxml::get_param('TeXsize',$parstack,$safeeval,undef,0); |
|
if (not defined $TeXsize) {$TeXsize="large";} |
|
$currentstring .= $pre.'{\\'.$TeXsize.' \textbf{'; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
sub end_h5 { |
sub end_h5 { |
my ($target,$token) = @_; |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
if ($target eq 'web') { |
if ($target eq 'web') { |
$currentstring .= $token->[2]; |
$currentstring .= $token->[2]; |
} elsif ($target eq 'tex') { |
} elsif ($target eq 'tex') { |
$currentstring .= '}}'; |
my $post; |
|
my $align=&Apache::lonxml::get_param('align',$parstack,$safeeval,undef,1); |
|
if (($align eq 'center') || (not defined $align)) { |
|
$post='\end{center}'; |
|
} elsif ($align eq 'left') { |
|
$post='} \hfill'.'\vskip 0 mm '; |
|
} elsif ($align eq 'right') { |
|
$post='}'.'\vskip 0 mm '; |
|
} |
|
$currentstring .= '}}'.$post; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
#-- <h6> tag |
#-- <h6> tag |
sub start_h6 { |
sub start_h6 { |
my ($target,$token) = @_; |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
if ($target eq 'web') { |
if ($target eq 'web') { |
$currentstring .= $token->[4]; |
$currentstring .= $token->[4]; |
} elsif ($target eq 'tex') { |
} elsif ($target eq 'tex') { |
$currentstring .= '{\large \textbf{'; |
my $pre; |
|
my $align=&Apache::lonxml::get_param('align',$parstack,$safeeval,undef,1); |
|
if (($align eq 'center') || (not defined $align)) { |
|
$pre='\begin{center}'; |
|
} elsif ($align eq 'left') { |
|
$pre='\rlap{'; |
|
} elsif ($align eq 'right') { |
|
$pre=' \hfill \llap{'; |
|
} |
|
my $TeXsize=&Apache::lonxml::get_param('TeXsize',$parstack,$safeeval,undef,0); |
|
if (not defined $TeXsize) {$TeXsize="large";} |
|
$currentstring .= $pre.'{\\'.$TeXsize.' \textbf{'; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
sub end_h6 { |
sub end_h6 { |
my ($target,$token) = @_; |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
if ($target eq 'web') { |
if ($target eq 'web') { |
$currentstring .= $token->[2]; |
$currentstring .= $token->[2]; |
} elsif ($target eq 'tex') { |
} elsif ($target eq 'tex') { |
$currentstring .= '}}'; |
my $post; |
|
my $align=&Apache::lonxml::get_param('align',$parstack,$safeeval,undef,1); |
|
if (($align eq 'center') || (not defined $align)) { |
|
$post='\end{center}'; |
|
} elsif ($align eq 'left') { |
|
$post='} \hfill'.'\vskip 0 mm '; |
|
} elsif ($align eq 'right') { |
|
$post='}'.'\vskip 0 mm '; |
|
} |
|
$currentstring .= '}}'.$post; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
Line 1202 sub end_sup {
|
Line 1322 sub end_sup {
|
|
|
#-- <hr> tag |
#-- <hr> tag |
sub start_hr { |
sub start_hr { |
my ($target,$token) = @_; |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
if ($target eq 'web') { |
if ($target eq 'web') { |
$currentstring .= $token->[4]; |
$currentstring .= $token->[4]; |
} elsif ($target eq 'tex') { |
} elsif ($target eq 'tex') { |
$currentstring .= '\vskip 0 mm \noindent\makebox[\textwidth/2 ][b]{\hrulefill}\vskip 0 mm '; |
my $LaTeXwidth = &Apache::lonxml::get_param('TeXwidth',$parstack,$safeeval,0); |
|
if (defined $LaTeXwidth) { |
|
if ($LaTeXwidth=~/^%/) { |
|
substr($LaTeXwidth,0,1)=''; |
|
$LaTeXwidth=($LaTeXwidth/100).'\textwidth'; |
|
} |
|
} else { |
|
$LaTeXwidth ='0.95\textwidth'; |
|
} |
|
my ($pre,$post); |
|
my $align=&Apache::lonxml::get_param('align',$parstack,$safeeval,undef,1); |
|
if (($align eq 'center') || (not defined $align)) { |
|
$pre=''; $post=''; |
|
} elsif ($align eq 'left') { |
|
$pre='\rlap{'; $post='} \hfill'; |
|
} elsif ($align eq 'right') { |
|
$pre=' \hfill \llap{'; $post='}'; |
|
} |
|
$currentstring .= ' \vskip 0 mm \noindent\makebox[\textwidth]{'.$pre.'\makebox['. |
|
$LaTeXwidth.'][b]{\hrulefill}'.$post.'}\vskip 0 mm '; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
Line 1329 sub end_u {
|
Line 1468 sub end_u {
|
|
|
#-- <ul> tag |
#-- <ul> tag |
sub start_ul { |
sub start_ul { |
my ($target,$token) = @_; |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
if ($target eq 'web') { |
if ($target eq 'web') { |
$currentstring = $token->[4]; |
$currentstring = $token->[4]; |
} elsif ($target eq 'tex') { |
} elsif ($target eq 'tex') { |
$currentstring = '\begin{itemize}'; |
my $TeXtype=&Apache::lonxml::get_param('type',$parstack,$safeeval,undef,0); |
|
if ($TeXtype eq 'disc') { |
|
$currentstring .= ' \renewcommand{\labelitemi}{$\bullet$} |
|
\renewcommand{\labelitemii}{$\bullet$} |
|
\renewcommand{\labelitemiii}{$\bullet$} |
|
\renewcommand{\labelitemiv}{$\bullet$}'; |
|
} elsif ($TeXtype eq 'circle') { |
|
$currentstring .= ' \renewcommand{\labelitemi}{$\circ$} |
|
\renewcommand{\labelitemii}{$\circ$} |
|
\renewcommand{\labelitemiii}{$\circ$} |
|
\renewcommand{\labelitemiv}{$\circ$}'; |
|
} elsif ($TeXtype eq 'square') { |
|
$currentstring .= ' \renewcommand{\labelitemi}{$\diamond$} |
|
\renewcommand{\labelitemii}{$\diamond$} |
|
\renewcommand{\labelitemiii}{$\diamond$} |
|
\renewcommand{\labelitemiv}{$\diamond$}'; |
|
} |
|
$currentstring .= '\begin{itemize}'; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
Line 1345 sub end_ul {
|
Line 1501 sub end_ul {
|
if ($target eq 'web') { |
if ($target eq 'web') { |
$currentstring = $token->[2]; |
$currentstring = $token->[2]; |
} elsif ($target eq 'tex') { |
} elsif ($target eq 'tex') { |
$currentstring = '\end{itemize}'; |
$currentstring = '\end{itemize} \renewcommand{\labelitemi}{$\bullet$} |
|
\renewcommand{\labelitemii}{$\bullet$} |
|
\renewcommand{\labelitemiii}{$\bullet$} |
|
\renewcommand{\labelitemiv}{$\bullet$}'; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
Line 1398 sub end_dir {
|
Line 1557 sub end_dir {
|
|
|
#-- <ol> tag |
#-- <ol> tag |
sub start_ol { |
sub start_ol { |
my ($target,$token) = @_; |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
if ($target eq 'web') { |
if ($target eq 'web') { |
$currentstring = $token->[4]; |
$currentstring = $token->[4]; |
} elsif ($target eq 'tex') { |
} elsif ($target eq 'tex') { |
$currentstring = '\begin{enumerate}'; |
my $type=&Apache::lonxml::get_param('type',$parstack,$safeeval,undef,0); |
|
if ($type eq '1') { |
|
$currentstring .= ' \renewcommand{\labelenumi}{\arabic{enumi}.} |
|
\renewcommand{\labelenumii}{\arabic{enumii}.} |
|
\renewcommand{\labelenumiii}{\arabic{enumiii}.} |
|
\renewcommand{\labelenumiv}{\arabic{enumiv}.}'; |
|
} elsif ($type eq 'A') { |
|
$currentstring .= ' \renewcommand{\labelenumi}{\Alph{enumi}.} |
|
\renewcommand{\labelenumii}{\Alph{enumii}.} |
|
\renewcommand{\labelenumiii}{\Alph{enumiii}.} |
|
\renewcommand{\labelenumiv}{\Alph{enumiv}.}'; |
|
} elsif ($type eq 'a') { |
|
$currentstring .= ' \renewcommand{\labelenumi}{\alph{enumi}.} |
|
\renewcommand{\labelenumii}{\alph{enumii}.} |
|
\renewcommand{\labelenumiii}{\alph{enumiii}.} |
|
\renewcommand{\labelenumiv}{\alph{enumiv}.} '; |
|
} elsif ($type eq 'i') { |
|
$currentstring .= ' \renewcommand{\labelenumi}{\roman{enumi}.} |
|
\renewcommand{\labelenumii}{\roman{enumii}.} |
|
\renewcommand{\labelenumiii}{\roman{enumiii}.} |
|
\renewcommand{\labelenumiv}{\roman{enumiv}.} '; |
|
} elsif ($type eq 'I') { |
|
$currentstring .= ' \renewcommand{\labelenumi}{\Roman{enumi}.} |
|
\renewcommand{\labelenumii}{\Roman{enumii}.} |
|
\renewcommand{\labelenumiii}{\Roman{enumiii}.} |
|
\renewcommand{\labelenumiv}{\Roman{enumiv}.} '; |
|
} |
|
$currentstring .= '\begin{enumerate}'; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
Line 1414 sub end_ol {
|
Line 1600 sub end_ol {
|
if ($target eq 'web') { |
if ($target eq 'web') { |
$currentstring = $token->[2]; |
$currentstring = $token->[2]; |
} elsif ($target eq 'tex') { |
} elsif ($target eq 'tex') { |
$currentstring = '\end{enumerate}'; |
$currentstring = '\end{enumerate} \renewcommand{\labelenumi}{\arabic{enumi}.} |
|
\renewcommand{\labelenumii}{\arabic{enumii}.} |
|
\renewcommand{\labelenumiii}{\arabic{enumiii}.} |
|
\renewcommand{\labelenumiv}{\arabic{enumiv}.}'; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |