diff --git a/unpacked/jax/output/HTML-CSS/autoload/menclose.js b/unpacked/jax/output/HTML-CSS/autoload/menclose.js index f929b11fd..b89ca8faf 100644 --- a/unpacked/jax/output/HTML-CSS/autoload/menclose.js +++ b/unpacked/jax/output/HTML-CSS/autoload/menclose.js @@ -41,8 +41,9 @@ MathJax.Hub.Register.StartupHook("HTML-CSS Jax Ready",function () { if (values.padding == null) {values.padding = ".2em"} span = this.HTMLcreateSpan(span); var mu = this.HTMLgetMu(span), scale = this.HTMLgetScale(); - var p = HTMLCSS.length2em(values.padding,mu,1/HTMLCSS.em) * scale; // padding for enclosure - var t = HTMLCSS.length2em(values.thickness,mu,1/HTMLCSS.em); // thickness of lines (not scaled, see issue #414) + var p = HTMLCSS.length2em(values.padding,mu,1/HTMLCSS.em) * scale; // padding for enclosure + var t = HTMLCSS.length2em(values.thickness,mu,1/HTMLCSS.em) * scale; // thickness of lines + t = Math.max(1/HTMLCSS.em,t); // see issue #414 var SOLID = HTMLCSS.Em(t)+" solid"; var stack = HTMLCSS.createStack(span); @@ -154,7 +155,7 @@ MathJax.Hub.Register.StartupHook("HTML-CSS Jax Ready",function () { this.HTMLvmlElement(line,"stroke",{endarrow:"classic"}); } else { if (!svg) {svg = this.HTMLsvg(stack,H,D,W,t,values.mathcolor)} - var l = Math.sqrt(W*W + (H+D)*(H+D)), f = 1/l * 10*scale/HTMLCSS.em * t/.075; + var l = Math.sqrt(W*W + (H+D)*(H+D)), f = 1/l * 10*this.scale/HTMLCSS.em * t/.075; w = W * f; h = (H+D) * f; var x = W - t/2, y = t/2; if (y+h-.4*w < 0) {y = .4*w-h} this.HTMLsvgElement(svg.firstChild,"line",{ diff --git a/unpacked/jax/output/HTML-CSS/jax.js b/unpacked/jax/output/HTML-CSS/jax.js index 007904f74..50bb54945 100644 --- a/unpacked/jax/output/HTML-CSS/jax.js +++ b/unpacked/jax/output/HTML-CSS/jax.js @@ -1834,7 +1834,8 @@ } else { var space = this.texSpacing(); if (space !== "") { - space = HTMLCSS.length2em(space,this.HTMLgetScale())/(span.scale||1); + this.HTMLgetScale(); + space = HTMLCSS.length2em(space,this.scale)/(span.scale||1)*this.mscale; if (span.style.paddingLeft) {space += HTMLCSS.unEm(span.style.paddingLeft)} span.style.paddingLeft = HTMLCSS.Em(space); } @@ -1842,6 +1843,7 @@ }, HTMLgetScale: function () { + if (this.scale) {return this.scale * this.mscale} var scale = 1, values = this.getValues("mathsize","scriptlevel","fontsize"); if (this.style) { var span = this.HTMLspanElement(); @@ -1854,8 +1856,8 @@ values.scriptminsize = HTMLCSS.length2em(this.Get("scriptminsize")); if (scale < values.scriptminsize) {scale = values.scriptminsize} } - if (this.isToken) {scale *= HTMLCSS.length2em(values.mathsize)} - return scale; + this.scale = scale; this.mscale = HTMLCSS.length2em(values.mathsize); + return scale * this.mscale; }, HTMLgetMu: function (span) { var mu = 1, values = this.getValues("scriptlevel","scriptsizemultiplier"); @@ -1990,7 +1992,7 @@ if (bbox.skew && text.length !== 1) {delete bbox.skew} if (bbox.rw > bbox.w && text.length === 1 && !variant.noIC) { bbox.ic = bbox.rw - bbox.w; - HTMLCSS.createBlank(span,bbox.ic); + HTMLCSS.createBlank(span,bbox.ic/this.mscale); bbox.w = bbox.rw; } this.HTMLhandleSpace(span); @@ -2062,7 +2064,8 @@ // Handle large operator centering // if (values.largeop) { - var p = (span.bbox.h - span.bbox.d)/2 - HTMLCSS.TeX.axis_height*span.scale; + var a = HTMLCSS.TeX.axis_height * this.scale * this.mscale + var p = (span.bbox.h - span.bbox.d)/2 - a; if (HTMLCSS.safariVerticalAlignBug && span.lastChild.nodeName === "IMG") { span.lastChild.style.verticalAlign = HTMLCSS.Em(HTMLCSS.unEm(span.lastChild.style.verticalAlign||0)/HTMLCSS.em-p/span.scale); @@ -2076,7 +2079,7 @@ span.bbox.h -= p; span.bbox.d += p; if (span.bbox.rw > span.bbox.w) { span.bbox.ic = span.bbox.rw-span.bbox.w; - HTMLCSS.createBlank(span,span.bbox.ic); + HTMLCSS.createBlank(span,span.bbox.ic/this.mscale); span.bbox.w = span.bbox.rw; } } @@ -2137,7 +2140,7 @@ this.HTMLremoveColor(); var values = this.getValues("symmetric","maxsize","minsize"); var span = this.HTMLspanElement(), mu = this.HTMLgetMu(span), H; - var scale = span.scale, axis = HTMLCSS.TeX.axis_height * scale; + var scale = this.HTMLgetScale(), axis = HTMLCSS.TeX.axis_height * scale; if (values.symmetric) {H = 2*Math.max(h-axis,d+axis)} else {H = h + d} values.maxsize = HTMLCSS.length2em(values.maxsize,mu,span.bbox.h+span.bbox.d); values.minsize = HTMLCSS.length2em(values.minsize,mu,span.bbox.h+span.bbox.d); @@ -2213,12 +2216,12 @@ toHTML: function (span) { span = this.HTMLcreateSpan(span); var values = this.getValues("height","depth","width"); - var mu = this.HTMLgetMu(span); + var mu = this.HTMLgetMu(span); this.HTMLgetScale(); values.mathbackground = this.mathbackground; if (this.background && !this.mathbackground) {values.mathbackground = this.background} - var h = HTMLCSS.length2em(values.height,mu), - d = HTMLCSS.length2em(values.depth,mu), - w = HTMLCSS.length2em(values.width,mu); + var h = HTMLCSS.length2em(values.height,mu) * this.mscale, + d = HTMLCSS.length2em(values.depth,mu) * this.mscale, + w = HTMLCSS.length2em(values.width,mu) * this.mscale; HTMLCSS.createSpace(span,h,d,w,values.mathbackground,true); return span; } @@ -2256,9 +2259,10 @@ else {HTMLCSS.Measured(child,box)} var values = this.getValues("height","depth","width","lspace","voffset"), x = 0, y = 0, mu = this.HTMLgetMu(span); + this.HTMLgetScale(); if (values.lspace) {x = this.HTMLlength2em(box,values.lspace,mu)} if (values.voffset) {y = this.HTMLlength2em(box,values.voffset,mu)} - HTMLCSS.placeBox(box,x,y); + HTMLCSS.placeBox(box,x,y); x /= this.mscale; y /= this.mscale; span.bbox = { h: box.bbox.h, d: box.bbox.d, w: box.bbox.w, exactW: true, lw: Math.min(0,box.bbox.lw+x), rw: Math.max(box.bbox.w,box.bbox.rw+x), @@ -2283,7 +2287,7 @@ if (m == null) {m = -HTMLCSS.BIGDIMEN} var match = String(length).match(/width|height|depth/); var size = (match ? span.bbox[match[0].charAt(0)] : (d ? span.bbox[d] : 0)); - var v = HTMLCSS.length2em(length,mu,size); + var v = HTMLCSS.length2em(length,mu,size/this.mscale) * this.mscale; if (d && String(length).match(/^\s*[-+]/)) {return Math.max(m,span.bbox[d]+v)} else {return v} }, @@ -2351,7 +2355,7 @@ HTMLCSS.placeBox(den,num.bbox.w+bevel.bbox.w-delta,(den.bbox.d-den.bbox.h)/2+a-delta); } else { var W = Math.max(num.bbox.w,den.bbox.w); - var t = HTMLCSS.thickness2em(values.linethickness,scale), p,q, u,v; + var t = HTMLCSS.thickness2em(values.linethickness,this.scale)*this.mscale, p,q, u,v; var mt = HTMLCSS.TeX.min_rule_thickness/this.em; if (isDisplay) {u = HTMLCSS.TeX.num1; v = HTMLCSS.TeX.denom1} else {u = (t === 0 ? HTMLCSS.TeX.num3 : HTMLCSS.TeX.num2); v = HTMLCSS.TeX.denom2} @@ -2382,7 +2386,7 @@ // Add nulldelimiterspace around the fraction // (TeXBook pg 150 and Appendix G rule 15e) // - var space = HTMLCSS.TeX.nulldelimiterspace; + var space = HTMLCSS.TeX.nulldelimiterspace * this.mscale; var style = span.firstChild.style; style.marginLeft = style.marginRight = HTMLCSS.Em(space); span.bbox.w += 2*space; span.bbox.r += 2*space; @@ -2621,13 +2625,11 @@ if (sup) {sup.bbox.w += s; sup.bbox.rw = Math.max(sup.bbox.w,sup.bbox.rw)} if (sub) {sub.bbox.w += s; sub.bbox.rw = Math.max(sub.bbox.w,sub.bbox.rw)} HTMLCSS.placeBox(base,0,0); - var sscale; + var sscale = scale; if (sup) { sscale = this.data[this.sup].HTMLgetScale(); } else if (sub) { sscale = this.data[this.sub].HTMLgetScale(); - } else { - sscale = this.HTMLgetScale(); } var q = HTMLCSS.TeX.sup_drop * sscale, r = HTMLCSS.TeX.sub_drop * sscale; var u = base.bbox.h - q, v = base.bbox.d + r, delta = 0, p; @@ -2759,8 +2761,8 @@ 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); + var a = HTMLCSS.TeX.axis_height * this.HTMLgetScale(); + HTMLCSS.placeBox(box,0,a-(box.bbox.h+box.bbox.d)/2+box.bbox.d); } else { var html = this.data[0].toHTML(span,HW,D); if (D != null) {html = this.data[0].HTMLstretchV(box,HW,D)}