version 1.55, 2009/05/14 10:57:40
|
version 1.58, 2016/08/09 23:43:42
|
Line 39 BEGIN {
|
Line 39 BEGIN {
|
&Apache::lonxml::register('Apache::outputtags',('displayduedate','displaytitle','displayweight','displaystudentphoto')); |
&Apache::lonxml::register('Apache::outputtags',('displayduedate','displaytitle','displayweight','displaystudentphoto')); |
} |
} |
|
|
|
################################ utilities ########################### |
|
|
|
# |
|
# Does a simple substitution of a tab when the opening tag can |
|
# be replaced by a fixed string.. and same for the closing tag. |
|
# Parameters: |
|
# $input - String in in which to do the substitutions. |
|
# $tag - name of tag without the <>'s e.g. sub for <sub></sub> |
|
# $opening - What to replace <$tag> with |
|
# $closing - What to replace </$tag> with. |
|
# Returns: |
|
# Input string appropriately substituted. |
|
# |
|
sub substitute_tag { |
|
my ($input, |
|
$tag, |
|
$opening, |
|
$closing) = @_; |
|
|
|
$input =~ s/<$tag>/$opening/gi; |
|
$input =~ s/<\/$tag>/$closing/gi; |
|
|
|
return $input; |
|
} |
|
|
|
# |
|
# Substitutes the simple formatting tags in a string |
|
# Parameters: |
|
# $string - input string. |
|
# Returns |
|
# Result of string after simple substitutions |
|
# Tags we handle are: |
|
# <sub>, <sup> <em> |
|
# |
|
sub substitute_simple_tags_latex { |
|
my ($string) = @_; |
|
|
|
# restore the <>'s: |
|
|
|
$string =~ s/\\ensuremath\{<}/</g; |
|
$string =~ s/\\ensuremath\{>}/>/g; |
|
|
|
|
|
# Substitute the tags: |
|
|
|
$string = &substitute_tag($string, "sub", '\ensuremath{_', '}'); |
|
$string = &substitute_tag($string, 'sup', '\ensuremath{^', '}'); |
|
$string = &substitute_tag($string, 'em', '\em{', '}'); |
|
|
|
|
|
# Escape the remaining <>'s again: |
|
|
|
$string =~ s/</\\ensuremath{<}/g; |
|
$string =~ s/>/\\ensuremath{>}/g; |
|
|
|
|
|
|
|
return $string; |
|
} |
|
|
|
################################ The parser ########################## |
|
|
sub initialize_outputtags { |
sub initialize_outputtags { |
%Apache::outputtags::showonce=(); |
%Apache::outputtags::showonce=(); |
} |
} |
|
|
|
|
|
|
sub start_displayduedate { |
sub start_displayduedate { |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_; |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_; |
my $result; |
my $result; |
Line 108 sub start_displayduedate {
|
Line 171 sub start_displayduedate {
|
# at the start of the line to ensure it won't overlap |
# at the start of the line to ensure it won't overlap |
# the 1 col boundary. |
# the 1 col boundary. |
|
|
$result = '\\\\ \framebox{' |
$result = '\vspace{1.0 ex} \framebox{' |
.&mt('Due').' '.$duetext.'}'; |
.&mt('Due').' '.$duetext.'}'; |
} else { |
} else { |
$result = &mt('Due') . ' '.$duetext; |
$result = &mt('Due') . ' '.$duetext; |
Line 152 sub start_displaytitle {
|
Line 215 sub start_displaytitle {
|
$result.=&Apache::edit::end_table(); |
$result.=&Apache::edit::end_table(); |
} elsif ($target eq 'tex' and $Apache::lonhomework::type ne 'exam') { |
} elsif ($target eq 'tex' and $Apache::lonhomework::type ne 'exam') { |
$name=&Apache::lonxml::latex_special_symbols($name); |
$name=&Apache::lonxml::latex_special_symbols($name); |
|
$name = &substitute_simple_tags_latex($name); |
if (lc($style) !~ 'plain') { |
if (lc($style) !~ 'plain') { |
$result='\vskip 0 mm\noindent\textbf{'.$name.'}\vskip 0 mm'; |
$result='\vskip 0 mm\noindent\textbf{'.$name.'}\vskip 0 mm'; |
} else { |
} else { |