diff --git a/unpacked/extensions/TeX/AMSmath.js b/unpacked/extensions/TeX/AMSmath.js index d0407798b..cd8dfef99 100644 --- a/unpacked/extensions/TeX/AMSmath.js +++ b/unpacked/extensions/TeX/AMSmath.js @@ -438,6 +438,24 @@ MathJax.Hub.Register.StartupHook("TeX Jax Ready",function () { } delete global.tag; delete global.tagID; delete global.label; return tag; + }, + + /* + * Set the initial to have form="infix" and lspace="0", + * skipping any initial space or empty braces (TeXAtom with child + * being an empty inferred row). + */ + fixInitialMO: function (data) { + for (var i = 0, m = data.length; i < m; i++) { + if (data[i] && (data[i].type !== "mspace" && + (data[i].type !== "texatom" || (data[i].data[0] && data[i].data[0].data.length)))) { + if (data[i].isEmbellished()) { + var core = data[i].CoreMO(); + core.form = MML.FORM.INFIX; core.lspace = 0; + } + break; + } + } } }); @@ -453,6 +471,7 @@ MathJax.Hub.Register.StartupHook("TeX Jax Ready",function () { stack.global.tagged = !numbered && !stack.global.forcetag; // prevent automatic tagging in starred environments }, EndEntry: function () { + if (this.table.length) {this.fixInitialMO(this.data)} var mtd = MML.mtd.apply(MML,this.data); if (this.data.shove) {mtd.columnalign = this.data.shove} this.row.push(mtd); @@ -499,6 +518,11 @@ MathJax.Hub.Register.StartupHook("TeX Jax Ready",function () { stack.global.notags = (taggable ? null : name); stack.global.tagged = !numbered && !stack.global.forcetag; // prevent automatic tagging in starred environments }, + EndEntry: function () { + if (this.row.length) {this.fixInitialMO(this.data)} + this.row.push(MML.mtd.apply(MML,this.data)); + this.data = []; + }, EndRow: function () { var mtr = MML.mtr; if (!this.global.tag && this.numbered) {this.autoTag()} diff --git a/unpacked/extensions/toMathML.js b/unpacked/extensions/toMathML.js index 20fb15a64..e26ea89c4 100644 --- a/unpacked/extensions/toMathML.js +++ b/unpacked/extensions/toMathML.js @@ -59,7 +59,7 @@ MathJax.Hub.Register.LoadHook("[MathJax]/jax/element/mml/jax.js",function () { if (!this.attrNames) { if (this.type === "mstyle") {defaults = MML.math.prototype.defaults} for (var id in defaults) {if (!skip[id] && defaults.hasOwnProperty(id)) { - var force = (id === "open" || id === "close"); + var force = (id === "open" || id === "close" || id === "form"); if (this[id] != null && (force || this[id] !== defaults[id])) { var value = this[id]; delete this[id]; if (force || this.Get(id) !== value)