--- loncom/xml/londefdef.pm 2011/10/01 03:19:06 1.434
+++ loncom/xml/londefdef.pm 2023/10/06 17:48:55 1.456.2.6.2.2
@@ -1,8 +1,7 @@
-
# The LearningOnline Network with CAPA
# Tags Default Definition Module
#
-# $Id: londefdef.pm,v 1.434 2011/10/01 03:19:06 raeburn Exp $
+# $Id: londefdef.pm,v 1.456.2.6.2.2 2023/10/06 17:48:55 raeburn Exp $
#
#
# Copyright Michigan State University Board of Trustees
@@ -56,7 +55,7 @@ use LONCAPA();
BEGIN {
- &Apache::lonxml::register('Apache::londefdef',('a','abbr','acronym','accessrule','address','allow','applet','area','b','base','basefont','bgo','bgsound','big','blink','blockquote','blankspace','body','br','button','caption','center','cite','code','col','colgroup','dd','del','dfn','dir','div','dl','dt','em','embed','externallink','fieldset','font','form','frame','frameset','h1','h2','h3','h4','h5','h6','head','hr','html','i','iframe','img','input','ins','insert','isindex','kbd','keygen','label','layer','legend','li','link','m','map','marquee','menu','meta','multicol','nobr','noembed','noframes','nolayer','noscript','object','ol','optgroup','option','output','p','param','pre','q','s','samp','select','server','small','spacer','span','strike','strong','sub','sup','table','tbody','td','textarea','tfoot','th','thead','title','tr','tt','tthoption','u','ul','var','wbr','hideweboutput'));
+ &Apache::lonxml::register('Apache::londefdef',('a','abbr','acronym','accessrule','address','allow','applet','area','b','base','basefont','bgo','bgsound','big','blink','blockquote','blankspace','body','br','button','caption','center','cite','code','col','colgroup','dd','del','dfn','dir','div','dl','dt','em','embed','externallink','fieldset','font','form','frame','frameset','h1','h2','h3','h4','h5','h6','head','hr','html','i','iframe','img','input','ins','insert','isindex','kbd','keygen','label','layer','legend','li','link','m','map','marquee','menu','meta','multicol','nobr','noembed','noframes','nolayer','noscript','object','ol','optgroup','option','output','p','param','pre','q','s','samp','select','server','small','spacer','span','strike','strong','style','sub','sup','table','tbody','td','textarea','tfoot','th','thead','title','tr','tt','tthoption','u','ul','var','wbr','hideweboutput'));
}
@@ -93,6 +92,26 @@ sub start_m {
my $inside = &Apache::lonxml::get_all_text_unbalanced("/m",$parser);
if ($target eq 'web' || $target eq 'analyze') {
&Apache::lonxml::debug("M is starting with:$inside:");
+ if (!($inside =~ /^\s*\$.*\$\s*$/ || $inside =~ /^\s*\\[([].*\\[)\]]\s*$/)) {
+ # Non-math LaTeX will not be rendered correctly with MathJax
+ # and it should be avoided anyway.
+ # On top of that, MathJax will render math without $, but
+ # it will fail with tth. This is worth a warning.
+ # (even though some people might just use latex for printing)
+ &Apache::lonxml::warning(&mt('Missing $ in [_1].','<m>'));
+ } elsif (($env{'browser.type'} eq 'safari') && ($env{'form.editxmltext'}) &&
+ (($env{'form.problemmode'} eq 'view') || ($env{'form.problemmode'} eq 'discard'))) {
+ my $delimiter;
+ if ($inside =~ /\$$/) {
+ $delimiter = '$';
+ } elsif ($inside =~ /\\([)\]])$/) {
+ $delimiter = $1;
+ }
+ if ($delimiter) {
+ &Apache::lonxml::warning(&mt('Insert a space between [_1] and [_2].',
+ $delimiter,'</m>'));
+ }
+ }
my $eval=&Apache::lonxml::get_param('eval',$parstack,$safeeval);
if ($eval eq 'on') {
$inside=&Apache::run::evaluate($inside,$safeeval,$$parstack[-1]);
@@ -348,7 +367,7 @@ sub start_title {
$Apache::londefdef::title =
&Apache::lonxml::get_all_text('/title',$parser,$style);
} elsif ($target eq 'tex') {
- $currentstring .= '\keephidden{Title of the document: '
+ $currentstring .= '\keephidden{Title of the document: ';
}
if ($target eq 'meta') {
$currentstring='