diff --git a/unpacked/jax/output/HTML-CSS/jax.js b/unpacked/jax/output/HTML-CSS/jax.js index c3eb585c1..287418d1a 100644 --- a/unpacked/jax/output/HTML-CSS/jax.js +++ b/unpacked/jax/output/HTML-CSS/jax.js @@ -1614,9 +1614,13 @@ for (var i = 0, m = this.data.length; i < m; i++) {if (this.data[i]) {this.data[i].toHTML(span)}} var stretchy = this.HTMLcomputeBBox(span); - var h = span.bbox.h, d = span.bbox.d; - for (i = 0, m = stretchy.length; i < m; i++) {stretchy[i].HTMLstretchV(span,h,d)} - if (stretchy.length) {this.HTMLcomputeBBox(span,true)} + var h = span.bbox.h, d = span.bbox.d, stretched = false; + for (i = 0, m = stretchy.length; i < m; i++) { + var bbox = stretchy[i].HTMLspanElement().bbox; + if (bbox.h !== h || bbox.d !== d) + {stretchy[i].HTMLstretchV(span,h,d); stretched = true} + } + if (stretched) {this.HTMLcomputeBBox(span,true)} if (this.HTMLlineBreaks(span)) {span = this.HTMLmultiline(span)} this.HTMLhandleSpace(span); this.HTMLhandleColor(span); @@ -2740,23 +2744,31 @@ }); MML.TeXAtom.Augment({ - toHTML: function (span) { + toHTML: function (span,HW,D) { span = this.HTMLcreateSpan(span); if (this.data[0] != null) { if (this.texClass === MML.TEXCLASS.VCENTER) { var stack = HTMLCSS.createStack(span); var box = HTMLCSS.createBox(stack); - HTMLCSS.Measured(this.data[0].toHTML(box),box); + var child = this.data[0].toHTML(box); + if (D != null) {HTMLCSS.Remeasured(this.data[0].HTMLstretchV(box,HW,D),box)} + else if (HW != null) {HTMLCSS.Remeasured(this.data[0].HTMLstretchH(box,HW),box)} + else {HTMLCSS.Measured(child,box)} // FIXME: should the axis height be scaled? HTMLCSS.placeBox(box,0,HTMLCSS.TeX.axis_height-(box.bbox.h+box.bbox.d)/2+box.bbox.d); } else { - span.bbox = this.data[0].toHTML(span).bbox; + var html = this.data[0].toHTML(span,HW,D); + if (D != null) {html = this.data[0].HTMLstretchV(box,HW,D)} + else if (HW != null) {html = this.data[0].HTMLstretchH(box,HW)} + span.bbox = html.bbox; } } this.HTMLhandleSpace(span); this.HTMLhandleColor(span); return span; - } + }, + HTMLstretchH: MML.mbase.HTMLstretchH, + HTMLstretchV: MML.mbase.HTMLstretchV }); // diff --git a/unpacked/jax/output/SVG/jax.js b/unpacked/jax/output/SVG/jax.js index 41e912cb3..1615c50f8 100644 --- a/unpacked/jax/output/SVG/jax.js +++ b/unpacked/jax/output/SVG/jax.js @@ -893,7 +893,9 @@ { var svg = this.svg[i], mml = svg.mml; if (mml) { - svg = mml.SVGstretchV(this.sh,this.sd); + if (mml.SVGdata.h !== this.sh || mml.SVGdata.d !== this.sd) { + svg = mml.SVGstretchV(this.sh,this.sd); + } mml.SVGdata.HW = this.sh; mml.SVGdata.D = this.sd; } if (svg.ic) {this.ic = svg.ic} else {delete this.ic} @@ -1995,12 +1997,12 @@ }); MML.TeXAtom.Augment({ - toSVG: function () { + toSVG: function (HW,D) { this.SVGgetStyles(); var svg = this.SVG(); this.SVGhandleSpace(svg); if (this.data[0] != null) { - var box = this.data[0].toSVG(), y = 0; + var box = this.data[0].SVGdataStretched(0,HW,D), y = 0; if (this.texClass === MML.TEXCLASS.VCENTER) { // FIXME: should the axis height be scaled? y = SVG.TeX.axis_height - (box.h+box.d)/2 + box.d;