diff --git a/unpacked/jax/output/HTML-CSS/autoload/mmultiscripts.js b/unpacked/jax/output/HTML-CSS/autoload/mmultiscripts.js
index c80305b7c..b92fbdabb 100644
--- a/unpacked/jax/output/HTML-CSS/autoload/mmultiscripts.js
+++ b/unpacked/jax/output/HTML-CSS/autoload/mmultiscripts.js
@@ -120,25 +120,48 @@ MathJax.Hub.Register.StartupHook("HTML-CSS Jax Ready",function () {
var i = 1, m = this.data.length, W = 0;
for (var k = 0; k < 4; k += 2) {
while (i < m && this.data[i].type !== "mprescripts") {
+ var box = [null,null,null,null];
for (var j = k; j < k+2; j++) {
if (this.data[i] && this.data[i].type !== "none") {
if (!BOX[j]) {
BOX[j] = HTMLCSS.createBox(stack); BOX[j].bbox = this.HTMLemptyBBox({});
if (W) {HTMLCSS.createBlank(BOX[j],W); BOX[j].bbox.w = BOX[j].bbox.rw = W}
}
- this.data[i].toHTML(BOX[j]); this.HTMLcombineBBoxes(this.data[i],BOX[j].bbox);
+ box[j] = this.data[i].toHTML(BOX[j]);
}
i++;
}
+ var isPre = (k === 2);
sub = BOX[k]; sup = BOX[k+1];
if (sub && sup) {
- if (sub.bbox.w < sup.bbox.w) {
- HTMLCSS.createBlank(sub,sup.bbox.w-sub.bbox.w);
- sub.bbox.w = sup.bbox.w; sub.bbox.rw = Math.max(sub.bbox.w,sub.bbox.rw);
- } else if (sub.bbox.w > sup.bbox.w) {
- HTMLCSS.createBlank(sup,sub.bbox.w-sup.bbox.w);
- sup.bbox.w = sub.bbox.w; sup.bbox.rw = Math.max(sup.bbox.w,sup.bbox.rw);
+ var w = box[k+1].bbox.w - box[k].bbox.w;
+ if (w > 0) {
+ if (isPre) {
+ box[k].style.paddingLeft = HTMLCSS.Em(w/box[k].scale);
+ BOX[k].w += w;
+ } else {
+ HTMLCSS.createBlank(sub,w);
+ }
+ } else if (w < 0) {
+ if (isPre) {
+ box[k+1].style.paddingLeft = HTMLCSS.Em(-w/box[k+1].scale);
+ BOX[k+1].w += -w;
+ } else {
+ HTMLCSS.createBlank(sup,-w);
+ }
}
+ this.HTMLcombineBBoxes(box[k],sub.bbox);
+ this.HTMLcombineBBoxes(box[k+1],sup.bbox);
+ if (w > 0) {
+ sub.bbox.w = sup.bbox.w;
+ sub.bbox.rw = Math.max(sub.bbox.w,sub.bbox.rw);
+ } else if (w < 0) {
+ sup.bbox.w = sub.bbox.w;
+ sup.bbox.rw = Math.max(sup.bbox.w,sup.bbox.rw);
+ }
+ } else {
+ if (sub) this.HTMLcombineBBoxes(box[k],sub.bbox);
+ if (sup) this.HTMLcombineBBoxes(box[k+1],sup.bbox);
}
if (sub) {W = sub.bbox.w} else if (sup) {W = sup.bbox.w}
}
diff --git a/unpacked/jax/output/SVG/autoload/mmultiscripts.js b/unpacked/jax/output/SVG/autoload/mmultiscripts.js
index ac2ea67d9..000a62e95 100644
--- a/unpacked/jax/output/SVG/autoload/mmultiscripts.js
+++ b/unpacked/jax/output/SVG/autoload/mmultiscripts.js
@@ -101,13 +101,18 @@ MathJax.Hub.Register.StartupHook("SVG Jax Ready",function () {
var i = 1, m = this.data.length, W = 0;
for (var k = 0; k < 4; k += 2) {
while (i < m && this.data[i].type !== "mprescripts") {
+ var box = [null,null,null,null];
for (var j = k; j < k+2; j++) {
if (this.data[i] && this.data[i].type !== "none") {
if (!BOX[j]) {BOX[j] = SVG.BBOX.G()}
- BOX[j].Add(this.data[i].toSVG().With({x:W}));
+ box[j] = this.data[i].toSVG();
}
i++;
}
+ var isPre = (k === 2);
+ if (isPre) W += Math.max((box[k]||{w:0}).w,(box[k+1]||{w:0}).w);
+ if (box[k]) BOX[k].Add(box[k].With({x:W-(isPre?box[k].w:0)}));
+ if (box[k+1]) BOX[k+1].Add(box[k+1].With({x:W-(isPre?box[k+1].w:0)}));
sub = BOX[k]||{w:0}; sup = BOX[k+1]||{w:0};
sub.w = sup.w = W = Math.max(sub.w,sup.w);
}