version 1.467, 2023/03/15 16:47:59
|
version 1.471, 2023/03/25 22:11:11
|
Line 1
|
Line 1
|
# The LearningOnline Network with CAPA |
# The LearningOnline Network with CAPA |
# Tags Default Definition Module |
# Tags Default Definition Module |
# |
# |
# $Id$ |
# $Id$ |
# |
# |
# |
# |
# Copyright Michigan State University Board of Trustees |
# Copyright Michigan State University Board of Trustees |
# |
# |
Line 25
|
Line 25
|
# /home/httpd/html/adm/gpl.txt |
# /home/httpd/html/adm/gpl.txt |
# |
# |
# http://www.lon-capa.org/ |
# 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 |
# TtHfunc and TtMfunc (the "Code") may be compiled and linked into |
# binary executable programs or libraries distributed by the |
# binary executable programs or libraries distributed by the |
# Michigan State University (the "Licensee"), but any binaries so |
# Michigan State University (the "Licensee"), but any binaries so |
# distributed are hereby licensed only for use in the context |
# distributed are hereby licensed only for use in the context |
# of a program or computational system for which the Licensee is the |
# of a program or computational system for which the Licensee is the |
# primary author or distributor, and which performs substantial |
# primary author or distributor, and which performs substantial |
# additional tasks beyond the translation of (La)TeX into HTML. |
# additional tasks beyond the translation of (La)TeX into HTML. |
# The C source of the Code may not be distributed by the Licensee |
# The C source of the Code may not be distributed by the Licensee |
# to any other parties under any circumstances. |
# to any other parties under any circumstances. |
# |
# |
|
|
package Apache::londefdef; |
package Apache::londefdef; |
|
|
use Apache::lonnet; |
use Apache::lonnet; |
use strict; |
use strict; |
Line 194 sub start_html {
|
Line 194 sub start_html {
|
my ($target,$token) = @_; |
my ($target,$token) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
if ($target eq 'web' || $target eq 'edit' || $target eq 'webgrade' ) { |
if ($target eq 'web' || $target eq 'edit' || $target eq 'webgrade' ) { |
# start_body() takes care of emitting the <html> |
# start_body() takes care of emitting the <html> |
} elsif ($target eq 'tex') { |
} elsif ($target eq 'tex') { |
|
|
$currentstring .= &latex_header(); |
$currentstring .= &latex_header(); |
Line 217 sub start_head {
|
Line 217 sub start_head {
|
my $currentstring = ''; |
my $currentstring = ''; |
if ($target eq 'web' || $target eq 'webgrade') { |
if ($target eq 'web' || $target eq 'webgrade') { |
&Apache::lonxml::startredirection(); |
&Apache::lonxml::startredirection(); |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
Line 230 sub end_head {
|
Line 230 sub end_head {
|
if ($Apache::lonxml::redirection) { |
if ($Apache::lonxml::redirection) { |
$Apache::londefdef::head = &Apache::lonxml::endredirection(); |
$Apache::londefdef::head = &Apache::lonxml::endredirection(); |
} |
} |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
Line 239 sub start_map {
|
Line 239 sub start_map {
|
my ($target,$token) = @_; |
my ($target,$token) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
if ($target eq 'web' || $target eq 'webgrade') { |
if ($target eq 'web' || $target eq 'webgrade') { |
$currentstring = $token->[4]; |
$currentstring = $token->[4]; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
Line 248 sub end_map {
|
Line 248 sub end_map {
|
my ($target,$token) = @_; |
my ($target,$token) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
if ($target eq 'web' || $target eq 'webgrade') { |
if ($target eq 'web' || $target eq 'webgrade') { |
$currentstring = $token->[2]; |
$currentstring = $token->[2]; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
Line 258 sub start_select {
|
Line 258 sub start_select {
|
my ($target,$token) = @_; |
my ($target,$token) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
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') { |
$Apache::londefdef::select=0; |
$Apache::londefdef::select=0; |
} |
} |
Line 269 sub end_select {
|
Line 269 sub end_select {
|
my ($target,$token) = @_; |
my ($target,$token) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
if ($target eq 'web' || $target eq 'webgrade') { |
if ($target eq 'web' || $target eq 'webgrade') { |
$currentstring = $token->[2]; |
$currentstring = $token->[2]; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
Line 279 sub start_option {
|
Line 279 sub start_option {
|
my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
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') { |
$Apache::londefdef::select++; |
$Apache::londefdef::select++; |
if ($Apache::londefdef::select == 1) { |
if ($Apache::londefdef::select == 1) { |
Line 295 sub end_option {
|
Line 295 sub end_option {
|
my ($target,$token) = @_; |
my ($target,$token) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
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') { |
$currentstring='}'; |
$currentstring='}'; |
} |
} |
Line 307 sub start_input {
|
Line 307 sub start_input {
|
my ($target,$token) = @_; |
my ($target,$token) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
if ($target eq 'web' || $target eq 'webgrade') { |
if ($target eq 'web' || $target eq 'webgrade') { |
$currentstring = $token->[4]; |
$currentstring = $token->[4]; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
Line 316 sub end_input {
|
Line 316 sub end_input {
|
my ($target,$token) = @_; |
my ($target,$token) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
if ($target eq 'web' || $target eq 'webgrade') { |
if ($target eq 'web' || $target eq 'webgrade') { |
$currentstring = $token->[2]; |
$currentstring = $token->[2]; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
Line 326 sub start_textarea {
|
Line 326 sub start_textarea {
|
my ($target,$token) = @_; |
my ($target,$token) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
if ($target eq 'web' || $target eq 'webgrade') { |
if ($target eq 'web' || $target eq 'webgrade') { |
$currentstring = $token->[4]; |
$currentstring = $token->[4]; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
Line 335 sub end_textarea {
|
Line 335 sub end_textarea {
|
my ($target,$token) = @_; |
my ($target,$token) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
if ($target eq 'web' || $target eq 'webgrade') { |
if ($target eq 'web' || $target eq 'webgrade') { |
$currentstring = $token->[2]; |
$currentstring = $token->[2]; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
Line 345 sub start_form {
|
Line 345 sub start_form {
|
my ($target,$token) = @_; |
my ($target,$token) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
if ($target eq 'web' || $target eq 'webgrade') { |
if ($target eq 'web' || $target eq 'webgrade') { |
$currentstring = $token->[4]; |
$currentstring = $token->[4]; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
Line 354 sub end_form {
|
Line 354 sub end_form {
|
my ($target,$token) = @_; |
my ($target,$token) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
if ($target eq 'web' || $target eq 'webgrade') { |
if ($target eq 'web' || $target eq 'webgrade') { |
$currentstring = $token->[2]; |
$currentstring = $token->[2]; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
Line 364 sub start_title {
|
Line 364 sub start_title {
|
my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style) = @_; |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
if ($target eq 'web' || $target eq 'webgrade') { |
if ($target eq 'web' || $target eq 'webgrade') { |
$Apache::londefdef::title = |
$Apache::londefdef::title = |
&Apache::lonxml::get_all_text('/title',$parser,$style); |
&Apache::lonxml::get_all_text('/title',$parser,$style); |
} elsif ($target eq 'tex') { |
} elsif ($target eq 'tex') { |
$currentstring .= '\keephidden{Title of the document: '; |
$currentstring .= '\keephidden{Title of the document: '; |
Line 383 sub end_title {
|
Line 383 sub end_title {
|
# start_title takes care of swallowing the title |
# start_title takes care of swallowing the title |
} elsif ($target eq 'tex') { |
} elsif ($target eq 'tex') { |
$currentstring .= '}'; |
$currentstring .= '}'; |
} |
} |
if ($target eq 'meta') { |
if ($target eq 'meta') { |
&end_output($target); |
&end_output($target); |
$currentstring='</title>'; |
$currentstring='</title>'; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
Line 555 sub end_accessrule {
|
Line 555 sub end_accessrule {
|
if ($args ne '') { |
if ($args ne '') { |
$currentstring = $token->[4]; |
$currentstring = $token->[4]; |
} |
} |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
Line 564 sub generate_css_links {
|
Line 564 sub generate_css_links {
|
my $css_href = &Apache::lonnet::EXT('resource.0.cssfile'); |
my $css_href = &Apache::lonnet::EXT('resource.0.cssfile'); |
if ($css_href =~ /\S/) { |
if ($css_href =~ /\S/) { |
&Apache::lonxml::extlink($css_href); |
&Apache::lonxml::extlink($css_href); |
$links .= |
$links .= |
'<link rel="stylesheet" type="text/css" href="'.$css_href.'" />'; |
'<link rel="stylesheet" type="text/css" href="'.$css_href.'" />'; |
} |
} |
return $links; |
return $links; |
Line 599 sub start_body {
|
Line 599 sub start_body {
|
'text' => 'HTML Editor', |
'text' => 'HTML Editor', |
'href' => '', |
'href' => '', |
}); |
}); |
# breadcrumbs (and tools) will be created |
# breadcrumbs (and tools) will be created |
# in start_page->bodytag->innerregister |
# in start_page->bodytag->innerregister |
} else { |
} else { |
# FIXME Where are we? |
# FIXME Where are we? |
Line 613 sub start_body {
|
Line 613 sub start_body {
|
$args->{'use_absolute'} = $env{'request.use_absolute'}; |
$args->{'use_absolute'} = $env{'request.use_absolute'}; |
} |
} |
} |
} |
$currentstring = |
$currentstring = |
&Apache::loncommon::start_page($Apache::londefdef::title, |
&Apache::loncommon::start_page($Apache::londefdef::title, |
$Apache::londefdef::head |
$Apache::londefdef::head |
.$extra_head,$args); |
.$extra_head,$args); |
Line 712 sub end_body {
|
Line 712 sub end_body {
|
if ($target eq 'web' || $target eq 'webgrade') { |
if ($target eq 'web' || $target eq 'webgrade') { |
$currentstring .= &Apache::loncommon::end_page({'discussion' => 1}); |
$currentstring .= &Apache::loncommon::end_page({'discussion' => 1}); |
} elsif ($target eq 'tex') { |
} elsif ($target eq 'tex') { |
$currentstring .= '\strut\newline\noindent\makebox[\textwidth/$number_of_columns][b]{\hrulefill}\newline\noindent \end{document}'; |
$currentstring .= '\strut\newline\noindent\makebox[\textwidth/$number_of_columns][b]{\hrulefill}\newline\noindent \end{document}'; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
# \begin{center} causes a new paragprah spacing that looks odd inside |
# \begin{center} causes a new paragprah spacing that looks odd inside |
# of a table cell. Same at the end of a \center but with a slightly |
# of a table cell. Same at the end of a \center but with a slightly |
# larger space .. hence center_correction and center_end_correction. |
# larger space .. hence center_correction and center_end_correction. |
# |
# |
sub center_correction { return '\vspace*{-6 mm}'; } |
sub center_correction { return '\vspace*{-6 mm}'; } |
sub center_end_correction { return '\vspace*{-7 mm}'; } |
sub center_end_correction { return '\vspace*{-7 mm}'; } |
|
|
#-- <center> tag (end tag required) |
#-- <center> tag (end tag required) |
Line 729 sub start_center {
|
Line 729 sub start_center {
|
my ($target,$token,$tagstack) = @_; |
my ($target,$token,$tagstack) = @_; |
my $currentstring = &end_p(); # Close off any prior para. |
my $currentstring = &end_p(); # Close off any prior para. |
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') { |
if (&is_inside_of($tagstack, "table")) { |
if (&is_inside_of($tagstack, "table")) { |
$currentstring .= ¢er_correction(); |
$currentstring .= ¢er_correction(); |
} |
} |
$currentstring .= '\begin{center}'; |
$currentstring .= '\begin{center}'; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
Line 743 sub end_center {
|
Line 743 sub end_center {
|
my ($target,$token,$tagstack) = @_; |
my ($target,$token,$tagstack) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
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') { |
$currentstring = '\end{center}'; |
$currentstring = '\end{center}'; |
if (&is_inside_of($tagstack, "table")) { |
if (&is_inside_of($tagstack, "table")) { |
$currentstring .= ¢er_end_correction(); |
$currentstring .= ¢er_end_correction(); |
} |
} |
Line 759 sub start_b {
|
Line 759 sub start_b {
|
my ($target,$token) = @_; |
my ($target,$token) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
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') { |
&disable_para(); |
&disable_para(); |
$currentstring .= '\textbf{'; |
$currentstring .= '\textbf{'; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
Line 771 sub end_b {
|
Line 771 sub end_b {
|
my ($target,$token) = @_; |
my ($target,$token) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
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') { |
&enable_para(); |
&enable_para(); |
$currentstring = '}'; |
$currentstring = '}'; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
Line 785 sub start_strong {
|
Line 785 sub start_strong {
|
my ($target,$token) = @_; |
my ($target,$token) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
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') { |
&disable_para(); |
&disable_para(); |
$currentstring = '\textbf{'; |
$currentstring = '\textbf{'; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
Line 797 sub end_strong {
|
Line 797 sub end_strong {
|
my ($target,$token) = @_; |
my ($target,$token) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
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') { |
&enable_para(); |
&enable_para(); |
$currentstring = '}'; |
$currentstring = '}'; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
Line 823 sub start_h1 {
|
Line 823 sub start_h1 {
|
} |
} |
my $TeXsize=&Apache::lonxml::get_param('TeXsize',$parstack,$safeeval,undef,0); |
my $TeXsize=&Apache::lonxml::get_param('TeXsize',$parstack,$safeeval,undef,0); |
if (not defined $TeXsize) {$TeXsize="large";} |
if (not defined $TeXsize) {$TeXsize="large";} |
$currentstring .= '\strut\newline '.$pre.'{\\'.$TeXsize.' \textbf{'; |
$currentstring .= '\strut\newline '.$pre.'{\\'.$TeXsize.' \textbf{'; |
} elsif ($target eq 'meta') { |
} elsif ($target eq 'meta') { |
$currentstring.='<subject>'; |
$currentstring.='<subject>'; |
&start_output($target); |
&start_output($target); |
Line 850 sub end_h1 {
|
Line 850 sub end_h1 {
|
} elsif ($target eq 'meta') { |
} elsif ($target eq 'meta') { |
&end_output($target); |
&end_output($target); |
$currentstring='</subject>'; |
$currentstring='</subject>'; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
Line 872 sub start_h2 {
|
Line 872 sub start_h2 {
|
} |
} |
my $TeXsize=&Apache::lonxml::get_param('TeXsize',$parstack,$safeeval,undef,0); |
my $TeXsize=&Apache::lonxml::get_param('TeXsize',$parstack,$safeeval,undef,0); |
if (not defined $TeXsize) {$TeXsize="large";} |
if (not defined $TeXsize) {$TeXsize="large";} |
$currentstring .= '\strut\newline '.$pre.'{\\'.$TeXsize.' \textbf{'; |
$currentstring .= '\strut\newline '.$pre.'{\\'.$TeXsize.' \textbf{'; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
Line 893 sub end_h2 {
|
Line 893 sub end_h2 {
|
$post='}'.'\vskip 0 mm '; |
$post='}'.'\vskip 0 mm '; |
} |
} |
$currentstring .= '}}'.$post; |
$currentstring .= '}}'.$post; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
Line 915 sub start_h3 {
|
Line 915 sub start_h3 {
|
} |
} |
my $TeXsize=&Apache::lonxml::get_param('TeXsize',$parstack,$safeeval,undef,0); |
my $TeXsize=&Apache::lonxml::get_param('TeXsize',$parstack,$safeeval,undef,0); |
if (not defined $TeXsize) {$TeXsize="large";} |
if (not defined $TeXsize) {$TeXsize="large";} |
$currentstring .= '\strut\newline '.$pre.'{\\'.$TeXsize.' \textbf{'; |
$currentstring .= '\strut\newline '.$pre.'{\\'.$TeXsize.' \textbf{'; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
Line 936 sub end_h3 {
|
Line 936 sub end_h3 {
|
$post='}'.'\vskip 0 mm '; |
$post='}'.'\vskip 0 mm '; |
} |
} |
$currentstring .= '}}'.$post; |
$currentstring .= '}}'.$post; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
Line 958 sub start_h4 {
|
Line 958 sub start_h4 {
|
} |
} |
my $TeXsize=&Apache::lonxml::get_param('TeXsize',$parstack,$safeeval,undef,0); |
my $TeXsize=&Apache::lonxml::get_param('TeXsize',$parstack,$safeeval,undef,0); |
if (not defined $TeXsize) {$TeXsize="large";} |
if (not defined $TeXsize) {$TeXsize="large";} |
$currentstring .= '\strut\newline '.$pre.'{\\'.$TeXsize.' \textbf{'; |
$currentstring .= '\strut\newline '.$pre.'{\\'.$TeXsize.' \textbf{'; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
Line 979 sub end_h4 {
|
Line 979 sub end_h4 {
|
$post='}'.'\vskip 0 mm '; |
$post='}'.'\vskip 0 mm '; |
} |
} |
$currentstring .= '}}'.$post; |
$currentstring .= '}}'.$post; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
Line 1001 sub start_h5 {
|
Line 1001 sub start_h5 {
|
} |
} |
my $TeXsize=&Apache::lonxml::get_param('TeXsize',$parstack,$safeeval,undef,0); |
my $TeXsize=&Apache::lonxml::get_param('TeXsize',$parstack,$safeeval,undef,0); |
if (not defined $TeXsize) {$TeXsize="large";} |
if (not defined $TeXsize) {$TeXsize="large";} |
$currentstring .= '\strut\newline '.$pre.'{\\'.$TeXsize.' \textbf{'; |
$currentstring .= '\strut\newline '.$pre.'{\\'.$TeXsize.' \textbf{'; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
Line 1022 sub end_h5 {
|
Line 1022 sub end_h5 {
|
$post='}'.'\vskip 0 mm '; |
$post='}'.'\vskip 0 mm '; |
} |
} |
$currentstring .= '}}'.$post; |
$currentstring .= '}}'.$post; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
Line 1044 sub start_h6 {
|
Line 1044 sub start_h6 {
|
} |
} |
my $TeXsize=&Apache::lonxml::get_param('TeXsize',$parstack,$safeeval,undef,0); |
my $TeXsize=&Apache::lonxml::get_param('TeXsize',$parstack,$safeeval,undef,0); |
if (not defined $TeXsize) {$TeXsize="large";} |
if (not defined $TeXsize) {$TeXsize="large";} |
$currentstring .= '\strut\newline '.$pre.'{\\'.$TeXsize.' \textbf{'; |
$currentstring .= '\strut\newline '.$pre.'{\\'.$TeXsize.' \textbf{'; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
Line 1065 sub end_h6 {
|
Line 1065 sub end_h6 {
|
$post='}'.'\vskip 0 mm '; |
$post='}'.'\vskip 0 mm '; |
} |
} |
$currentstring .= '}}'.$post; |
$currentstring .= '}}'.$post; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
Line 1111 sub end_i {
|
Line 1111 sub end_i {
|
$currentstring .= $token->[2]; |
$currentstring .= $token->[2]; |
} elsif ($target eq 'tex') { |
} elsif ($target eq 'tex') { |
$currentstring .= '}'; |
$currentstring .= '}'; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
Line 1146 sub start_dfn {
|
Line 1146 sub start_dfn {
|
$currentstring .= $token->[4]; |
$currentstring .= $token->[4]; |
} elsif ($target eq 'tex') { |
} elsif ($target eq 'tex') { |
$currentstring .= '\textit{'; |
$currentstring .= '\textit{'; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
Line 1215 sub start_code {
|
Line 1215 sub start_code {
|
$currentstring .= $token->[4]; |
$currentstring .= $token->[4]; |
} elsif ($target eq 'tex') { |
} elsif ($target eq 'tex') { |
$currentstring .= '\texttt{'; |
$currentstring .= '\texttt{'; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
Line 1226 sub end_code {
|
Line 1226 sub end_code {
|
$currentstring .= $token->[2]; |
$currentstring .= $token->[2]; |
} elsif ($target eq 'tex') { |
} elsif ($target eq 'tex') { |
$currentstring .= '}'; |
$currentstring .= '}'; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
Line 1249 sub end_em {
|
Line 1249 sub end_em {
|
$currentstring .= $token->[2]; |
$currentstring .= $token->[2]; |
} elsif ($target eq 'tex') { |
} elsif ($target eq 'tex') { |
$currentstring .= '}'; |
$currentstring .= '}'; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
Line 1272 sub end_q {
|
Line 1272 sub end_q {
|
$currentstring .= $token->[2]; |
$currentstring .= $token->[2]; |
} elsif ($target eq 'tex') { |
} elsif ($target eq 'tex') { |
$currentstring .= '}'; |
$currentstring .= '}'; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
Line 1288 sub end_q {
|
Line 1288 sub end_q {
|
my $closing_string = ''; # String required to close <p> |
my $closing_string = ''; # String required to close <p> |
|
|
# Some tags are <p> fragile meaning that <p> inside of them |
# Some tags are <p> fragile meaning that <p> inside of them |
# does not work within TeX mode. This is managed via the |
# does not work within TeX mode. This is managed via the |
# counter below: |
# counter below: |
# |
# |
|
|
Line 1388 sub start_br {
|
Line 1388 sub start_br {
|
if ($signal != 1) { |
if ($signal != 1) { |
$currentstring .= '\strut \\\\ \strut '; |
$currentstring .= '\strut \\\\ \strut '; |
} |
} |
|
|
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
Line 1410 sub start_big {
|
Line 1410 sub start_big {
|
$currentstring .= $token->[4]; |
$currentstring .= $token->[4]; |
} elsif ($target eq 'tex') { |
} elsif ($target eq 'tex') { |
$currentstring .= '{\large '; |
$currentstring .= '{\large '; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
Line 1453 sub start_basefont {
|
Line 1453 sub start_basefont {
|
my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_; |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_; |
my $currentstring = ''; |
my $currentstring = ''; |
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') { |
my $basesize=&Apache::lonxml::get_param('TeXsize',$parstack,$safeeval); |
my $basesize=&Apache::lonxml::get_param('TeXsize',$parstack,$safeeval); |
if (defined $basesize) { |
if (defined $basesize) { |
Line 1467 sub end_basefont {
|
Line 1467 sub end_basefont {
|
my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
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') { |
my $basesize=&Apache::lonxml::get_param('TeXsize',$parstack,$safeeval); |
my $basesize=&Apache::lonxml::get_param('TeXsize',$parstack,$safeeval); |
if (defined $basesize) { |
if (defined $basesize) { |
Line 1483 sub start_font {
|
Line 1483 sub start_font {
|
my $currentstring = ''; |
my $currentstring = ''; |
if ($target eq 'web' || $target eq 'webgrade') { |
if ($target eq 'web' || $target eq 'webgrade') { |
my $face=&Apache::lonxml::get_param('face',$parstack,$safeeval); |
my $face=&Apache::lonxml::get_param('face',$parstack,$safeeval); |
$currentstring = $token->[4]; |
$currentstring = $token->[4]; |
} elsif ($target eq 'tex') { |
} elsif ($target eq 'tex') { |
my $fontsize=&Apache::lonxml::get_param('TeXsize',$parstack,$safeeval); |
my $fontsize=&Apache::lonxml::get_param('TeXsize',$parstack,$safeeval); |
if (defined $fontsize) { |
if (defined $fontsize) { |
Line 1497 sub end_font {
|
Line 1497 sub end_font {
|
my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_; |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_; |
my $currentstring = ''; |
my $currentstring = ''; |
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 $fontsize=&Apache::lonxml::get_param('TeXsize',$parstack,$safeeval); |
my $fontsize=&Apache::lonxml::get_param('TeXsize',$parstack,$safeeval); |
if (defined $fontsize) { |
if (defined $fontsize) { |
Line 1506 sub end_font {
|
Line 1506 sub end_font {
|
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
#-- <strike> tag (end tag required) |
#-- <strike> tag (end tag required) |
sub start_strike { |
sub start_strike { |
my ($target,$token) = @_; |
my ($target,$token) = @_; |
Line 1515 sub start_strike {
|
Line 1515 sub start_strike {
|
$currentstring .= $token->[4]; |
$currentstring .= $token->[4]; |
} elsif ($target eq 'tex') { |
} elsif ($target eq 'tex') { |
&Apache::lonxml::startredirection(); |
&Apache::lonxml::startredirection(); |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
Line 1526 sub end_strike {
|
Line 1526 sub end_strike {
|
$currentstring .= $token->[2]; |
$currentstring .= $token->[2]; |
} elsif ($target eq 'tex') { |
} elsif ($target eq 'tex') { |
$currentstring=&Apache::lonxml::endredirection(); |
$currentstring=&Apache::lonxml::endredirection(); |
$currentstring=~s/(\S)(\s+)(\S)/$1\}$2\\underline\{$3/g; |
$currentstring=~s/(\S)(\s+)(\S)/$1\}$2\\underline\{$3/g; |
$currentstring=~s/^\s*(\S)/\\underline\{$1/; |
$currentstring=~s/^\s*(\S)/\\underline\{$1/; |
$currentstring=~s/(\S)\s*$/$1\}/; |
$currentstring=~s/(\S)\s*$/$1\}/; |
} |
} |
return $currentstring; |
return $currentstring; |
Line 1541 sub start_s {
|
Line 1541 sub start_s {
|
$currentstring .= $token->[4]; |
$currentstring .= $token->[4]; |
} elsif ($target eq 'tex') { |
} elsif ($target eq 'tex') { |
&Apache::lonxml::startredirection(); |
&Apache::lonxml::startredirection(); |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
Line 1567 sub start_sub {
|
Line 1567 sub start_sub {
|
$currentstring .= $token->[4]; |
$currentstring .= $token->[4]; |
} elsif ($target eq 'tex') { |
} elsif ($target eq 'tex') { |
$currentstring .= '\raisebox{-\smallskipamount}{\scriptsize{'; |
$currentstring .= '\raisebox{-\smallskipamount}{\scriptsize{'; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
Line 1590 sub start_sup {
|
Line 1590 sub start_sup {
|
$currentstring .= $token->[4]; |
$currentstring .= $token->[4]; |
} elsif ($target eq 'tex') { |
} elsif ($target eq 'tex') { |
$currentstring .= '\raisebox{\smallskipamount}{\scriptsize{'; |
$currentstring .= '\raisebox{\smallskipamount}{\scriptsize{'; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
Line 1614 sub start_hr {
|
Line 1614 sub start_hr {
|
} elsif ($target eq 'tex') { |
} elsif ($target eq 'tex') { |
|
|
# <hr /> can't be inside of <sup><sub> thank you LaTeX. |
# <hr /> can't be inside of <sup><sub> thank you LaTeX. |
# |
# |
my $restart_sub = 0; |
my $restart_sub = 0; |
my $restart_sup = 0; |
my $restart_sup = 0; |
|
|
Line 1624 sub start_hr {
|
Line 1624 sub start_hr {
|
|
|
if (&is_inside_of($tagstack, "sub")) { |
if (&is_inside_of($tagstack, "sub")) { |
$restart_sub = 1; |
$restart_sub = 1; |
$currentstring .= &end_sub($target, $token, $tagstack, |
$currentstring .= &end_sub($target, $token, $tagstack, |
$parstack, $parser, $safeeval); |
$parstack, $parser, $safeeval); |
} |
} |
if (&is_inside_of($tagstack, "sup")) { |
if (&is_inside_of($tagstack, "sup")) { |
Line 1663 sub start_hr {
|
Line 1663 sub start_hr {
|
$currentstring .= &start_sup($target, $token, $tagstack, |
$currentstring .= &start_sup($target, $token, $tagstack, |
$parstack, $parser, $safeeval); |
$parstack, $parser, $safeeval); |
} |
} |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
Line 1690 sub start_div {
|
Line 1690 sub start_div {
|
my $currentstring = &end_p(); # Close enclosing para. |
my $currentstring = &end_p(); # Close enclosing para. |
if ($target eq 'web' || $target eq 'webgrade') { |
if ($target eq 'web' || $target eq 'webgrade') { |
$currentstring .= $token->[4]; |
$currentstring .= $token->[4]; |
} |
} |
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 |
# If inside a table row, we must let the table logic |
# do the alignment, however. |
# do the alignment, however. |
# |
# |
|
|
my $endstring = ''; |
my $endstring = ''; |
|
|
Line 1706 sub start_div {
|
Line 1706 sub start_div {
|
$endstring = '\end{center}'; |
$endstring = '\end{center}'; |
if (&is_inside_of($tagstack, "table")) { |
if (&is_inside_of($tagstack, "table")) { |
$currentstring = ¢er_correction().$currentstring; |
$currentstring = ¢er_correction().$currentstring; |
$endstring .= ¢er_end_correction(); |
$endstring .= ¢er_end_correction(); |
} |
} |
} |
} |
elsif ($align eq 'right') { |
elsif ($align eq 'right') { |
Line 1816 sub start_li {
|
Line 1816 sub start_li {
|
my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
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') { |
my $type=&Apache::lonxml::get_param('type',$parstack,$safeeval,undef,0); |
my $type=&Apache::lonxml::get_param('type',$parstack,$safeeval,undef,0); |
my $value=&Apache::lonxml::get_param('value',$parstack,$safeeval,undef,0); |
my $value=&Apache::lonxml::get_param('value',$parstack,$safeeval,undef,0); |
#FIXME need to support types i and I |
#FIXME need to support types i and I |
if ($type=~/disc/) { |
if ($type=~/disc/) { |
$currentstring .= ' \item[$\bullet$] '; |
$currentstring .= ' \item[$\bullet$] '; |
} elsif ($type=~/circle/) { |
} elsif ($type=~/circle/) { |
Line 1837 sub start_li {
|
Line 1837 sub start_li {
|
$currentstring .= ' \item['.$value.'] '; |
$currentstring .= ' \item['.$value.'] '; |
} else { |
} else { |
$currentstring .= ' \item '; |
$currentstring .= ' \item '; |
} |
} |
$Apache::londefdef::list_index++; |
$Apache::londefdef::list_index++; |
} |
} |
return $currentstring; |
return $currentstring; |
Line 1847 sub end_li {
|
Line 1847 sub end_li {
|
my ($target,$token) = @_; |
my ($target,$token) = @_; |
my $currentstring = &end_p(); # In case there's a <p> in the <li> |
my $currentstring = &end_p(); # In case there's a <p> in the <li> |
if ($target eq 'web' || $target eq 'webgrade') { |
if ($target eq 'web' || $target eq 'webgrade') { |
$currentstring .= $token->[2]; |
$currentstring .= $token->[2]; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
Line 1860 sub start_u {
|
Line 1860 sub start_u {
|
$currentstring .= $token->[4]; |
$currentstring .= $token->[4]; |
} elsif ($target eq 'tex') { |
} elsif ($target eq 'tex') { |
&Apache::lonxml::startredirection(); |
&Apache::lonxml::startredirection(); |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
Line 1883 sub start_ul {
|
Line 1883 sub start_ul {
|
my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; |
my $currentstring = &end_p(); # Close off enclosing list. |
my $currentstring = &end_p(); # Close off enclosing list. |
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') { |
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; |
$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$}'. |
'\renewcommand{\labelitemiii}{$\bullet$}'. |
'\renewcommand{\labelitemiii}{$\bullet$}'. |
'\renewcommand{\labelitemiv}{$\bullet$}'; |
'\renewcommand{\labelitemiv}{$\bullet$}'; |
} elsif ($TeXtype eq 'circle') { |
} elsif ($TeXtype eq 'circle') { |
$currentstring .= '\renewcommand{\labelitemi}{$\circ$}'. |
$currentstring .= '\renewcommand{\labelitemi}{$\circ$}'. |
'\renewcommand{\labelitemii}{$\circ$}'. |
'\renewcommand{\labelitemii}{$\circ$}'. |
'\renewcommand{\labelitemiii}{$\circ$}'. |
'\renewcommand{\labelitemiii}{$\circ$}'. |
'\renewcommand{\labelitemiv}{$\circ$}'; |
'\renewcommand{\labelitemiv}{$\circ$}'; |
} elsif ($TeXtype eq 'square') { |
} elsif ($TeXtype eq 'square') { |
$currentstring .= '\renewcommand{\labelitemi}{$\diamond$}'. |
$currentstring .= '\renewcommand{\labelitemi}{$\diamond$}'. |
'\renewcommand{\labelitemii}{$\diamond$}'. |
'\renewcommand{\labelitemii}{$\diamond$}'. |
'\renewcommand{\labelitemiii}{$\diamond$}'. |
'\renewcommand{\labelitemiii}{$\diamond$}'. |
'\renewcommand{\labelitemiv}{$\diamond$}'; |
'\renewcommand{\labelitemiv}{$\diamond$}'; |
} |
} |
$currentstring .= '\strut \begin{itemize}'; |
$currentstring .= '\strut \begin{itemize}'; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
Line 1912 sub end_ul {
|
Line 1912 sub end_ul {
|
my ($target,$token) = @_; |
my ($target,$token) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
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') { |
$currentstring = '\end{itemize} \renewcommand{\labelitemi}{$\bullet$}'. |
$currentstring = '\end{itemize} \renewcommand{\labelitemi}{$\bullet$}'. |
'\renewcommand{\labelitemii}{$\bullet$}'. |
'\renewcommand{\labelitemii}{$\bullet$}'. |
'\renewcommand{\labelitemiii}{$\bullet$}'. |
'\renewcommand{\labelitemiii}{$\bullet$}'. |
'\renewcommand{\labelitemiv}{$\bullet$}\strut '; |
'\renewcommand{\labelitemiv}{$\bullet$}\strut '; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
Line 1927 sub start_menu {
|
Line 1927 sub start_menu {
|
my ($target,$token) = @_; |
my ($target,$token) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
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') { |
$currentstring = " \\begin{itemize} "; |
$currentstring = " \\begin{itemize} "; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
Line 1938 sub end_menu {
|
Line 1938 sub end_menu {
|
my ($target,$token) = @_; |
my ($target,$token) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
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') { |
$currentstring = " \\end{itemize}"; |
$currentstring = " \\end{itemize}"; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
Line 1950 sub start_dir {
|
Line 1950 sub start_dir {
|
my ($target,$token) = @_; |
my ($target,$token) = @_; |
my $currentstring = &end_p(); # In case there's a <p> prior to the list. |
my $currentstring = &end_p(); # In case there's a <p> prior to the list. |
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') { |
$currentstring .= " \\begin{itemize} "; |
$currentstring .= " \\begin{itemize} "; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
Line 1961 sub end_dir {
|
Line 1961 sub end_dir {
|
my ($target,$token) = @_; |
my ($target,$token) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
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') { |
$currentstring = " \\end{itemize}"; |
$currentstring = " \\end{itemize}"; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
Line 1973 sub start_ol {
|
Line 1973 sub start_ol {
|
my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; |
my $currentstring = &end_p(); # In case there's a <p> prior to the list. |
my $currentstring = &end_p(); # In case there's a <p> prior to the list. |
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') { |
$Apache::londefdef::list_index=0; |
$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}.}'. |
'\renewcommand{\labelenumii}{\arabic{enumii}.}'. |
'\renewcommand{\labelenumii}{\arabic{enumii}.}'. |
'\renewcommand{\labelenumiii}{\arabic{enumiii}.}'. |
'\renewcommand{\labelenumiii}{\arabic{enumiii}.}'. |
'\renewcommand{\labelenumiv}{\arabic{enumiv}.}'; |
'\renewcommand{\labelenumiv}{\arabic{enumiv}.}'; |
} elsif ($type eq 'A') { |
} elsif ($type eq 'A') { |
$currentstring .= '\renewcommand{\labelenumi}{\Alph{enumi}.}'. |
$currentstring .= '\renewcommand{\labelenumi}{\Alph{enumi}.}'. |
'\renewcommand{\labelenumii}{\Alph{enumii}.}'. |
'\renewcommand{\labelenumii}{\Alph{enumii}.}'. |
'\renewcommand{\labelenumiii}{\Alph{enumiii}.}'. |
'\renewcommand{\labelenumiii}{\Alph{enumiii}.}'. |
'\renewcommand{\labelenumiv}{\Alph{enumiv}.}'; |
'\renewcommand{\labelenumiv}{\Alph{enumiv}.}'; |
} elsif ($type eq 'a') { |
} elsif ($type eq 'a') { |
Line 2003 sub start_ol {
|
Line 2003 sub start_ol {
|
'\renewcommand{\labelenumiii}{\Roman{enumiii}.}'. |
'\renewcommand{\labelenumiii}{\Roman{enumiii}.}'. |
'\renewcommand{\labelenumiv}{\Roman{enumiv}.}'; |
'\renewcommand{\labelenumiv}{\Roman{enumiv}.}'; |
} |
} |
$currentstring .= '\strut \begin{enumerate}'; |
$currentstring .= '\strut \begin{enumerate}'; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
Line 2012 sub end_ol {
|
Line 2012 sub end_ol {
|
my ($target,$token) = @_; |
my ($target,$token) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
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') { |
$currentstring = '\end{enumerate}\renewcommand{\labelenumi}{\arabic{enumi}.}'. |
$currentstring = '\end{enumerate}\renewcommand{\labelenumi}{\arabic{enumi}.}'. |
'\renewcommand{\labelenumii}{\arabic{enumii}.}'. |
'\renewcommand{\labelenumii}{\arabic{enumii}.}'. |
'\renewcommand{\labelenumiii}{\arabic{enumiii}.}'. |
'\renewcommand{\labelenumiii}{\arabic{enumiii}.}'. |
'\renewcommand{\labelenumiv}{\arabic{enumiv}.}\strut '; |
'\renewcommand{\labelenumiv}{\arabic{enumiv}.}\strut '; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
Line 2027 sub start_dl {
|
Line 2027 sub start_dl {
|
my ($target,$token) = @_; |
my ($target,$token) = @_; |
my $currentstring = &end_p(); # In case there's a <p> unclosed prior to the list. |
my $currentstring = &end_p(); # In case there's a <p> unclosed prior to the list. |
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') { |
$currentstring .= '\begin{description}'; |
$currentstring .= '\begin{description}'; |
$Apache::londefdef::DL++; |
$Apache::londefdef::DL++; |
Line 2035 sub start_dl {
|
Line 2035 sub start_dl {
|
$Apache::londefdef::DD[$Apache::londefdef::DL]=0; |
$Apache::londefdef::DD[$Apache::londefdef::DL]=0; |
$Apache::londefdef::DT[$Apache::londefdef::DL]=0; |
$Apache::londefdef::DT[$Apache::londefdef::DL]=0; |
$Apache::londefdef::seenDT[$Apache::londefdef::DL]=0; |
$Apache::londefdef::seenDT[$Apache::londefdef::DL]=0; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
Line 2043 sub end_dl {
|
Line 2043 sub end_dl {
|
my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
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') { |
if ($Apache::londefdef::DT[-1]) { &end_dt(@_); } |
if ($Apache::londefdef::DT[-1]) { &end_dt(@_); } |
if ($Apache::londefdef::DD[-1]) { &end_dd(@_); } |
if ($Apache::londefdef::DD[-1]) { &end_dd(@_); } |
Line 2051 sub end_dl {
|
Line 2051 sub end_dl {
|
$currentstring.=' '.$element.' '; |
$currentstring.=' '.$element.' '; |
} |
} |
pop(@Apache::londefdef::description); |
pop(@Apache::londefdef::description); |
$currentstring.='\end{description}'; |
$currentstring.='\end{description}'; |
delete($Apache::londefdef::DD[$Apache::londefdef::DL]); |
delete($Apache::londefdef::DD[$Apache::londefdef::DL]); |
delete($Apache::londefdef::DT[$Apache::londefdef::DL]); |
delete($Apache::londefdef::DT[$Apache::londefdef::DL]); |
delete($Apache::londefdef::seenDT[$Apache::londefdef::DL]); |
delete($Apache::londefdef::seenDT[$Apache::londefdef::DL]); |
$Apache::londefdef::DL--; |
$Apache::londefdef::DL--; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
Line 2065 sub start_dt {
|
Line 2065 sub start_dt {
|
my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; |
my $currentstring=''; |
my $currentstring=''; |
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') { |
if ($Apache::londefdef::DT[-1]) { &end_dt(@_); } |
if ($Apache::londefdef::DT[-1]) { &end_dt(@_); } |
if ($Apache::londefdef::DD[-1]) { &end_dd(@_); } |
if ($Apache::londefdef::DD[-1]) { &end_dd(@_); } |
&Apache::lonxml::startredirection(); |
&Apache::lonxml::startredirection(); |
$Apache::londefdef::DT[-1]++; |
$Apache::londefdef::DT[-1]++; |
$Apache::londefdef::seenDT[-1]=1; |
$Apache::londefdef::seenDT[-1]=1; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
Line 2080 sub end_dt {
|
Line 2080 sub end_dt {
|
my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
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') { |
if ($Apache::londefdef::DT[-1]) { |
if ($Apache::londefdef::DT[-1]) { |
my $data=&item_cleanup(); |
my $data=&item_cleanup(); |
push(@{$Apache::londefdef::description[-1]},'\item['.$data.'] \strut \vskip 0mm'); |
push(@{$Apache::londefdef::description[-1]},'\item['.$data.'] \strut \vskip 0mm'); |
$Apache::londefdef::DT[-1]--; |
$Apache::londefdef::DT[-1]--; |
} |
} |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
Line 2103 sub start_dd {
|
Line 2103 sub start_dd {
|
my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
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') { |
if ($Apache::londefdef::DT[-1]) { &end_dt(@_); } |
if ($Apache::londefdef::DT[-1]) { &end_dt(@_); } |
if ($Apache::londefdef::DD[-1]) { &end_dd(@_);} |
if ($Apache::londefdef::DD[-1]) { &end_dd(@_);} |
Line 2114 sub start_dd {
|
Line 2114 sub start_dd {
|
$Apache::londefdef::description[-1]->[-1].=' \strut '; |
$Apache::londefdef::description[-1]->[-1].=' \strut '; |
$Apache::londefdef::DD[-1]++; |
$Apache::londefdef::DD[-1]++; |
&Apache::lonxml::startredirection(); |
&Apache::lonxml::startredirection(); |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
Line 2122 sub end_dd {
|
Line 2122 sub end_dd {
|
my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
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') { |
$Apache::londefdef::description[-1]->[-1].= |
$Apache::londefdef::description[-1]->[-1].= |
&Apache::lonxml::endredirection().' \vskip 0mm '; |
&Apache::lonxml::endredirection().' \vskip 0mm '; |
Line 2134 sub end_dd {
|
Line 2134 sub end_dd {
|
#-- <table> tag (end tag required) |
#-- <table> tag (end tag required) |
# <table> also ends any prior <p> that is not closed. |
# <table> also ends any prior <p> that is not closed. |
# but, unless I allow <p>'s to nest, that's the |
# but, unless I allow <p>'s to nest, that's the |
# only way I could think of to allow <p> in |
# only way I could think of to allow <p> in |
# <tr> <th> bodies |
# <tr> <th> bodies |
# |
# |
#list of supported attributes: border,width,TeXwidth,TeXtheme |
#list of supported attributes: border,width,TeXwidth,TeXtheme |
Line 2144 sub start_table {
|
Line 2144 sub start_table {
|
my $textwidth = ''; |
my $textwidth = ''; |
my $currentstring = &end_p(); |
my $currentstring = &end_p(); |
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') { |
&disable_para(); # Can't have paras in a table. |
&disable_para(); # Can't have paras in a table. |
|
|
Line 2212 sub start_table {
|
Line 2212 sub start_table {
|
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
sub end_table { |
sub end_table { |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
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') { |
|
|
|
|
Line 2237 sub start_tr {
|
Line 2237 sub start_tr {
|
my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
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') { |
|
|
my $align = &Apache::lonxml::get_param('align', $parstack, $safeeval, undef, 1); |
my $align = &Apache::lonxml::get_param('align', $parstack, $safeeval, undef, 1); |
Line 2271 sub start_tr {
|
Line 2271 sub start_tr {
|
push @ {$Apache::londefdef::table[-1]{'maxlen'}}, []; |
push @ {$Apache::londefdef::table[-1]{'maxlen'}}, []; |
push @ {$Apache::londefdef::table[-1]{'content'}}, []; |
push @ {$Apache::londefdef::table[-1]{'content'}}, []; |
} |
} |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
sub end_tr { |
sub end_tr { |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; |
my $currentstring = &end_p(); # Close any pending <p> in the row. |
my $currentstring = &end_p(); # Close any pending <p> in the row. |
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') { |
|
|
# In case the user is missing a </td> or </th> tag: |
# In case the user is missing a </td> or </th> tag: |
|
|
if ($Apache::londefdef::TD_redirection) { |
if ($Apache::londefdef::TD_redirection) { |
&end_td_tex($parstack,$parser,$safeeval); |
&end_td_tex($parstack,$parser,$safeeval); |
} |
} |
$Apache::londefdef::table[-1]->end_row(); |
$Apache::londefdef::table[-1]->end_row(); |
|
|
Line 2295 sub end_tr {
|
Line 2295 sub end_tr {
|
|
|
if (0) { |
if (0) { |
if ($Apache::londefdef::TD_redirection) { |
if ($Apache::londefdef::TD_redirection) { |
&end_td_tex($parstack,$parser,$safeeval); |
&end_td_tex($parstack,$parser,$safeeval); |
} |
} |
# Counter columns must be the maximum number of columns seen |
# Counter columns must be the maximum number of columns seen |
# in the table so far so: |
# in the table so far so: |
Line 2314 sub start_td {
|
Line 2314 sub start_td {
|
my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
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') { |
$Apache::londefdef::TD_redirection = 1; |
$Apache::londefdef::TD_redirection = 1; |
&tag_check('tr','td',$tagstack,$parstack,$parser,$safeeval); |
&tag_check('tr','td',$tagstack,$parstack,$parser,$safeeval); |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
sub tag_check { |
sub tag_check { |
my ($good_tag,$bad_tag,$tagstack,$parstack,$parser,$safeeval) = @_; |
my ($good_tag,$bad_tag,$tagstack,$parstack,$parser,$safeeval) = @_; |
my @ar=@$parstack; |
my @ar=@$parstack; |
for (my $i=$#ar-1;$i>=0;$i--) { |
for (my $i=$#ar-1;$i>=0;$i--) { |
if (lc($$tagstack[$i]) eq $good_tag) { |
if (lc($$tagstack[$i]) eq $good_tag) { |
&start_td_tex($parstack,$parser,$safeeval); |
&start_td_tex($parstack,$parser,$safeeval); |
Line 2346 sub tag_check {
|
Line 2346 sub tag_check {
|
sub cell_config_hash { |
sub cell_config_hash { |
my ($align, $rowspan, $colspan, $width) = @_; |
my ($align, $rowspan, $colspan, $width) = @_; |
if ($rowspan ne '') { |
if ($rowspan ne '') { |
$rowspan =~ s/^\s+|\s+$//g; |
$rowspan =~ s/^\s+|\s+$//g; |
} |
} |
if ($colspan ne '') { |
if ($colspan ne '') { |
$colspan =~ s/^\s+|\s+$//g; |
$colspan =~ s/^\s+|\s+$//g; |
Line 2366 sub cell_config_hash {
|
Line 2366 sub cell_config_hash {
|
} |
} |
return \%config; |
return \%config; |
} |
} |
|
|
sub start_td_tex { |
sub start_td_tex { |
my ($parstack,$parser,$safeeval) = @_; |
my ($parstack,$parser,$safeeval) = @_; |
|
|
Line 2383 sub start_td_tex {
|
Line 2383 sub start_td_tex {
|
|
|
my $table = $Apache::londefdef::table[-1]; |
my $table = $Apache::londefdef::table[-1]; |
$table->add_cell('', $config); |
$table->add_cell('', $config); |
|
|
|
|
#------------------------------------------------ |
#------------------------------------------------ |
# Old table code. |
# Old table code. |
Line 2421 sub end_td_tex {
|
Line 2421 sub end_td_tex {
|
if (0) { |
if (0) { |
my ($parstack,$parser,$safeeval) = @_; |
my ($parstack,$parser,$safeeval) = @_; |
my $current_row = $Apache::londefdef::table[-1]{'row_number'}; |
my $current_row = $Apache::londefdef::table[-1]{'row_number'}; |
my $current_column = $Apache::londefdef::table[-1]{'counter_columns'}; |
my $current_column = $Apache::londefdef::table[-1]{'counter_columns'}; |
my $data = &Apache::lonxml::endredirection(); |
my $data = &Apache::lonxml::endredirection(); |
|
|
# The rowspan array of the table indicates which cells are part of a span. |
# The rowspan array of the table indicates which cells are part of a span. |
Line 2431 sub end_td_tex {
|
Line 2431 sub end_td_tex {
|
# If this and subsequent cells are part of a rowspan, we must |
# If this and subsequent cells are part of a rowspan, we must |
# push along the row until we find one that is not. |
# push along the row until we find one that is not. |
|
|
while ((defined $Apache::londefdef::table[-1]{'rowspan'}[$current_row] [$current_column]) |
while ((defined $Apache::londefdef::table[-1]{'rowspan'}[$current_row] [$current_column]) |
&& ($Apache::londefdef::table[-1]{'rowspan'}[$current_row][$current_column] =~ /[\^\_]/)) { |
&& ($Apache::londefdef::table[-1]{'rowspan'}[$current_row][$current_column] =~ /[\^\_]/)) { |
# Part of a span. |
# Part of a span. |
push @ {$Apache::londefdef::table[-1]{'content'}[-1]}, ''; |
push @ {$Apache::londefdef::table[-1]{'content'}[-1]}, ''; |
$current_column++; |
$current_column++; |
} |
} |
$Apache::londefdef::table[-1]{'counter_columns'} = $current_column; |
$Apache::londefdef::table[-1]{'counter_columns'} = $current_column; |
|
|
|
|
# Get the column and row spans. |
# Get the column and row spans. |
# Colspan can be done via \multicolumn if I can figure out the data structs. |
# Colspan can be done via \multicolumn if I can figure out the data structs. |
Line 2514 sub end_td_tex {
|
Line 2514 sub end_td_tex {
|
push @ {$Apache::londefdef::table[-1]{'minlen'}[$Apache::londefdef::table[-1]{'row_number'}] },'0'; |
push @ {$Apache::londefdef::table[-1]{'minlen'}[$Apache::londefdef::table[-1]{'row_number'}] },'0'; |
push @ {$Apache::londefdef::table[-1]{'maxlen'}[$Apache::londefdef::table[-1]{'row_number'}] },'0'; |
push @ {$Apache::londefdef::table[-1]{'maxlen'}[$Apache::londefdef::table[-1]{'row_number'}] },'0'; |
} |
} |
$data=~s/\\\\\s*$//; |
$data=~s/\\\\\s*$//; |
} else { |
} else { |
$data=~s/^\s+(\S.*)/$1/; |
$data=~s/^\s+(\S.*)/$1/; |
$data=~s/(.*\S)\s+$/$1/; |
$data=~s/(.*\S)\s+$/$1/; |
$data=~s/(\s)+/$1/; |
$data=~s/(\s)+/$1/; |
my ($current_length,$min_length)=(0,0); |
my ($current_length,$min_length)=(0,0); |
Line 2547 sub end_td_tex {
|
Line 2547 sub end_td_tex {
|
push @ {$Apache::londefdef::table[-1]{'maxlen'}[$Apache::londefdef::table[-1]{'row_number'}] },$current_length; |
push @ {$Apache::londefdef::table[-1]{'maxlen'}[$Apache::londefdef::table[-1]{'row_number'}] },$current_length; |
push @ {$Apache::londefdef::table[-1]{'minlen'}[$Apache::londefdef::table[-1]{'row_number'}] },$min_length; |
push @ {$Apache::londefdef::table[-1]{'minlen'}[$Apache::londefdef::table[-1]{'row_number'}] },$min_length; |
} |
} |
} |
} |
} |
} |
# Substitute all of the tables nested in this cell in their appropriate places. |
# Substitute all of the tables nested in this cell in their appropriate places. |
|
|
|
|
my $nested_count = $#{$Apache::londefdef::table[-1]{'include'}}; # This one is constant... |
my $nested_count = $#{$Apache::londefdef::table[-1]{'include'}}; # This one is constant... |
for (my $in=0; $in<=$nested_count; $in++) { |
for (my $in=0; $in<=$nested_count; $in++) { |
my $nested = shift @{$Apache::londefdef::table[-1]{'include'}}; |
my $nested = shift @{$Apache::londefdef::table[-1]{'include'}}; |
$nested =~ s/\\end\{tabular\}\\strut\\\\/\\end\{tabular\}/; |
$nested =~ s/\\end\{tabular\}\\strut\\\\/\\end\{tabular\}/; |
# $data=~s/\\keephidden\{NEW TABLE ENTRY\}/$Apache::londefdef::table[-1]{'include'}[$in]/; |
# $data=~s/\\keephidden\{NEW TABLE ENTRY\}/$Apache::londefdef::table[-1]{'include'}[$in]/; |
Line 2592 sub end_td {
|
Line 2592 sub end_td {
|
my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
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') { |
$Apache::londefdef::TD_redirection =0; |
$Apache::londefdef::TD_redirection =0; |
&end_td_tex($parstack,$parser,$safeeval); |
&end_td_tex($parstack,$parser,$safeeval); |
Line 2605 sub start_th {
|
Line 2605 sub start_th {
|
my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
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') { |
$Apache::londefdef::TD_redirection = 1; |
$Apache::londefdef::TD_redirection = 1; |
&tagg_check('tr','th',$tagstack,$parstack,$parser,$safeeval); |
&tagg_check('tr','th',$tagstack,$parstack,$parser,$safeeval); |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
sub tagg_check { |
sub tagg_check { |
my ($good_tag,$bad_tag,$tagstack,$parstack,$parser,$safeeval) = @_; |
my ($good_tag,$bad_tag,$tagstack,$parstack,$parser,$safeeval) = @_; |
my @ar=@$parstack; |
my @ar=@$parstack; |
for (my $i=$#ar-1;$i>=0;$i--) { |
for (my $i=$#ar-1;$i>=0;$i--) { |
if (lc($$tagstack[$i]) eq $good_tag) { |
if (lc($$tagstack[$i]) eq $good_tag) { |
&start_th_tex($parstack,$parser,$safeeval); |
&start_th_tex($parstack,$parser,$safeeval); |
Line 2629 sub tagg_check {
|
Line 2629 sub tagg_check {
|
} |
} |
return ''; |
return ''; |
} |
} |
|
|
sub start_th_tex { |
sub start_th_tex { |
my ($parstack,$parser,$safeeval) = @_; |
my ($parstack,$parser,$safeeval) = @_; |
|
|
Line 2708 sub end_th_tex {
|
Line 2708 sub end_th_tex {
|
push @ {$Apache::londefdef::table[-1]{'objectlen'}[$Apache::londefdef::table[-1]{'row_number'}] },$fwidth; |
push @ {$Apache::londefdef::table[-1]{'objectlen'}[$Apache::londefdef::table[-1]{'row_number'}] },$fwidth; |
push @ {$Apache::londefdef::table[-1]{'minlen'}[$Apache::londefdef::table[-1]{'row_number'}] },'0'; |
push @ {$Apache::londefdef::table[-1]{'minlen'}[$Apache::londefdef::table[-1]{'row_number'}] },'0'; |
push @ {$Apache::londefdef::table[-1]{'maxlen'}[$Apache::londefdef::table[-1]{'row_number'}] },'0'; |
push @ {$Apache::londefdef::table[-1]{'maxlen'}[$Apache::londefdef::table[-1]{'row_number'}] },'0'; |
} else { |
} else { |
$data=~s/^\s+(\S.*)/$1/; |
$data=~s/^\s+(\S.*)/$1/; |
$data=~s/(.*\S)\s+$/$1/; |
$data=~s/(.*\S)\s+$/$1/; |
$data=~s/(\s)+/$1/; |
$data=~s/(\s)+/$1/; |
my ($current_length,$min_length)=(0,0); |
my ($current_length,$min_length)=(0,0); |
Line 2738 sub end_th_tex {
|
Line 2738 sub end_th_tex {
|
push @ {$Apache::londefdef::table[-1]{'objectlen'}[$Apache::londefdef::table[-1]{'row_number'}] },'0'; |
push @ {$Apache::londefdef::table[-1]{'objectlen'}[$Apache::londefdef::table[-1]{'row_number'}] },'0'; |
push @ {$Apache::londefdef::table[-1]{'maxlen'}[$Apache::londefdef::table[-1]{'row_number'}] },$current_length; |
push @ {$Apache::londefdef::table[-1]{'maxlen'}[$Apache::londefdef::table[-1]{'row_number'}] },$current_length; |
push @ {$Apache::londefdef::table[-1]{'minlen'}[$Apache::londefdef::table[-1]{'row_number'}] },$min_length; |
push @ {$Apache::londefdef::table[-1]{'minlen'}[$Apache::londefdef::table[-1]{'row_number'}] },$min_length; |
} |
} |
} |
} |
for (my $in=0; $in<=$#{$Apache::londefdef::table[-1]{'include'}};$in++) { |
for (my $in=0; $in<=$#{$Apache::londefdef::table[-1]{'include'}};$in++) { |
$data=~s/\\keephidden\{NEW TABLE ENTRY\}/$Apache::londefdef::table[-1]{'include'}[$in]/; |
$data=~s/\\keephidden\{NEW TABLE ENTRY\}/$Apache::londefdef::table[-1]{'include'}[$in]/; |
} |
} |
#make data bold |
#make data bold |
Line 2754 sub end_th {
|
Line 2754 sub end_th {
|
my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; |
my $currentstring = &end_p(); # Close any open <p> in the row. |
my $currentstring = &end_p(); # Close any open <p> in the row. |
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') { |
$Apache::londefdef::TD_redirection =0; |
$Apache::londefdef::TD_redirection =0; |
&end_th_tex($parstack,$parser,$safeeval); |
&end_th_tex($parstack,$parser,$safeeval); |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
#-- <img> tag (end tag forbidden) |
#-- <img> tag (end tag forbidden) |
# |
# |
# Render the <IMG> tag. |
# Render the <IMG> tag. |
# <IMG> has the following attributes (in addition to the |
# <IMG> has the following attributes (in addition to the |
# standard HTML ones: |
# standard HTML ones: |
# TeXwrap - Governs how the tex target will try to wrap text around |
# TeXwrap - Governs how the tex target will try to wrap text around |
# horizontally aligned images. |
# horizontally aligned images. |
# TeXwidth - The width of the image when rendered for print (mm). |
# TeXwidth - The width of the image when rendered for print (mm). |
# TeXheight - The height of the image when rendered for print (mm) |
# TeXheight - The height of the image when rendered for print (mm) |
# (Note there seems to also be support for this as a % of page size) |
# (Note there seems to also be support for this as a % of page size) |
# |
# |
sub start_img { |
sub start_img { |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style) = @_; |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style) = @_; |
my $src = &Apache::lonxml::get_param('src',$parstack,$safeeval, |
my $src = &Apache::lonxml::get_param('src',$parstack,$safeeval, |
undef,1); |
undef,1); |
if (! $src && |
if (! $src && |
($target eq 'web' || $target eq 'webgrade' || $target eq 'tex') |
($target eq 'web' || $target eq 'webgrade' || $target eq 'tex') |
) { |
) { |
my $inside = &Apache::lonxml::get_all_text("/img",$parser,$style); |
my $inside = &Apache::lonxml::get_all_text("/img",$parser,$style); |
return ''; |
return ''; |
} |
} |
Line 2792 sub start_img {
|
Line 2792 sub start_img {
|
# Render unto browsers that which are the browser's... |
# Render unto browsers that which are the browser's... |
|
|
if ($target eq 'web' || $target eq 'webgrade') { |
if ($target eq 'web' || $target eq 'webgrade') { |
my $enc = ('yes' eq |
my $enc = ('yes' eq |
lc(&Apache::lonxml::get_param('encrypturl',$parstack, |
lc(&Apache::lonxml::get_param('encrypturl',$parstack, |
$safeeval))); |
$safeeval))); |
unless ($src =~ m{^data\:image/gif;base64,}) { |
unless ($src =~ m{^data\:image/gif;base64,}) { |
Line 2808 sub start_img {
|
Line 2808 sub start_img {
|
# simulate the alignments offered by html. |
# simulate the alignments offered by html. |
# |
# |
# |
# |
my $align = lc(&Apache::lonxml::get_param('align', |
my $align = lc(&Apache::lonxml::get_param('align', |
$parstack, |
$parstack, |
$safeeval, |
$safeeval, |
undef,1)); |
undef,1)); |
Line 2818 sub start_img {
|
Line 2818 sub start_img {
|
# |
# |
&Apache::lonxml::debug("Alignemnt = $align"); |
&Apache::lonxml::debug("Alignemnt = $align"); |
# LaTeX's image/text wrapping is really bad since it wants to |
# LaTeX's image/text wrapping is really bad since it wants to |
# make figures float. |
# make figures float. |
# The user has the optional parameter (applicable only to l/r |
# The user has the optional parameter (applicable only to l/r |
# alignment to use the picins/parpic directive to get wrapped text |
# alignment to use the picins/parpic directive to get wrapped text |
# this is also imperfect.. that's why we give them a choice... |
# this is also imperfect.. that's why we give them a choice... |
Line 2855 sub start_img {
|
Line 2855 sub start_img {
|
if ($width_param) { $size.='width='.$width_param.' mm,'; } |
if ($width_param) { $size.='width='.$width_param.' mm,'; } |
if ($height_param) { $size.='height='.$height_param.' mm]'; } |
if ($height_param) { $size.='height='.$height_param.' mm]'; } |
# Default size if not able to extract that (e.g. eps image). |
# Default size if not able to extract that (e.g. eps image). |
|
|
# &Apache::lonnet::logthis("Size = $size"); |
# &Apache::lonnet::logthis("Size = $size"); |
|
|
$size='['.$size; |
$size='['.$size; |
$size=~s/,$/]/; |
$size=~s/,$/]/; |
$currentstring .= '\graphicspath{{'.$path.'}}' |
$currentstring .= '\graphicspath{{'.$path.'}}' |
.'\includegraphics'.$size.'{'.$file.'} '; |
.'\includegraphics'.$size.'{'.$file.'} '; |
my $closure; |
my $closure; |
($currentstring, $closure) = &align_latex_image($align, |
($currentstring, $closure) = &align_latex_image($align, |
$latex_rendering, |
$latex_rendering, |
$currentstring, |
$currentstring, |
$width_param, |
$width_param, |
$height_param); |
$height_param); |
$currentstring .= $closure; |
$currentstring .= $closure; |
|
|
} else { |
} else { |
&Apache::lonxml::debug("$src does not exist"); |
&Apache::lonxml::debug("$src does not exist"); |
#original image file doesn't exist so check the alt attribute |
#original image file doesn't exist so check the alt attribute |
my $alt = |
my $alt = |
&Apache::lonxml::get_param('alt',$parstack,$safeeval,undef,1); |
&Apache::lonxml::get_param('alt',$parstack,$safeeval,undef,1); |
unless ($alt) { |
unless ($alt) { |
$alt=&Apache::lonmeta::alttag($Apache::lonxml::pwd[-1],$src); |
$alt=&Apache::lonmeta::alttag($Apache::lonxml::pwd[-1],$src); |
Line 2901 sub start_img {
|
Line 2901 sub start_img {
|
['', 'none','parbox', 'parpic', 'wrapfigure'], $token, 2); |
['', 'none','parbox', 'parpic', 'wrapfigure'], $token, 2); |
my $alt= &Apache::lonxml::get_param('alt',$parstack,$safeeval); |
my $alt= &Apache::lonxml::get_param('alt',$parstack,$safeeval); |
my $enc= &Apache::lonxml::get_param('encrypturl',$parstack,$safeeval); |
my $enc= &Apache::lonxml::get_param('encrypturl',$parstack,$safeeval); |
|
|
$currentstring .=&Apache::edit::select_arg('Encrypt URL:','encrypturl', |
$currentstring .=&Apache::edit::select_arg('Encrypt URL:','encrypturl', |
['no','yes'], $token, 2); |
['no','yes'], $token, 2); |
if (($alt=~/\S/) && (lc($enc) eq 'yes')) { |
if (($alt=~/\S/) && (lc($enc) eq 'yes')) { |
Line 2911 sub start_img {
|
Line 2911 sub start_img {
|
my $src= &Apache::lonxml::get_param('src',$parstack,$safeeval); |
my $src= &Apache::lonxml::get_param('src',$parstack,$safeeval); |
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); |
my $element = &Apache::edit::get_element('src'); |
my $element = &Apache::edit::get_element('src'); |
my $text; |
my $text; |
if ($token->[2]{'src'}=~/\$/) { |
if ($token->[2]{'src'}=~/\$/) { |
$text = &mt('Variable image source'); |
$text = &mt('Variable image source'); |
Line 2944 sub start_img {
|
Line 2944 sub start_img {
|
} |
} |
if ($osrc ne $nsrc || (!$nwidth && !$nheight)) { |
if ($osrc ne $nsrc || (!$nwidth && !$nheight)) { |
# changed image or no size specified, |
# changed image or no size specified, |
# if they didn't explicitly change the |
# if they didn't explicitly change the |
# width or height use the ones from the image |
# width or height use the ones from the image |
if ($iwidth && $iheight) { |
if ($iwidth && $iheight) { |
if ($owidth == $nwidth || (!$nwidth && !$nheight)) { |
if ($owidth == $nwidth || (!$nwidth && !$nheight)) { |
Line 2983 sub end_img {
|
Line 2983 sub end_img {
|
#-- <applet> tag (end tag required) |
#-- <applet> tag (end tag required) |
sub start_applet { |
sub start_applet { |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; |
|
|
my $code=&Apache::lonxml::get_param('code',$parstack,$safeeval,undef,1); |
my $code=&Apache::lonxml::get_param('code',$parstack,$safeeval,undef,1); |
&Apache::lonxml::extlink($code); |
&Apache::lonxml::extlink($code); |
my $archive=&Apache::lonxml::get_param('archive',$parstack,$safeeval, |
my $archive=&Apache::lonxml::get_param('archive',$parstack,$safeeval, |
Line 3004 sub start_applet {
|
Line 3004 sub start_applet {
|
|
|
if (&is_inside_of($tagstack, "sub")) { |
if (&is_inside_of($tagstack, "sub")) { |
$restart_sub = 1; |
$restart_sub = 1; |
$currentstring .= &end_sub($target, $token, $tagstack, |
$currentstring .= &end_sub($target, $token, $tagstack, |
$parstack, $parser, $safeeval); |
$parstack, $parser, $safeeval); |
} |
} |
if (&is_inside_of($tagstack, "sup")) { |
if (&is_inside_of($tagstack, "sup")) { |
Line 3036 sub start_applet {
|
Line 3036 sub start_applet {
|
$currentstring .= &start_sup($target, $token, $tagstack, |
$currentstring .= &start_sup($target, $token, $tagstack, |
$parstack, $parser, $safeeval); |
$parstack, $parser, $safeeval); |
} |
} |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
Line 3046 sub end_applet {
|
Line 3046 sub end_applet {
|
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') { |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
#-- <embed> tag (end tag optional/required) |
#-- <embed> tag (end tag optional/required) |
sub start_embed { |
sub start_embed { |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; |
my $src=&Apache::lonxml::get_param('src',$parstack,$safeeval,undef,1); |
my $src=&Apache::lonxml::get_param('src',$parstack,$safeeval,undef,1); |
&Apache::lonxml::extlink($src); |
&Apache::lonxml::extlink($src); |
my $currentstring = ''; |
my $currentstring = ''; |
if ($target eq 'web' || $target eq 'webgrade') { |
if ($target eq 'web' || $target eq 'webgrade') { |
$currentstring=&Apache::lonenc::encrypt_ref($token,{'src'=>$src}); |
$currentstring=&Apache::lonenc::encrypt_ref($token,{'src'=>$src}); |
} elsif ($target eq 'tex') { |
} elsif ($target eq 'tex') { |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
Line 3124 sub start_param {
|
Line 3124 sub start_param {
|
} |
} |
$currentstring = &Apache::lonenc::encrypt_ref($token,\%toconvert); |
$currentstring = &Apache::lonenc::encrypt_ref($token,\%toconvert); |
} elsif ($target eq 'tex') { |
} elsif ($target eq 'tex') { |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
Line 3132 sub end_param {
|
Line 3132 sub end_param {
|
my ($target,$token) = @_; |
my ($target,$token) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
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') { |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
Line 3169 sub end_allow {
|
Line 3169 sub end_allow {
|
sub start_frameset { |
sub start_frameset { |
my ($target,$token) = @_; |
my ($target,$token) = @_; |
my $currentstring = ''; # Close any pending para. |
my $currentstring = ''; # Close any pending para. |
if ($target eq 'web' || $target eq 'webgrade') { |
if ($target eq 'web' || $target eq 'webgrade') { |
$currentstring = |
$currentstring = |
&Apache::loncommon::start_page($Apache::londefdef::title, |
&Apache::loncommon::start_page($Apache::londefdef::title, |
$Apache::londefdef::head, |
$Apache::londefdef::head, |
{'add_entries' => $token->[2], |
{'add_entries' => $token->[2], |
Line 3199 sub start_xmp {
|
Line 3199 sub start_xmp {
|
$currentstring .= $token->[4]; |
$currentstring .= $token->[4]; |
} elsif ($target eq 'tex') { |
} elsif ($target eq 'tex') { |
$currentstring .= '\begin{verbatim}'; |
$currentstring .= '\begin{verbatim}'; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
Line 3223 sub start_pre {
|
Line 3223 sub start_pre {
|
} elsif ($target eq 'tex') { |
} elsif ($target eq 'tex') { |
$currentstring .= '\begin{verbatim}'; |
$currentstring .= '\begin{verbatim}'; |
&Apache::lonxml::disable_LaTeX_substitutions(); |
&Apache::lonxml::disable_LaTeX_substitutions(); |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
Line 3279 sub end_externallink {
|
Line 3279 sub end_externallink {
|
return $currentstring; |
return $currentstring; |
} |
} |
|
|
#-- <blankspace heigth=""> |
#-- <blankspace height=""> |
sub start_blankspace { |
sub start_blankspace { |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; |
my $currentstring = &end_p(); # closes off any unclosed <p> |
my $currentstring = &end_p(); # closes off any unclosed <p> |
if ($target eq 'tex') { |
if ($target eq 'tex') { |
my $howmuch = &Apache::lonxml::get_param('heigth',$parstack,$safeeval,undef,1); |
my $howmuch = &Apache::lonxml::get_param('height',$parstack,$safeeval,undef,1); |
$currentstring .= '\vskip '.$howmuch.' '; |
$currentstring .= '\vskip '.$howmuch.' '; |
} |
} |
return $currentstring; |
return $currentstring; |
Line 3304 sub start_abbr {
|
Line 3304 sub start_abbr {
|
my ($target,$token) = @_; |
my ($target,$token) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
if ($target eq 'web' || $target eq 'webgrade') { |
if ($target eq 'web' || $target eq 'webgrade') { |
$currentstring = $token->[4]; |
$currentstring = $token->[4]; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
Line 3313 sub end_abbr {
|
Line 3313 sub end_abbr {
|
my ($target,$token) = @_; |
my ($target,$token) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
if ($target eq 'web' || $target eq 'webgrade') { |
if ($target eq 'web' || $target eq 'webgrade') { |
$currentstring = $token->[2]; |
$currentstring = $token->[2]; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
Line 3323 sub start_acronym {
|
Line 3323 sub start_acronym {
|
my ($target,$token) = @_; |
my ($target,$token) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
if ($target eq 'web' || $target eq 'webgrade') { |
if ($target eq 'web' || $target eq 'webgrade') { |
$currentstring = $token->[4]; |
$currentstring = $token->[4]; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
Line 3332 sub end_acronym {
|
Line 3332 sub end_acronym {
|
my ($target,$token) = @_; |
my ($target,$token) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
if ($target eq 'web' || $target eq 'webgrade') { |
if ($target eq 'web' || $target eq 'webgrade') { |
$currentstring = $token->[2]; |
$currentstring = $token->[2]; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
Line 3342 sub start_area {
|
Line 3342 sub start_area {
|
my ($target,$token) = @_; |
my ($target,$token) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
if ($target eq 'web' || $target eq 'webgrade') { |
if ($target eq 'web' || $target eq 'webgrade') { |
$currentstring = $token->[4]; |
$currentstring = $token->[4]; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
Line 3351 sub end_area {
|
Line 3351 sub end_area {
|
my ($target,$token) = @_; |
my ($target,$token) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
if ($target eq 'web' || $target eq 'webgrade') { |
if ($target eq 'web' || $target eq 'webgrade') { |
$currentstring = $token->[2]; |
$currentstring = $token->[2]; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
Line 3361 sub start_base {
|
Line 3361 sub start_base {
|
my ($target,$token) = @_; |
my ($target,$token) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
if ($target eq 'web' || $target eq 'webgrade') { |
if ($target eq 'web' || $target eq 'webgrade') { |
$currentstring = $token->[4]; |
$currentstring = $token->[4]; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
Line 3370 sub end_base {
|
Line 3370 sub end_base {
|
my ($target,$token) = @_; |
my ($target,$token) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
if ($target eq 'web' || $target eq 'webgrade') { |
if ($target eq 'web' || $target eq 'webgrade') { |
$currentstring = $token->[2]; |
$currentstring = $token->[2]; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
Line 3380 sub start_bdo {
|
Line 3380 sub start_bdo {
|
my ($target,$token) = @_; |
my ($target,$token) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
if ($target eq 'web' || $target eq 'webgrade') { |
if ($target eq 'web' || $target eq 'webgrade') { |
$currentstring = $token->[4]; |
$currentstring = $token->[4]; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
Line 3389 sub end_bdo {
|
Line 3389 sub end_bdo {
|
my ($target,$token) = @_; |
my ($target,$token) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
if ($target eq 'web' || $target eq 'webgrade') { |
if ($target eq 'web' || $target eq 'webgrade') { |
$currentstring = $token->[2]; |
$currentstring = $token->[2]; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
Line 3399 sub start_bgsound {
|
Line 3399 sub start_bgsound {
|
my ($target,$token) = @_; |
my ($target,$token) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
if ($target eq 'web' || $target eq 'webgrade') { |
if ($target eq 'web' || $target eq 'webgrade') { |
$currentstring = $token->[4]; |
$currentstring = $token->[4]; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
Line 3408 sub end_bgsound {
|
Line 3408 sub end_bgsound {
|
my ($target,$token) = @_; |
my ($target,$token) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
if ($target eq 'web' || $target eq 'webgrade') { |
if ($target eq 'web' || $target eq 'webgrade') { |
$currentstring = $token->[2]; |
$currentstring = $token->[2]; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
Line 3418 sub start_blink {
|
Line 3418 sub start_blink {
|
my ($target,$token) = @_; |
my ($target,$token) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
if ($target eq 'web' || $target eq 'webgrade') { |
if ($target eq 'web' || $target eq 'webgrade') { |
$currentstring = $token->[4]; |
$currentstring = $token->[4]; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
Line 3427 sub end_blink {
|
Line 3427 sub end_blink {
|
my ($target,$token) = @_; |
my ($target,$token) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
if ($target eq 'web' || $target eq 'webgrade') { |
if ($target eq 'web' || $target eq 'webgrade') { |
$currentstring = $token->[2]; |
$currentstring = $token->[2]; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
Line 3437 sub start_blockquote {
|
Line 3437 sub start_blockquote {
|
my ($target,$token) = @_; |
my ($target,$token) = @_; |
my $currentstring = &end_p(); # Close any unclosed <p> |
my $currentstring = &end_p(); # Close any unclosed <p> |
if ($target eq 'web' || $target eq 'webgrade') { |
if ($target eq 'web' || $target eq 'webgrade') { |
$currentstring .= $token->[4]; |
$currentstring .= $token->[4]; |
} |
} |
if ($target eq 'tex') { |
if ($target eq 'tex') { |
$currentstring .= '\begin{quote}'; |
$currentstring .= '\begin{quote}'; |
} |
} |
Line 3449 sub end_blockquote {
|
Line 3449 sub end_blockquote {
|
my ($target,$token) = @_; |
my ($target,$token) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
if ($target eq 'web' || $target eq 'webgrade') { |
if ($target eq 'web' || $target eq 'webgrade') { |
$currentstring = $token->[2]; |
$currentstring = $token->[2]; |
} |
} |
if ($target eq 'tex') { |
if ($target eq 'tex') { |
$currentstring = '\end{quote}'; |
$currentstring = '\end{quote}'; |
} |
} |
Line 3462 sub start_button {
|
Line 3462 sub start_button {
|
my ($target,$token) = @_; |
my ($target,$token) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
if ($target eq 'web' || $target eq 'webgrade') { |
if ($target eq 'web' || $target eq 'webgrade') { |
$currentstring = $token->[4]; |
$currentstring = $token->[4]; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
Line 3471 sub end_button {
|
Line 3471 sub end_button {
|
my ($target,$token) = @_; |
my ($target,$token) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
if ($target eq 'web' || $target eq 'webgrade') { |
if ($target eq 'web' || $target eq 'webgrade') { |
$currentstring = $token->[2]; |
$currentstring = $token->[2]; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
Line 3481 sub start_caption {
|
Line 3481 sub start_caption {
|
my ($target,$token) = @_; |
my ($target,$token) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
if ($target eq 'web' || $target eq 'webgrade') { |
if ($target eq 'web' || $target eq 'webgrade') { |
$currentstring = $token->[4]; |
$currentstring = $token->[4]; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
Line 3491 sub end_caption {
|
Line 3491 sub end_caption {
|
my $currentstring = ''; |
my $currentstring = ''; |
if ($target eq 'web' || $target eq 'webgrade') { |
if ($target eq 'web' || $target eq 'webgrade') { |
$currentstring = $token->[2]; |
$currentstring = $token->[2]; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
Line 3500 sub start_col {
|
Line 3500 sub start_col {
|
my ($target,$token) = @_; |
my ($target,$token) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
if ($target eq 'web' || $target eq 'webgrade') { |
if ($target eq 'web' || $target eq 'webgrade') { |
$currentstring = $token->[4]; |
$currentstring = $token->[4]; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
Line 3509 sub end_col {
|
Line 3509 sub end_col {
|
my ($target,$token) = @_; |
my ($target,$token) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
if ($target eq 'web' || $target eq 'webgrade') { |
if ($target eq 'web' || $target eq 'webgrade') { |
$currentstring = $token->[2]; |
$currentstring = $token->[2]; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
Line 3519 sub start_colgroup {
|
Line 3519 sub start_colgroup {
|
my ($target,$token,$tagstack, $parstack, $parser, $safeeval, $style) = @_; |
my ($target,$token,$tagstack, $parstack, $parser, $safeeval, $style) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
if ($target eq 'web' || $target eq 'webgrade') { |
if ($target eq 'web' || $target eq 'webgrade') { |
$currentstring = $token->[4]; |
$currentstring = $token->[4]; |
} |
} |
if ($target eq 'tex') { |
if ($target eq 'tex') { |
# TODO: Ensure this tag is in a table: |
# TODO: Ensure this tag is in a table: |
|
|
Line 3549 sub end_colgroup {
|
Line 3549 sub end_colgroup {
|
my ($target,$token) = @_; |
my ($target,$token) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
if ($target eq 'web' || $target eq 'webgrade') { |
if ($target eq 'web' || $target eq 'webgrade') { |
$currentstring = $token->[2]; |
$currentstring = $token->[2]; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
Line 3560 sub start_del {
|
Line 3560 sub start_del {
|
my ($target,$token) = @_; |
my ($target,$token) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
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') { |
&disable_para(); |
&disable_para(); |
$currentstring .= '\st{'; |
$currentstring .= '\st{'; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
Line 3572 sub end_del {
|
Line 3572 sub end_del {
|
my ($target,$token) = @_; |
my ($target,$token) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
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') { |
&enable_para(); |
&enable_para(); |
$currentstring = '}'; |
$currentstring = '}'; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
Line 3585 sub start_fieldset {
|
Line 3585 sub start_fieldset {
|
my ($target,$token) = @_; |
my ($target,$token) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
if ($target eq 'web' || $target eq 'webgrade') { |
if ($target eq 'web' || $target eq 'webgrade') { |
$currentstring = $token->[4]; |
$currentstring = $token->[4]; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
Line 3594 sub end_fieldset {
|
Line 3594 sub end_fieldset {
|
my ($target,$token) = @_; |
my ($target,$token) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
if ($target eq 'web' || $target eq 'webgrade') { |
if ($target eq 'web' || $target eq 'webgrade') { |
$currentstring = $token->[2]; |
$currentstring = $token->[2]; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
Line 3604 sub start_frame {
|
Line 3604 sub start_frame {
|
my ($target,$token) = @_; |
my ($target,$token) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
if ($target eq 'web' || $target eq 'webgrade') { |
if ($target eq 'web' || $target eq 'webgrade') { |
$currentstring = $token->[4]; |
$currentstring = $token->[4]; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
Line 3613 sub end_frame {
|
Line 3613 sub end_frame {
|
my ($target,$token) = @_; |
my ($target,$token) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
if ($target eq 'web' || $target eq 'webgrade') { |
if ($target eq 'web' || $target eq 'webgrade') { |
$currentstring = $token->[2]; |
$currentstring = $token->[2]; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
Line 3648 sub start_iframe {
|
Line 3648 sub start_iframe {
|
$query.='&inhibitmenu=yes'; |
$query.='&inhibitmenu=yes'; |
} else { |
} else { |
$query = 'inhibitmenu=yes'; |
$query = 'inhibitmenu=yes'; |
} |
} |
$currentstring .= 'src="'.$url.'?'.$query.'" '; |
$currentstring .= 'src="'.$url.'?'.$query.'" '; |
} else { |
} else { |
$currentstring .= lc($attrib).'="'.$token->[2]->{$attrib}.'" '; |
$currentstring .= lc($attrib).'="'.$token->[2]->{$attrib}.'" '; |
Line 3692 sub end_iframe {
|
Line 3692 sub end_iframe {
|
my ($target,$token) = @_; |
my ($target,$token) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
if ($target eq 'web' || $target eq 'webgrade') { |
if ($target eq 'web' || $target eq 'webgrade') { |
$currentstring = $token->[2]; |
$currentstring = $token->[2]; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
Line 3702 sub start_ins {
|
Line 3702 sub start_ins {
|
my ($target,$token) = @_; |
my ($target,$token) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
if ($target eq 'web' || $target eq 'webgrade') { |
if ($target eq 'web' || $target eq 'webgrade') { |
$currentstring = $token->[4]; |
$currentstring = $token->[4]; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
Line 3711 sub end_ins {
|
Line 3711 sub end_ins {
|
my ($target,$token) = @_; |
my ($target,$token) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
if ($target eq 'web' || $target eq 'webgrade') { |
if ($target eq 'web' || $target eq 'webgrade') { |
$currentstring = $token->[2]; |
$currentstring = $token->[2]; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
Line 3721 sub start_isindex {
|
Line 3721 sub start_isindex {
|
my ($target,$token) = @_; |
my ($target,$token) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
if ($target eq 'web' || $target eq 'webgrade') { |
if ($target eq 'web' || $target eq 'webgrade') { |
$currentstring = $token->[4]; |
$currentstring = $token->[4]; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
Line 3730 sub end_isindex {
|
Line 3730 sub end_isindex {
|
my ($target,$token) = @_; |
my ($target,$token) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
if ($target eq 'web' || $target eq 'webgrade') { |
if ($target eq 'web' || $target eq 'webgrade') { |
$currentstring = $token->[2]; |
$currentstring = $token->[2]; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
Line 3740 sub start_keygen {
|
Line 3740 sub start_keygen {
|
my ($target,$token) = @_; |
my ($target,$token) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
if ($target eq 'web' || $target eq 'webgrade') { |
if ($target eq 'web' || $target eq 'webgrade') { |
$currentstring = $token->[4]; |
$currentstring = $token->[4]; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
Line 3749 sub end_keygen {
|
Line 3749 sub end_keygen {
|
my ($target,$token) = @_; |
my ($target,$token) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
if ($target eq 'web' || $target eq 'webgrade') { |
if ($target eq 'web' || $target eq 'webgrade') { |
$currentstring = $token->[2]; |
$currentstring = $token->[2]; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
Line 3759 sub start_label {
|
Line 3759 sub start_label {
|
my ($target,$token) = @_; |
my ($target,$token) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
if ($target eq 'web' || $target eq 'webgrade') { |
if ($target eq 'web' || $target eq 'webgrade') { |
$currentstring = $token->[4]; |
$currentstring = $token->[4]; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
Line 3768 sub end_label {
|
Line 3768 sub end_label {
|
my ($target,$token) = @_; |
my ($target,$token) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
if ($target eq 'web' || $target eq 'webgrade') { |
if ($target eq 'web' || $target eq 'webgrade') { |
$currentstring = $token->[2]; |
$currentstring = $token->[2]; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
Line 3778 sub start_layer {
|
Line 3778 sub start_layer {
|
my ($target,$token) = @_; |
my ($target,$token) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
if ($target eq 'web' || $target eq 'webgrade') { |
if ($target eq 'web' || $target eq 'webgrade') { |
$currentstring = $token->[4]; |
$currentstring = $token->[4]; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
Line 3787 sub end_layer {
|
Line 3787 sub end_layer {
|
my ($target,$token) = @_; |
my ($target,$token) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
if ($target eq 'web' || $target eq 'webgrade') { |
if ($target eq 'web' || $target eq 'webgrade') { |
$currentstring = $token->[2]; |
$currentstring = $token->[2]; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
Line 3797 sub start_legend {
|
Line 3797 sub start_legend {
|
my ($target,$token) = @_; |
my ($target,$token) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
if ($target eq 'web' || $target eq 'webgrade') { |
if ($target eq 'web' || $target eq 'webgrade') { |
$currentstring = $token->[4]; |
$currentstring = $token->[4]; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
Line 3806 sub end_legend {
|
Line 3806 sub end_legend {
|
my ($target,$token) = @_; |
my ($target,$token) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
if ($target eq 'web' || $target eq 'webgrade') { |
if ($target eq 'web' || $target eq 'webgrade') { |
$currentstring = $token->[2]; |
$currentstring = $token->[2]; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
Line 3819 sub start_link {
|
Line 3819 sub start_link {
|
my $href=&Apache::lonxml::get_param('href',$parstack,$safeeval, |
my $href=&Apache::lonxml::get_param('href',$parstack,$safeeval, |
undef,1); |
undef,1); |
&Apache::lonxml::extlink($href); |
&Apache::lonxml::extlink($href); |
$currentstring = $token->[4]; |
$currentstring = $token->[4]; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
Line 3828 sub end_link {
|
Line 3828 sub end_link {
|
my ($target,$token) = @_; |
my ($target,$token) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
if ($target eq 'web' || $target eq 'webgrade') { |
if ($target eq 'web' || $target eq 'webgrade') { |
$currentstring = $token->[2]; |
$currentstring = $token->[2]; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
Line 3838 sub start_marquee {
|
Line 3838 sub start_marquee {
|
my ($target,$token) = @_; |
my ($target,$token) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
if ($target eq 'web' || $target eq 'webgrade') { |
if ($target eq 'web' || $target eq 'webgrade') { |
$currentstring = $token->[4]; |
$currentstring = $token->[4]; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
Line 3847 sub end_marquee {
|
Line 3847 sub end_marquee {
|
my ($target,$token) = @_; |
my ($target,$token) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
if ($target eq 'web' || $target eq 'webgrade') { |
if ($target eq 'web' || $target eq 'webgrade') { |
$currentstring = $token->[2]; |
$currentstring = $token->[2]; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
Line 3857 sub start_multicol {
|
Line 3857 sub start_multicol {
|
my ($target,$token) = @_; |
my ($target,$token) = @_; |
my $currentstring = &end_p(); # Close any pending <p> |
my $currentstring = &end_p(); # Close any pending <p> |
if ($target eq 'web' || $target eq 'webgrade') { |
if ($target eq 'web' || $target eq 'webgrade') { |
$currentstring .= $token->[4]; |
$currentstring .= $token->[4]; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
Line 3866 sub end_multicol {
|
Line 3866 sub end_multicol {
|
my ($target,$token) = @_; |
my ($target,$token) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
if ($target eq 'web' || $target eq 'webgrade') { |
if ($target eq 'web' || $target eq 'webgrade') { |
$currentstring = $token->[2]; |
$currentstring = $token->[2]; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
Line 3876 sub start_nobr {
|
Line 3876 sub start_nobr {
|
my ($target,$token) = @_; |
my ($target,$token) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
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') { |
$currentstring='\mbox{'; |
$currentstring='\mbox{'; |
} |
} |
Line 3887 sub end_nobr {
|
Line 3887 sub end_nobr {
|
my ($target,$token) = @_; |
my ($target,$token) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
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') { |
$currentstring='}'; |
$currentstring='}'; |
} |
} |
Line 3899 sub start_noembed {
|
Line 3899 sub start_noembed {
|
my ($target,$token) = @_; |
my ($target,$token) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
if ($target eq 'web' || $target eq 'webgrade') { |
if ($target eq 'web' || $target eq 'webgrade') { |
$currentstring = $token->[4]; |
$currentstring = $token->[4]; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
Line 3908 sub end_noembed {
|
Line 3908 sub end_noembed {
|
my ($target,$token) = @_; |
my ($target,$token) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
if ($target eq 'web' || $target eq 'webgrade') { |
if ($target eq 'web' || $target eq 'webgrade') { |
$currentstring = $token->[2]; |
$currentstring = $token->[2]; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
Line 3918 sub start_noframes {
|
Line 3918 sub start_noframes {
|
my ($target,$token) = @_; |
my ($target,$token) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
if ($target eq 'web' || $target eq 'webgrade') { |
if ($target eq 'web' || $target eq 'webgrade') { |
$currentstring = $token->[4]; |
$currentstring = $token->[4]; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
Line 3927 sub end_noframes {
|
Line 3927 sub end_noframes {
|
my ($target,$token) = @_; |
my ($target,$token) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
if ($target eq 'web' || $target eq 'webgrade') { |
if ($target eq 'web' || $target eq 'webgrade') { |
$currentstring = $token->[2]; |
$currentstring = $token->[2]; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
Line 3937 sub start_nolayer {
|
Line 3937 sub start_nolayer {
|
my ($target,$token) = @_; |
my ($target,$token) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
if ($target eq 'web' || $target eq 'webgrade') { |
if ($target eq 'web' || $target eq 'webgrade') { |
$currentstring = $token->[4]; |
$currentstring = $token->[4]; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
Line 3946 sub end_nolayer {
|
Line 3946 sub end_nolayer {
|
my ($target,$token) = @_; |
my ($target,$token) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
if ($target eq 'web' || $target eq 'webgrade') { |
if ($target eq 'web' || $target eq 'webgrade') { |
$currentstring = $token->[2]; |
$currentstring = $token->[2]; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
Line 3956 sub start_noscript {
|
Line 3956 sub start_noscript {
|
my ($target,$token) = @_; |
my ($target,$token) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
if ($target eq 'web' || $target eq 'webgrade') { |
if ($target eq 'web' || $target eq 'webgrade') { |
$currentstring = $token->[4]; |
$currentstring = $token->[4]; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
Line 3965 sub end_noscript {
|
Line 3965 sub end_noscript {
|
my ($target,$token) = @_; |
my ($target,$token) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
if ($target eq 'web' || $target eq 'webgrade') { |
if ($target eq 'web' || $target eq 'webgrade') { |
$currentstring = $token->[2]; |
$currentstring = $token->[2]; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
Line 3975 sub start_object {
|
Line 3975 sub start_object {
|
my ($target,$token) = @_; |
my ($target,$token) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
if ($target eq 'web' || $target eq 'webgrade') { |
if ($target eq 'web' || $target eq 'webgrade') { |
$currentstring = $token->[4]; |
$currentstring = $token->[4]; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
Line 3984 sub end_object {
|
Line 3984 sub end_object {
|
my ($target,$token) = @_; |
my ($target,$token) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
if ($target eq 'web' || $target eq 'webgrade') { |
if ($target eq 'web' || $target eq 'webgrade') { |
$currentstring = $token->[2]; |
$currentstring = $token->[2]; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
Line 3994 sub start_optgroup {
|
Line 3994 sub start_optgroup {
|
my ($target,$token) = @_; |
my ($target,$token) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
if ($target eq 'web' || $target eq 'webgrade') { |
if ($target eq 'web' || $target eq 'webgrade') { |
$currentstring = $token->[4]; |
$currentstring = $token->[4]; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
Line 4003 sub end_optgroup {
|
Line 4003 sub end_optgroup {
|
my ($target,$token) = @_; |
my ($target,$token) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
if ($target eq 'web' || $target eq 'webgrade') { |
if ($target eq 'web' || $target eq 'webgrade') { |
$currentstring = $token->[2]; |
$currentstring = $token->[2]; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
Line 4013 sub start_samp {
|
Line 4013 sub start_samp {
|
my ($target,$token) = @_; |
my ($target,$token) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
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') { |
$currentstring='\texttt{'; |
$currentstring='\texttt{'; |
} |
} |
Line 4024 sub end_samp {
|
Line 4024 sub end_samp {
|
my ($target,$token) = @_; |
my ($target,$token) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
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') { |
$currentstring='}'; |
$currentstring='}'; |
} |
} |
Line 4036 sub start_server {
|
Line 4036 sub start_server {
|
my ($target,$token) = @_; |
my ($target,$token) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
if ($target eq 'web' || $target eq 'webgrade') { |
if ($target eq 'web' || $target eq 'webgrade') { |
$currentstring = $token->[4]; |
$currentstring = $token->[4]; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
Line 4045 sub end_server {
|
Line 4045 sub end_server {
|
my ($target,$token) = @_; |
my ($target,$token) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
if ($target eq 'web' || $target eq 'webgrade') { |
if ($target eq 'web' || $target eq 'webgrade') { |
$currentstring = $token->[2]; |
$currentstring = $token->[2]; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
Line 4055 sub start_spacer {
|
Line 4055 sub start_spacer {
|
my ($target,$token) = @_; |
my ($target,$token) = @_; |
my $currentstring = &end_p(); # Close off any open <p> tag. |
my $currentstring = &end_p(); # Close off any open <p> tag. |
if ($target eq 'web' || $target eq 'webgrade') { |
if ($target eq 'web' || $target eq 'webgrade') { |
$currentstring .= $token->[4]; |
$currentstring .= $token->[4]; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
Line 4064 sub end_spacer {
|
Line 4064 sub end_spacer {
|
my ($target,$token) = @_; |
my ($target,$token) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
if ($target eq 'web' || $target eq 'webgrade') { |
if ($target eq 'web' || $target eq 'webgrade') { |
$currentstring = $token->[2]; |
$currentstring = $token->[2]; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
Line 4076 sub start_span {
|
Line 4076 sub start_span {
|
my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
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') { |
my $endstring = ''; |
my $endstring = ''; |
my $family = &get_css_property('font-family',$parstack,$safeeval); |
my $family = &get_css_property('font-family',$parstack,$safeeval); |
Line 4103 sub end_span {
|
Line 4103 sub end_span {
|
my ($target,$token) = @_; |
my ($target,$token) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
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 $endstring = pop @span_end_stack; |
my $endstring = pop @span_end_stack; |
$currentstring .= $endstring; |
$currentstring .= $endstring; |
Line 4116 sub start_tbody {
|
Line 4116 sub start_tbody {
|
my ($target,$token) = @_; |
my ($target,$token) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
if ($target eq 'web' || $target eq 'webgrade') { |
if ($target eq 'web' || $target eq 'webgrade') { |
$currentstring = $token->[4]; |
$currentstring = $token->[4]; |
} |
} |
if ($target eq 'tex') { |
if ($target eq 'tex') { |
# TODO: Ensure this tag is within a table: |
# TODO: Ensure this tag is within a table: |
|
|
Line 4131 sub end_tbody {
|
Line 4131 sub end_tbody {
|
my ($target,$token) = @_; |
my ($target,$token) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
if ($target eq 'web' || $target eq 'webgrade') { |
if ($target eq 'web' || $target eq 'webgrade') { |
$currentstring = $token->[2]; |
$currentstring = $token->[2]; |
} |
} |
if($target eq 'tex') { |
if($target eq 'tex') { |
# TODO: Ensure this tag is within a table: |
# TODO: Ensure this tag is within a table: |
|
|
Line 4147 sub start_tfoot {
|
Line 4147 sub start_tfoot {
|
my ($target,$token) = @_; |
my ($target,$token) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
if ($target eq 'web' || $target eq 'webgrade') { |
if ($target eq 'web' || $target eq 'webgrade') { |
$currentstring = $token->[4]; |
$currentstring = $token->[4]; |
} |
} |
if ($target eq 'tex') { |
if ($target eq 'tex') { |
# TODO: ensure this is within a table tag. |
# TODO: ensure this is within a table tag. |
my $table = $Apache::londefdef::table[-1]; |
my $table = $Apache::londefdef::table[-1]; |
Line 4161 sub end_tfoot {
|
Line 4161 sub end_tfoot {
|
my ($target,$token) = @_; |
my ($target,$token) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
if ($target eq 'web' || $target eq 'webgrade') { |
if ($target eq 'web' || $target eq 'webgrade') { |
$currentstring = $token->[2]; |
$currentstring = $token->[2]; |
} |
} |
if ($target eq 'tex') { |
if ($target eq 'tex') { |
# TODO: Ensure this is in side a table |
# TODO: Ensure this is in side a table |
my $table = $Apache::londefdef::table[-1]; |
my $table = $Apache::londefdef::table[-1]; |
$table->end_foot(); |
$table->end_foot(); |
} |
} |
Line 4176 sub start_thead {
|
Line 4176 sub start_thead {
|
my ($target,$token) = @_; |
my ($target,$token) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
if ($target eq 'web' || $target eq 'webgrade') { |
if ($target eq 'web' || $target eq 'webgrade') { |
$currentstring = $token->[4]; |
$currentstring = $token->[4]; |
} |
} |
if ($target eq 'tex') { |
if ($target eq 'tex') { |
# Assume we're in a table... TODO: Verify that and ignore tag if not. |
# Assume we're in a table... TODO: Verify that and ignore tag if not. |
my $table = $Apache::londefdef::table[-1]; |
my $table = $Apache::londefdef::table[-1]; |
Line 4190 sub end_thead {
|
Line 4190 sub end_thead {
|
my ($target,$token) = @_; |
my ($target,$token) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
if ($target eq 'web' || $target eq 'webgrade') { |
if ($target eq 'web' || $target eq 'webgrade') { |
$currentstring = $token->[2]; |
$currentstring = $token->[2]; |
} |
} |
if ($target eq 'tex') { |
if ($target eq 'tex') { |
# TODO: Verify we are in a table and ignore tag if not. |
# TODO: Verify we are in a table and ignore tag if not. |
|
|
Line 4206 sub start_var {
|
Line 4206 sub start_var {
|
my ($target,$token) = @_; |
my ($target,$token) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
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') { |
$currentstring = '\textit{'; |
$currentstring = '\textit{'; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
Line 4219 sub end_var {
|
Line 4219 sub end_var {
|
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') { |
$currentstring = '}'; |
$currentstring = '}'; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
Line 4229 sub start_wbr {
|
Line 4229 sub start_wbr {
|
my ($target,$token) = @_; |
my ($target,$token) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
if ($target eq 'web' || $target eq 'webgrade') { |
if ($target eq 'web' || $target eq 'webgrade') { |
$currentstring = $token->[4]; |
$currentstring = $token->[4]; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
Line 4238 sub end_wbr {
|
Line 4238 sub end_wbr {
|
my ($target,$token) = @_; |
my ($target,$token) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
if ($target eq 'web' || $target eq 'webgrade') { |
if ($target eq 'web' || $target eq 'webgrade') { |
$currentstring = $token->[2]; |
$currentstring = $token->[2]; |
} |
} |
return $currentstring; |
return $currentstring; |
} |
} |
|
|
Line 4247 sub end_wbr {
|
Line 4247 sub end_wbr {
|
sub start_hideweboutput { |
sub start_hideweboutput { |
my ($target,$token) = @_; |
my ($target,$token) = @_; |
if ($target eq 'web' || $target eq 'webgrade') { |
if ($target eq 'web' || $target eq 'webgrade') { |
&Apache::lonxml::startredirection(); |
&Apache::lonxml::startredirection(); |
} |
} |
return ''; |
return ''; |
} |
} |
|
|
Line 4256 sub end_hideweboutput {
|
Line 4256 sub end_hideweboutput {
|
my ($target,$token) = @_; |
my ($target,$token) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
if ($target eq 'web' || $target eq 'webgrade') { |
if ($target eq 'web' || $target eq 'webgrade') { |
$currentstring = &Apache::lonxml::endredirection(); |
$currentstring = &Apache::lonxml::endredirection(); |
} |
} |
return ''; |
return ''; |
} |
} |
|
|
Line 4265 sub end_hideweboutput {
|
Line 4265 sub end_hideweboutput {
|
sub image_replication { |
sub image_replication { |
my $src = shift; |
my $src = shift; |
if (not -e $src) { &Apache::lonnet::repcopy($src); } |
if (not -e $src) { &Apache::lonnet::repcopy($src); } |
#replicates eps or ps |
#replicates eps or ps |
my $epssrc = my $pssrc = $src; |
my $epssrc = my $pssrc = $src; |
$epssrc =~ s/\.(gif|jpg|jpeg|png)$/.eps/i; |
$epssrc =~ s/\.(gif|jpg|jpeg|png)$/.eps/i; |
$pssrc =~ s/\.(gif|jpg|jpeg|png)$/.ps/i; |
$pssrc =~ s/\.(gif|jpg|jpeg|png)$/.ps/i; |
Line 4288 sub resize_image {
|
Line 4288 sub resize_image {
|
$width_param = $width_param * $scaling; |
$width_param = $width_param * $scaling; |
|
|
#do we have any specified LaTeX size of the picture? |
#do we have any specified LaTeX size of the picture? |
my $toget='TeXwidth'; |
my $toget='TeXwidth'; |
if ($cis) { |
if ($cis) { |
$toget=lc($toget); |
$toget=lc($toget); |
} |
} |
my $TeXwidth = &Apache::lonxml::get_param($toget,$parstack, |
my $TeXwidth = &Apache::lonxml::get_param($toget,$parstack, |
$safeeval,$depth,$cis); |
$safeeval,$depth,$cis); |
Line 4300 sub resize_image {
|
Line 4300 sub resize_image {
|
#do we have any specified web size of the picture? |
#do we have any specified web size of the picture? |
my $width = &Apache::lonxml::get_param('width',$parstack,$safeeval, |
my $width = &Apache::lonxml::get_param('width',$parstack,$safeeval, |
$depth,1); |
$depth,1); |
if ($TeXwidth) { |
if ($TeXwidth) { |
my $old_width_param=$width_param; |
my $old_width_param=$width_param; |
if ($TeXwidth=~/(\d+)\s*\%/) { |
if ($TeXwidth=~/(\d+)\s*\%/) { |
$width_param = $1*$env{'form.textwidth'}/100; |
$width_param = $1*$env{'form.textwidth'}/100; |
} else { |
} else { |
$width_param = $TeXwidth; |
$width_param = $TeXwidth; |
} |
} |
if ($TeXheight) { |
if ($TeXheight) { |
Line 4313 sub resize_image {
|
Line 4313 sub resize_image {
|
$height_param=$TeXwidth/$old_width_param*$height_param; |
$height_param=$TeXwidth/$old_width_param*$height_param; |
} |
} |
} elsif ($TeXheight) { |
} elsif ($TeXheight) { |
$height_param = $TeXheight; |
|
if ($height_param) { |
if ($height_param) { |
$width_param = $TeXheight/$height_param*$width_param; |
$width_param = $TeXheight/$height_param*$width_param; |
} |
} |
|
$height_param = $TeXheight; |
} elsif ($width) { |
} elsif ($width) { |
my $old_width_param=$width_param; |
my $old_width_param=$width_param; |
$width_param = $width*$scaling; |
$width_param = $width*$scaling; |
Line 4338 sub resize_image {
|
Line 4338 sub resize_image {
|
sub image_size { |
sub image_size { |
my ($src,$scaling,$parstack,$safeeval,$depth,$cis)=@_; |
my ($src,$scaling,$parstack,$safeeval,$depth,$cis)=@_; |
|
|
#size of image from gif/jpg/jpeg/png |
#size of image from gif/jpg/jpeg/png |
my $ressrc=&Apache::lonnet::filelocation($Apache::lonxml::pwd[-1],$src); |
my $ressrc=&Apache::lonnet::filelocation($Apache::lonxml::pwd[-1],$src); |
if (-e $ressrc) { |
if (-e $ressrc) { |
$src = $ressrc; |
$src = $ressrc; |
Line 4351 sub image_size {
|
Line 4351 sub image_size {
|
undef($image); |
undef($image); |
|
|
($height_param, $width_param) = &resize_image($height_param, $width_param, |
($height_param, $width_param) = &resize_image($height_param, $width_param, |
$scaling, $parstack, $safeeval, |
$scaling, $parstack, $safeeval, |
$depth, $cis); |
$depth, $cis); |
|
|
return ($height_param, $width_param); |
return ($height_param, $width_param); |
Line 4437 sub get_eps_image {
|
Line 4437 sub get_eps_image {
|
} |
} |
|
|
sub eps_generation { |
sub eps_generation { |
my ($src,$file,$width_param) = @_; |
my ($src,$file,$width_param) = @_; |
my $filename = "/home/httpd/prtspool/$env{'user.name'}_$env{'user.domain'}_printout.dat"; |
my $filename = "/home/httpd/prtspool/$env{'user.name'}_$env{'user.domain'}_printout.dat"; |
if (open(my $tmpfile,">>$filename")) { |
if (open(my $tmpfile,">>$filename")) { |
print $tmpfile "$src\n"; |
print $tmpfile "$src\n"; |
close($tmpfile); |
close($tmpfile); |
} |
} |
Line 4460 sub eps_generation {
|
Line 4460 sub eps_generation {
|
} |
} |
} |
} |
|
|
sub file_path { |
sub file_path { |
my $src=shift; |
my $src=shift; |
my ($file,$path); |
my ($file,$path); |
if ($src =~ m!(.*)/([^/]*)$!) { |
if ($src =~ m!(.*)/([^/]*)$!) { |
$file = $2; |
$file = $2; |
$path = $1.'/'; |
$path = $1.'/'; |
} |
} |
return $file,$path; |
return $file,$path; |
} |
} |
|
|
Line 4492 sub recalc {
|
Line 4492 sub recalc {
|
sub LATEX_length { |
sub LATEX_length { |
my $garbage=shift; |
my $garbage=shift; |
$garbage=~s/^\s+$//; |
$garbage=~s/^\s+$//; |
$garbage=~s/^\s+(\S.*)/$1/;#space before |
$garbage=~s/^\s+(\S.*)/$1/;#space before |
$garbage=~s/(.*\S)\s+$/$1/;#space after |
$garbage=~s/(.*\S)\s+$/$1/;#space after |
$garbage=~s/(\s)+/$1/;#only one space |
$garbage=~s/(\s)+/$1/;#only one space |
$garbage=~s/(\\begin\{([^\}]+)}|\\end\{([^\}]+)})//g;#remove LaTeX \begin{...} and \end{...} |
$garbage=~s/(\\begin\{([^\}]+)}|\\end\{([^\}]+)})//g;#remove LaTeX \begin{...} and \end{...} |
$garbage=~s/(\$\_\{|\$\_|\$\^\{|\$\^|\}\$)//g;#remove $_{,$_,$^{,$^,}$ |
$garbage=~s/(\$\_\{|\$\_|\$\^\{|\$\^|\}\$)//g;#remove $_{,$_,$^{,$^,}$ |
Line 4507 sub LATEX_length {
|
Line 4507 sub LATEX_length {
|
$garbage=~s/(\\aleph|\\hbar|\\imath|\\jmath|\\ell|\\wp|\\Re|\\Im|\\mho|\\prime|\\emptyset|\\nabla|\\surd|\\partial|\\top|\\bot|\\vdash|\\dashv|\\forall|\\exists|\\neg|\\flat|\\natural|\\sharp|\\\||\\angle|\\backslash|\\Box|\\Diamond|\\triangle|\\clubsuit|\\diamondsuit|\\heartsuit|\\spadesuit|\\Join|\\infty)/11/g; |
$garbage=~s/(\\aleph|\\hbar|\\imath|\\jmath|\\ell|\\wp|\\Re|\\Im|\\mho|\\prime|\\emptyset|\\nabla|\\surd|\\partial|\\top|\\bot|\\vdash|\\dashv|\\forall|\\exists|\\neg|\\flat|\\natural|\\sharp|\\\||\\angle|\\backslash|\\Box|\\Diamond|\\triangle|\\clubsuit|\\diamondsuit|\\heartsuit|\\spadesuit|\\Join|\\infty)/11/g; |
$garbage=~s/(\\hat\{([^}]+)}|\\check\{([^}]+)}|\\dot\{([^}]+)}|\\breve\{([^}]+)}|\\acute\{([^}]+)}|\\ddot\{([^}]+)}|\\grave\{([^}]+)}|\\tilde\{([^}]+)}|\\mathring\{([^}]+)}|\\bar\{([^}]+)}|\\vec\{([^}]+)})/$1/g; |
$garbage=~s/(\\hat\{([^}]+)}|\\check\{([^}]+)}|\\dot\{([^}]+)}|\\breve\{([^}]+)}|\\acute\{([^}]+)}|\\ddot\{([^}]+)}|\\grave\{([^}]+)}|\\tilde\{([^}]+)}|\\mathring\{([^}]+)}|\\bar\{([^}]+)}|\\vec\{([^}]+)})/$1/g; |
#remove some other LaTeX command |
#remove some other LaTeX command |
$garbage=~s|\\(\w+)\\|\\|g; |
$garbage=~s|\\(\w+)\\|\\|g; |
$garbage=~s|\\(\w+)(\s*)|$2|g; |
$garbage=~s|\\(\w+)(\s*)|$2|g; |
$garbage=~s|\+|11|g; |
$garbage=~s|\+|11|g; |
my $value=length($garbage); |
my $value=length($garbage); |
return $value; |
return $value; |
Line 4528 sub align_latex_image {
|
Line 4528 sub align_latex_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, |
# and that's used for illegal values too. |
# and that's used for illegal values too. |
# |
# |
# Even though we set a default alignment value, the user |
# Even though we set a default alignment value, the user |
# could have given us an illegal value. In that case we |
# could have given us an illegal value. In that case we |
# just use the default alignment of bottom.. |
# just use the default alignment of bottom.. |
Line 4541 sub align_latex_image {
|
Line 4541 sub align_latex_image {
|
my $offset = $height/2; |
my $offset = $height/2; |
$currentstring .= '\raisebox{-'.$offset.'mm}{'.$image; |
$currentstring .= '\raisebox{-'.$offset.'mm}{'.$image; |
$closure = '}'; |
$closure = '}'; |
} elsif ($align eq "left") { |
} elsif ($align eq "left") { |
if ($latex_rendering eq "parpic") { |
if ($latex_rendering eq "parpic") { |
$currentstring .= '\parpic[l]{'.$image; |
$currentstring .= '\parpic[l]{'.$image; |
$closure = '}'; |
$closure = '}'; |
} elsif ($latex_rendering eq "parbox") { |
} elsif ($latex_rendering eq "parbox") { |
Line 4551 sub align_latex_image {
|
Line 4551 sub align_latex_image {
|
$closure = '\end{minipage}'; |
$closure = '\end{minipage}'; |
} elsif ($latex_rendering eq "wrapfigure" |
} elsif ($latex_rendering eq "wrapfigure" |
|| $latex_rendering ne 'none') { # wrapfig render |
|| $latex_rendering ne 'none') { # wrapfig render |
$currentstring .= |
$currentstring .= |
'\begin{wrapfigure}{l}{'.$width.'mm}' |
'\begin{wrapfigure}{l}{'.$width.'mm}' |
.'\scalebox{1.0}{'.$image; |
.'\scalebox{1.0}{'.$image; |
$closure = '}\end{wrapfigure}'; |
$closure = '}\end{wrapfigure}'; |
} |
} |
} elsif ($align eq "right") { |
} elsif ($align eq "right") { |
if ($latex_rendering eq "parpic") { |
if ($latex_rendering eq "parpic") { |
$currentstring .= '\parpic[r]{'.$image; |
$currentstring .= '\parpic[r]{'.$image; |
$closure = '}'; |
$closure = '}'; |
Line 4566 sub align_latex_image {
|
Line 4566 sub align_latex_image {
|
$closure = '\end{minipage}'; |
$closure = '\end{minipage}'; |
} elsif ($latex_rendering eq "wrapfigure" |
} elsif ($latex_rendering eq "wrapfigure" |
|| $latex_rendering ne 'none') { # wrapfig render |
|| $latex_rendering ne 'none') { # wrapfig render |
$currentstring .= |
$currentstring .= |
'\begin{wrapfigure}{r}{'.$width.'mm}' |
'\begin{wrapfigure}{r}{'.$width.'mm}' |
.'\scalebox{1.0}{'.$image; |
.'\scalebox{1.0}{'.$image; |
$closure = '}\end{wrapfigure}'; |
$closure = '}\end{wrapfigure}'; |
Line 4599 sub latex_header {
|
Line 4599 sub latex_header {
|
my ($mode) = @_; |
my ($mode) = @_; |
my $currentstring = ''; |
my $currentstring = ''; |
|
|
$currentstring .= |
$currentstring .= |
"\n% &Apache::lonxml::londefdef \n" . |
"\n% &Apache::lonxml::londefdef \n" . |
'\documentclass[letterpaper,twoside]{article}\raggedbottom'; |
'\documentclass[letterpaper,twoside]{article}\raggedbottom'; |
if (($env{'form.latex_type'}=~'batchmode') || |
if (($env{'form.latex_type'}=~'batchmode') || |
(!$env{'request.role.adv'}) || |
(!$env{'request.role.adv'}) || |
($mode eq 'batchmode')) {$currentstring .='\batchmode';} |
($mode eq 'batchmode')) {$currentstring .='\batchmode';} |
$currentstring .= '\newcommand{\keephidden}[1]{}'. |
$currentstring .= '\newcommand{\keephidden}[1]{}'. |
'\renewcommand{\deg}{$^{\circ}$}'. |
'\renewcommand{\deg}{$^{\circ}$}'. |
'\usepackage{multirow}'."\n". |
'\usepackage{multirow}'."\n". |
Line 4639 sub latex_header {
|
Line 4639 sub latex_header {
|
$currentstring .= '\usepackage{hyperref}'. |
$currentstring .= '\usepackage{hyperref}'. |
'\usepackage{eforms}'. |
'\usepackage{eforms}'. |
'\usepackage{tabularx}'; |
'\usepackage{tabularx}'; |
} |
} |
|
|
$currentstring .= '\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}}'. |
$currentstring .= '\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}}'; |
'\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}}'; |
$currentstring .= '\begin{document}'; |
$currentstring .= '\begin{document}'; |
|
|
return $currentstring; |
return $currentstring; |
|
|
} |
} |
Line 4673 sub clean_docs_httpref {
|
Line 4673 sub clean_docs_httpref {
|
return $cleanhref; |
return $cleanhref; |
} |
} |
} else { |
} else { |
if ($href =~ m{/}) { |
if ($href =~ m{/}) { |
(my $path,$fname) = ($href =~ m{^(.*)/([^/]*)$}); |
(my $path,$fname) = ($href =~ m{^(.*)/([^/]*)$}); |
$hrefpath = $relpath.$path; |
$hrefpath = $relpath.$path; |
if ($path eq '') { |
if ($path eq '') { |
Line 4752 described at http://www.lon-capa.org.
|
Line 4752 described at http://www.lon-capa.org.
|
it's initial ht. and wid. This allows sizing of |
it's initial ht. and wid. This allows sizing of |
images that are generated on-the-fly (e.g. gnuplot) |
images that are generated on-the-fly (e.g. gnuplot) |
as well as serving as a utility for image_size. |
as well as serving as a utility for image_size. |
|
|
Parameter: |
Parameter: |
height_param |
height_param |
width_param - Initial picture dimensions. |
width_param - Initial picture dimensions. |
scaling - A scale factor. |
scaling - A scale factor. |
parstack, - the current stack of tag attributes |
parstack, - the current stack of tag attributes |
from the xml parser |
from the xml parser |
safeeval, - pointer to the safespace |
safeeval, - pointer to the safespace |
depth, - from what level in the stack to look for attributes |
depth, - from what level in the stack to look for attributes |
Line 4782 described at http://www.lon-capa.org.
|
Line 4782 described at http://www.lon-capa.org.
|
|
|
=item recalc() |
=item recalc() |
|
|
Converts a measurement in to mm from any of |
Converts a measurement in to mm from any of |
the other valid LaTeX units of measure. |
the other valid LaTeX units of measure. |
If the units of measure are missing from the |
If the units of measure are missing from the |
parameter, it is assumed to be in and returned |
parameter, it is assumed to be in and returned |
with mm units of measure |
with mm units of measure |
|
|
Line 4792 described at http://www.lon-capa.org.
|
Line 4792 described at http://www.lon-capa.org.
|
|
|
=item align_latex_image() |
=item align_latex_image() |
|
|
Wrap image 'stuff' inside of the LaTeX required to implement |
Wrap image 'stuff' inside of the LaTeX required to implement |
alignment: |
alignment: |
align_tex_image(align, latex_rendering, image) |
align_tex_image(align, latex_rendering, image) |
Where: |
Where: |
Line 4807 described at http://www.lon-capa.org.
|
Line 4807 described at http://www.lon-capa.org.
|
|
|
|
|
=item is_inside_of($tagstack, $tag) |
=item is_inside_of($tagstack, $tag) |
This sub returns true if the current state of Xml processing is inside of the tag. |
This sub returns true if the current state of Xml processing is inside of the tag. |
Parameters: |
Parameters: |
tagstack - The tagstack from the parser. |
tagstack - The tagstack from the parser. |
tag - The tag (without the <>'s.). |
tag - The tag (without the <>'s.). |
Line 4822 described at http://www.lon-capa.org.
|
Line 4822 described at http://www.lon-capa.org.
|
and PosterImageSrc) for which dependency is another file uploaded to the same |
and PosterImageSrc) for which dependency is another file uploaded to the same |
course. |
course. |
|
|
Required input: |
Required input: |
href - dependency (either a relative URL, or an absolute URL) |
href - dependency (either a relative URL, or an absolute URL) |
Optional inputs: |
Optional inputs: |
docuri - URL of HTML page containing the dependency |
docuri - URL of HTML page containing the dependency |