version 1.133, 2006/03/09 01:04:43
|
version 1.134, 2006/03/15 00:08:53
|
Line 481 sub displayfoils {
|
Line 481 sub displayfoils {
|
} |
} |
|
|
|
|
|
# Correct a single option list element. |
|
# - For embedded <display></display> tags, |
|
# we pass literally the stuff between them. |
|
# - For everything else, we run through latex_special_symbols |
|
# so that any symbols that have meaning to LaTeX will be |
|
# correctly escaped. |
|
# |
|
sub correct_option { |
|
my $option = shift; |
|
|
|
|
|
# There's probably a beter way with perl if I was |
|
# more of a regexp wiz..(RF). |
|
|
|
my $strlen = length($option); |
|
my $here = 0; # Where to start searching for <display></display> |
|
my $result =""; # The return string is built here. |
|
|
|
while ($here < $strlen) { |
|
# look for an opening <display> tag: |
|
|
|
my $openloc = index($option, "<display>", $here); |
|
if ($openloc == -1) { |
|
# No more... operate with latex_special_symbols on |
|
# the rest of the string. |
|
|
|
$result .= &Apache::lonxml::latex_special_symbols(substr($option, $here)); |
|
return $result; |
|
} else { |
|
# Need to pass the string up to the <display> tag |
|
# through l_s_s ... |
|
$result .= &Apache::lonxml::latex_special_symbols(substr($option, $here, $openloc-$here)); |
|
} |
|
# look for the closing </display> tag... |
|
# We're a bit stupid..or tolerant... |
|
# in that if the user forgets the </display> tag |
|
# we infer they intended one at the end of the option. |
|
$openloc += 9; # 9 chars in <display> |
|
|
|
my $closeloc = index($option, "</display>", $openloc); # 9 chars in <display> |
|
if ($closeloc == -1) { |
|
$closeloc = $strlen + 9; # 10chars in </display> faked off end. |
|
} |
|
# Pass from openloc through closeloc without any interpretation: |
|
|
|
&Apache::lonnet::logthis("Segment inside display: $openloc through $closeloc"); |
|
$result .= substr($option, $openloc, $closeloc - $openloc); |
|
$here = $closeloc + 10; # Next search is after the </display> |
|
} |
|
|
|
return $result; |
|
|
|
# return &Apache::lonxml::latex_special_symbols($option); |
|
} |
|
|
|
# Correct the option list elements so that if there |
|
# are special symbosl that have meaning to LaTeX |
|
# they get fixed up to display correctly. |
|
|
sub optionlist_correction { |
sub optionlist_correction { |
my ($TeXlayout,@options) = @_; |
my ($TeXlayout,@options) = @_; |
my $texoptionlist='\\item [] Choices: '; |
my $texoptionlist='\\item [] Choices: '; |
Line 488 sub optionlist_correction {
|
Line 547 sub optionlist_correction {
|
if (scalar(@options) > 0) { |
if (scalar(@options) > 0) { |
foreach my $option (@options) { |
foreach my $option (@options) { |
$texoptionlist.='{\bf '. |
$texoptionlist.='{\bf '. |
&Apache::lonxml::latex_special_symbols($option). |
&correct_option($option). |
'}'; |
'}'; |
if ($TeXlayout eq 'vertical') { |
if ($TeXlayout eq 'vertical') { |
$texoptionlist.=' \vskip 0 mm ', |
$texoptionlist.=' \vskip 0 mm ', |