commit 6dd80fa1966fb780c8db09517ad858896fe45d56
parent 3dfd100a64984d6d6b77053f922b7c566752e56e
Author: Davide P. Cervone <dpvc@union.edu>
Date: Tue, 9 Nov 2010 11:15:45 -0500
issue #18: resolve conflict between jsMath2jax and tex2jax both processing the same equation
Diffstat:
3 files changed, 40 insertions(+), 8 deletions(-)
diff --git a/mathjax/extensions/jsMath2jax.js b/mathjax/extensions/jsMath2jax.js
@@ -13,6 +13,6 @@
*/
MathJax.Unpack([
- ['MathJax.Extension.jsMath2jax','={version:"1.0",config:{element:null,','preview',':"TeX"},','PreProcess',':function(','b){if(!','this.configured','){','MathJax.Hub.','Insert(this','.config,(',9,'config.jsMath2jax||{}));if(','this.config.','Augment','){',9,10,',',14,15,')}','if(typeof(',14,'previewTeX',')!=="undefined"&&!',14,25,'){',14,2,'="none"}this.previewClass=',9,'config.preRemoveClass',';',7,'=true}',23,'b)==="string"){b=document.getElementById(b)}if(!b){b=',14,'element||document.body}var c','=b.getElementsByTagName("','span"),a;for(a=c','.length-1;a>=0;a--){if(String(','c','[a].className).match(/(^| )math( |$)/)){this.ConvertMath(','c[a],"")}}var d',42,'div");for(a=d',44,'d',46,'d[a],"; mode=display")}}},ConvertMath',5,'c,d){var b=c','.parentNode',',a=this.','createMathTag','(d,c.innerHTML);if(c.nextSibling){b','.insertBefore(','a,c.nextSibling)}else{b.appendChild(a)}if(',14,2,'!=="none"){this.','createPreview','(c)}b.removeChild(c)},',65,5,'a){var b;if(',14,2,'==="TeX"){b=[this.filterTeX(a.innerHTML)]}else{if(',14,2,' instanceof Array){b=',14,2,'}}if(b){b=MathJax.HTML.Element("span",{className:',9,34,'},b);a',56,60,'b,a)}},',58,5,'c,b){b=b.replace(/</g,"<").replace(/>/g,">").replace(/&/g,"&");var a=document.createElement("script");a.type="math/tex"+c;if(',9,'Browser.isMSIE){a.text=b}else{a.appendChild(document.createTextNode(b))}return a},filterTeX',5,'a){return a}};',9,'Register.PreProcessor(["',4,'",',0,']);MathJax.Ajax.loadComplete("[MathJax]/extensions/jsMath2jax.js");']
+ ['MathJax.Extension.jsMath2jax','={version:"1.0.1",config:{element:null,','preview',':"TeX"},','PreProcess',':function(','b){if(!','this.configured','){','MathJax.Hub.','Insert(this','.config,(',9,'config.jsMath2jax||{}));if(','this.config.','Augment','){',9,10,',',14,15,')}','if(typeof(',14,'previewTeX',')!=="undefined"&&!',14,25,'){',14,2,'="none"}this.previewClass=',9,'config.preRemoveClass',';',7,'=true}',23,'b)==="string"){b=document.getElementById(b)}if(!b){b=',14,'element||document.body}var c=b','.getElementsByTagName("','span"),a;for(a=c','.length-1;a>=0;a--){if(String(','c','[a].className).match(/(^| )math( |$)/)){this.ConvertMath(','c[a],"")}}var d=b',42,'div");for(a=d',44,'d',46,'d[a],"; mode=display")}}},ConvertMath',5,'c,d){if(c',42,'script").length===0){var b=c','.parentNode',',a=this.','createMathTag','(d,c.innerHTML);if(c.nextSibling){b','.insertBefore(','a,c.nextSibling)}else{b.appendChild(a)}if(',14,2,'!=="none"){this.','createPreview','(c)}b.removeChild(c)}},',67,5,'a){var b;if(',14,2,'==="TeX"){b=[this.filterTeX(a.innerHTML)]}else{if(',14,2,' instanceof Array){b=',14,2,'}}if(b){b=MathJax.HTML.Element("span",{className:',9,34,'},b);a',58,62,'b,a)}},',60,5,'c,b){b=b.replace(/</g,"<").replace(/>/g,">").replace(/&/g,"&");var a=document.createElement("script");a.type="math/tex"+c;if(',9,'Browser.isMSIE){a.text=b}else{a.appendChild(document.createTextNode(b))}return a},filterTeX',5,'a){return a}};',9,'Register.PreProcessor(["',4,'",',0,']);MathJax.Ajax.loadComplete("[MathJax]/extensions/jsMath2jax.js");']
]);
diff --git a/mathjax/unpacked/extensions/jsMath2jax.js b/mathjax/unpacked/extensions/jsMath2jax.js
@@ -31,7 +31,7 @@
*/
MathJax.Extension.jsMath2jax = {
- version: "1.0",
+ version: "1.0.1",
config: {
element: null, // The ID of the element to be processed
@@ -62,12 +62,14 @@ MathJax.Extension.jsMath2jax = {
},
ConvertMath: function (node,mode) {
- var parent = node.parentNode,
- script = this.createMathTag(mode,node.innerHTML);
- if (node.nextSibling) {parent.insertBefore(script,node.nextSibling)}
- else {parent.appendChild(script)}
- if (this.config.preview !== "none") {this.createPreview(node)}
- parent.removeChild(node);
+ if (node.getElementsByTagName("script").length === 0) {
+ var parent = node.parentNode,
+ script = this.createMathTag(mode,node.innerHTML);
+ if (node.nextSibling) {parent.insertBefore(script,node.nextSibling)}
+ else {parent.appendChild(script)}
+ if (this.config.preview !== "none") {this.createPreview(node)}
+ parent.removeChild(node);
+ }
},
createPreview: function (node) {
diff --git a/test/jsMath2jax.html b/test/jsMath2jax.html
@@ -0,0 +1,30 @@
+<html>
+<head>
+<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" >
+<title>jsMath2jax Test</title>
+<script src="../mathjax/unpacked/MathJax.js">
+ MathJax.Hub.Config({
+ jax: ["input/TeX","output/HTML-CSS"],
+ extensions: ["tex2jax.js","jsMath2jax.js"]
+ });
+</script>
+</head>
+<body>
+
+\begin{eqnarray}
+ x & = & 4y + 3z \\
+ z & > & a + b + ... + j + \\
+ & & k + l + m
+ \end{eqnarray}
+
+<div class="math">
+\begin{eqnarray}
+ x & = & 4y + 3z \\
+ z & > & a + b + ... + j + \\
+ & & k + l + m
+ \end{eqnarray}
+
+</div>
+
+</body>
+</html>