Merge branch 'issue1072' into develop. Issue #1072.

This commit is contained in:
Davide P. Cervone 2015-04-21 16:45:12 -04:00
commit d4b1fa042a
2 changed files with 36 additions and 8 deletions

View File

@ -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}
}

View File

@ -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);
}