diff --git a/unpacked/extensions/MathML/content-mathml.js b/unpacked/extensions/MathML/content-mathml.js
index b1846603f..a6cf174d1 100644
--- a/unpacked/extensions/MathML/content-mathml.js
+++ b/unpacked/extensions/MathML/content-mathml.js
@@ -190,7 +190,18 @@ MathJax.Extension["MathML/content-mathml"] = (function(HUB) {
*/
appendToken: function(parentNode,name,textContent) {
var element = CToP.createElement(name);
- element.appendChild(document.createTextNode(textContent));
+ if (name === 'mn' && textContent.substr(0,1) === "-") {
+ //
+ // use −n instead of -n
+ //
+ element.appendChild(document.createTextNode(textContent.substr(1)));
+ var mrow = CToP.createElement('mrow');
+ CToP.appendToken(mrow,'mo','\u2212');
+ mrow.appendChild(element);
+ element = mrow;
+ } else {
+ element.appendChild(document.createTextNode(textContent));
+ }
parentNode.appendChild(element);
return element;
},
diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js
index 6c9e54f93..724a5b878 100644
--- a/unpacked/jax/output/CommonHTML/jax.js
+++ b/unpacked/jax/output/CommonHTML/jax.js
@@ -1794,8 +1794,9 @@
/********************************************************/
MML.mn.Augment({
+ CHTMLremapMinus: function (text) {return text.replace(/^-/,"\u2212")},
toCommonHTML: function (node) {
- node = this.CHTMLdefaultNode(node);
+ node = this.CHTMLdefaultNode(node,{childOptions:{remap:this.CHTMLremapMinus}});
var bbox = this.CHTML, text = this.data.join("");
if (bbox.skew != null && text.length !== 1) delete bbox.skew;
if (bbox.r > bbox.w && text.length === 1 && !this.CHTMLvariant.noIC) {
diff --git a/unpacked/jax/output/HTML-CSS/jax.js b/unpacked/jax/output/HTML-CSS/jax.js
index 23a111c0b..7773158cf 100644
--- a/unpacked/jax/output/HTML-CSS/jax.js
+++ b/unpacked/jax/output/HTML-CSS/jax.js
@@ -2244,11 +2244,17 @@
});
MML.mn.Augment({
+ HTMLremapMinus: function (text) {return text.replace(/^-/,"\u2212")},
toHTML: function (span) {
span = this.HTMLhandleSize(this.HTMLcreateSpan(span)); span.bbox = null;
var variant = this.HTMLgetVariant();
- for (var i = 0, m = this.data.length; i < m; i++)
- {if (this.data[i]) {this.data[i].toHTML(span,variant)}}
+ var remap = this.HTMLremapMinus;
+ for (var i = 0, m = this.data.length; i < m; i++) {
+ if (this.data[i]) {
+ this.data[i].toHTML(span,variant,remap);
+ remap = null;
+ }
+ }
if (!span.bbox) {span.bbox = this.HTMLzeroBBox()}
if (this.data.join("").length !== 1) {delete span.bbox.skew}
this.HTMLhandleSpace(span);
diff --git a/unpacked/jax/output/NativeMML/jax.js b/unpacked/jax/output/NativeMML/jax.js
index c7c436587..6936f2e98 100644
--- a/unpacked/jax/output/NativeMML/jax.js
+++ b/unpacked/jax/output/NativeMML/jax.js
@@ -890,6 +890,22 @@
}
}
});
+
+ MML.mn.Augment({
+ NativeMMLremapMinus: function (text) {return text.replace(/^-/,"\u2212")},
+ toNativeMML: function (parent) {
+ var tag = this.NativeMMLelement(this.type);
+ this.NativeMMLattributes(tag);
+ var remap = this.NativeMMLremapMinus;
+ for (var i = 0, m = this.data.length; i < m; i++) {
+ if (this.data[i]) {
+ this.data[i].toNativeMML(tag,remap);
+ remap = null;
+ }
+ }
+ parent.appendChild(tag);
+ }
+ });
var fontDir = AJAX.fileURL(MathJax.OutputJax.fontDir+"/HTML-CSS/TeX/otf");
@@ -1179,8 +1195,10 @@
//
// Add a text node
//
- toNativeMML: function (parent) {
- parent.appendChild(document.createTextNode(this.toString()));
+ toNativeMML: function (parent,remap) {
+ var text = this.toString();
+ if (remap) text = remap(text);
+ parent.appendChild(document.createTextNode(text));
}
});
diff --git a/unpacked/jax/output/SVG/jax.js b/unpacked/jax/output/SVG/jax.js
index 3e6475a09..66ed6e16a 100644
--- a/unpacked/jax/output/SVG/jax.js
+++ b/unpacked/jax/output/SVG/jax.js
@@ -1569,6 +1569,31 @@
return svg;
}
});
+
+ MML.mn.Augment({
+ SVGremapMinus: function (text) {return text.replace(/^-/,"\u2212")},
+ toSVG: function () {
+ this.SVGgetStyles();
+ var variant = this.SVGgetVariant();
+ var svg = this.SVG(); this.SVGgetScale(svg);
+ this.SVGhandleSpace(svg);
+ var remap = this.SVGremapMinus;
+ for (var i = 0, m = this.data.length; i < m; i++) {
+ if (this.data[i]) {
+ var child = svg.Add(this.data[i].toSVG(variant,svg.scale,remap),svg.w,0,true);
+ if (child.skew) {svg.skew = child.skew}
+ remap = null;
+ }
+ }
+ svg.Clean(); var text = this.data.join("");
+ if (svg.skew && text.length !== 1) {delete svg.skew}
+ if (svg.r > svg.w && text.length === 1 && !variant.noIC)
+ {svg.ic = svg.r - svg.w; svg.w = svg.r}
+ this.SVGhandleColor(svg);
+ this.SVGsaveData(svg);
+ return svg;
+ },
+ }),
MML.mtext.Augment({
toSVG: function () {