From e9ed0a1315dc0ab1830ff7ded766e1b52d1931d9 Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Sun, 15 Feb 2015 16:09:01 -0500 Subject: [PATCH 001/186] These have been moved to the mml element jax. --- unpacked/jax/output/CommonHTML/jax.js | 19 ++----------------- 1 file changed, 2 insertions(+), 17 deletions(-) diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index 8e46653a9..56474169f 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -142,7 +142,7 @@ settings: HUB.config.menuSettings, config: {styles: STYLES}, - hideProcessedMath: false, // use display:none until all math is processed + hideProcessedMath: false, // use display:none until all math is processed maxStretchyParts: 1000, // limit the number of parts allowed for // stretchy operators. See issue 366. @@ -638,22 +638,7 @@ return false; }, CHTMLstretchV: function (h,d) {}, - CHTMLstretchH: function (w) {}, - - CoreParent: function () { - var parent = this; - while (parent && parent.isEmbellished() && - parent.CoreMO() === this && !parent.isa(MML.math)) {parent = parent.Parent()} - return parent; - }, - CoreText: function (parent) { - if (!parent) {return ""} - if (parent.isEmbellished()) {return parent.CoreMO().data.join("")} - while ((parent.isa(MML.mrow) || parent.isa(MML.TeXAtom) || - parent.isa(MML.mstyle) || parent.isa(MML.mphantom)) && - parent.data.length === 1 && parent.data[0]) {parent = parent.data[0]} - if (!parent.isToken) {return ""} else {return parent.data.join("")} - } + CHTMLstretchH: function (w) {} }); From 8ea3a8329dc7b7414de785ad8eb8297a53773ee7 Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Tue, 17 Feb 2015 14:56:51 -0500 Subject: [PATCH 002/186] Better layout for fractions (works in xhtml). --- unpacked/jax/output/CommonHTML/jax.js | 37 +++++++++++++++++---------- 1 file changed, 24 insertions(+), 13 deletions(-) diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index 56474169f..d110e1353 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -83,9 +83,14 @@ ".MJXc-mo": {"margin": "0 .15em"}, - ".MJXc-mfrac": {"margin": "0 .125em", "vertical-align":".25em"}, - ".MJXc-denom": {"display": "inline-table!important", "width":"100%"}, - ".MJXc-denom > *": {"display": "table-row!important"}, + ".MJXc-mfrac": {"margin": "0 .125em", "vertical-align":".25em", + "display": "inline-table!important", "text-align":"center"}, + ".MJXc-mfrac > *": {"display": "table-row!important"}, + ".MJXc-num": {"line-height": 0}, + ".MJXc-num > *": {"line-height":"1.2", "width":"100%"}, + ".MJXc-num > * > *": {"display":"table!important", "width":"100%"}, + ".MJXc-mfrac-row": {"display":"table-row!important"}, + ".MJXc-mfrac-row > *": {"display":"table-cell!important","width":"100%"}, ".MJXc-surd": {"vertical-align":"top"}, ".MJXc-surd > *": {"display":"block!important"}, @@ -418,7 +423,7 @@ TeX: { x_height: .430554 }, - pxPerInch: 72, + pxPerInch: 96, em: 16, // ### FIXME: add more here @@ -899,20 +904,27 @@ MML.mfrac.Augment({ toCommonHTML: function (span) { span = this.CHTMLdefaultSpan(span,{ - childSpans:true, className:"MJXc-box", forceChild:true, noBBox:true + childSpans:true, className:"MJXc-mfrac-cell", forceChild:true, noBBox:true }); var values = this.getValues("linethickness","displaystyle"); if (!values.displaystyle) { if (this.data[0]) this.data[0].CHTMLhandleScriptlevel(span.firstChild); if (this.data[1]) this.data[1].CHTMLhandleScriptlevel(span.lastChild); } - var denom = HTML.Element("span",{className:"MJXc-box",style:{"margin-top":"-.8em"}},[ - ["span",{className:"MJXc-denom"},[ // inline-table - ["span",{},[["span",{className:"MJXc-rule"}]]],["span"] // spans are table-row - ]] + var num = HTML.Element("span",{className:"MJXc-num"},[ + ["span",{}, // inline-block + [["span",{},[ // table, 100% + ["span",{className:"MJXc-mfrac-row"}], // numerator row, 100% + ["span",{className:"MJXc-mfrac-row", style:"font-size:0"}, + [["span",{},[["span",{className:"MJXc-rule"}]]]]] // division line + ]]] + ] ]); - denom.firstChild.lastChild.appendChild(span.lastChild); - span.appendChild(denom); + num.firstChild.firstChild.firstChild.appendChild(span.firstChild); + var denom = HTML.Element("span",{className:"MJXc-mfrac-row"}); + denom.appendChild(span.firstChild); + span.appendChild(num); span.appendChild(denom); + var nbox = this.CHTMLbboxFor(0), dbox = this.CHTMLbboxFor(1), bbox = this.CHTML; bbox.w = Math.max(nbox.w,dbox.w) * .8; bbox.h = nbox.h+nbox.d + .1 + .25; @@ -920,12 +932,11 @@ bbox.l = bbox.r = .125; values.linethickness = Math.max(0,CHTML.length2em(values.linethickness||"0",0)); if (values.linethickness) { - var rule = denom.firstChild.firstChild.firstChild; + var rule = num.firstChild.firstChild.lastChild.lastChild.lastChild; var t = CHTML.Em(values.linethickness); rule.style.borderTop = (values.linethickness < .15 ? "1px" : t)+" solid"; rule.style.margin = t+" 0"; t = values.linethickness; - denom.style.marginTop = CHTML.Em(3*t-.9); span.style.verticalAlign = CHTML.Em(1.5*t + .1); bbox.h += 1.5*t - .1; bbox.d += 1.5*t; } From 9d8c48ec51b2534dbbd632b66301b60b51895237 Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Wed, 18 Feb 2015 17:26:00 -0500 Subject: [PATCH 003/186] Fix zooming in CommonHTML. --- unpacked/jax/output/CommonHTML/jax.js | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index d110e1353..94922612d 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -77,7 +77,7 @@ }, ".MJXc-math span": {"display": "inline-block"}, ".MJXc-box": {"display":"block!important", "text-align": "center"}, - ".MJXc-box:after": {"content": '" "'}, // needed for when there is no DOCTYPE +// ".MJXc-box:after": {"content": '" "'}, // needed for when there is no DOCTYPE ".MJXc-rule": {"display":"block!important", "margin-top":".1em"}, ".MJXc-char": {"display":"block!important"}, @@ -358,12 +358,11 @@ // Re-render at larger size // span.className = "MathJax"; - this.idPostfix = "-zoom"; jax.root.toCHTML(span,span); this.idPostfix = ""; + this.idPostfix = "-zoom"; jax.root.toCommonHTML(span,span); this.idPostfix = ""; // // Get height and width of zoomed math and original math // span.style.position = "absolute"; - if (!width) {math.style.position = "absolute"} var zW = span.offsetWidth, zH = span.offsetHeight, mH = math.offsetHeight, mW = math.offsetWidth; if (mW === 0) {mW = math.parentNode.offsetWidth}; // IE7 gets mW == 0? From 81131da3fc535c744971d41c52dff097319ba8de Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Thu, 19 Feb 2015 09:28:47 -0500 Subject: [PATCH 004/186] Handle variant within handleText() rather than in handleToken(). --- unpacked/jax/output/CommonHTML/jax.js | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index 94922612d..35cc7dbea 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -576,10 +576,6 @@ }, CHTMLhandleToken: function (span) { - var values = this.getValues("mathvariant"); - if (values.mathvariant !== MML.VARIANT.NORMAL) { - span.className += " "+CHTML.VARIANT[values.mathvariant]; - } }, CHTMLhandleStyle: function (span) { @@ -598,7 +594,7 @@ if (level) span.className += " MJXc-script"; }, - CHTMLhandleText: function (span,text) { + CHTMLhandleText: function (span,text,variant) { var c, n; var H = 0, D = 0, W = 0; for (var i = 0, m = text.length; i < m; i++) { @@ -622,6 +618,7 @@ if (!this.CHML) this.CHTML = {}; this.CHTML = {h:.9, d:.3, w:W, l:0, r:0, t:H, b:D}; HTML.addText(span,text); + if (variant !== MML.VARIANT.NORMAL) span.className += " "+CHTML.VARIANT[variant]; // ### FIXME: use this to get proper bounding boxes in the future // this.CHTML = {h:H, d:D, w:W, l:0, r:0}; // HTML.addElement(span,"span",{className:"MJXc-char",style:{ @@ -649,13 +646,13 @@ MML.chars.Augment({ toCommonHTML: function (span) { var text = this.toString().replace(/[\u2061-\u2064]/g,""); - this.CHTMLhandleText(span,text); + this.CHTMLhandleText(span,text,this.parent.Get("mathvariant")); } }); MML.entity.Augment({ toCommonHTML: function (span) { var text = this.toString().replace(/[\u2061-\u2064]/g,""); - this.CHTMLhandleText(span,text); + this.CHTMLhandleText(span,text,this.parent.Get("mathvariant")); } }); @@ -1109,7 +1106,6 @@ span = this.CHTMLcreateSpan(span); this.CHTMLhandleStyle(span); this.CHTMLhandleColor(span); - if (this.isToken) this.CHTMLhandleToken(span); // skip label for now for (var i = 1, m = this.data.length; i < m; i++) this.CHTMLaddChild(span,i,options); return span; From 8623acf05ad563edc767112bba902b0e005ac4bd Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Sun, 22 Feb 2015 10:41:13 -0500 Subject: [PATCH 005/186] Support old-style background and color attributes --- unpacked/jax/output/CommonHTML/jax.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index 35cc7dbea..7f542a4f7 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -584,7 +584,9 @@ CHTMLhandleColor: function (span) { if (this.mathcolor) {span.style.color = this.mathcolor} + else if (this.color) {span.style.color = this.color} if (this.mathbackground) {span.style.backgroundColor = this.mathbackground} + else if (this.background) {span.style.backgroundColor = this.background} }, CHTMLhandleScriptlevel: function (span) { From 1cbf00d54d6a15b9f8125b7158c5e10ac7513cee Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Sun, 22 Feb 2015 10:46:10 -0500 Subject: [PATCH 006/186] Better handling of scriptlevel --- unpacked/jax/output/CommonHTML/jax.js | 29 ++++++++++++++++++++++----- 1 file changed, 24 insertions(+), 5 deletions(-) diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index 7f542a4f7..20f44c6f3 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -510,6 +510,12 @@ return (m.toFixed(3).replace(/\.?0+$/,""))+"em"; }, + scaleBBox: function (bbox,level,dlevel) { + var scale = Math.pow(.8,Math.min(2,level)-(dlevel||0)); + bbox.w *= scale; bbox.h *= scale; bbox.d *= scale; + bbox.l *= scale; bbox.r *= scale; + }, + arrayEntry: function (a,i) {return a[Math.max(0,Math.min(i,a.length-1))]} }); @@ -589,11 +595,18 @@ else if (this.background) {span.style.backgroundColor = this.background} }, - CHTMLhandleScriptlevel: function (span) { - // ### FIXME: Need to prevent getting too small - // ### and should keep track of scaling so it can be compensated for + CHTMLhandleScriptlevel: function (span,dlevel) { var level = this.Get("scriptlevel"); - if (level) span.className += " MJXc-script"; + if (level === 0) return; + // ### FIXME: handle scriptminsize + if (level > 2) level = 2; + if (level > 0 && dlevel == null) { + span.className += " MJXc-script"; + } else { + if (dlevel) level -= dlevel; + var scale = Math.floor(Math.pow(.8,level)*100); + span.style.fontSize = scale+"%"; + } }, CHTMLhandleText: function (span,text,variant) { @@ -1038,7 +1051,13 @@ MML.mstyle.Augment({ toCommonHTML: function (span) { span = this.CHTMLdefaultSpan(span); - this.CHTMLhandleScriptlevel(span); + if (this.scriptlevel) { + var dlevel = this.Get("scriptlevel",null,true); + if (this.scriptlevel !== dlevel) { + this.CHTMLhandleScriptlevel(span,dlevel); + CHTML.scaleBBox(this.CHTML,this.scriptlevel,dlevel); + } + } return span; } }); From 4ef56bb0074a5db997a9830490086578376a186c Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Sun, 22 Feb 2015 10:54:33 -0500 Subject: [PATCH 007/186] Better fraction layout (works in XHTML). --- unpacked/jax/output/CommonHTML/jax.js | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index 20f44c6f3..6b9e78516 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -87,8 +87,12 @@ "display": "inline-table!important", "text-align":"center"}, ".MJXc-mfrac > *": {"display": "table-row!important"}, ".MJXc-num": {"line-height": 0}, + ".MJXc-num > span": {"display":"inline-block"}, ".MJXc-num > *": {"line-height":"1.2", "width":"100%"}, ".MJXc-num > * > *": {"display":"table!important", "width":"100%"}, + ".MJXc-den": {"line-height":".96"}, + ".MJXc-den > *": {"display":"table-cell!important"}, + ".MJXc-den > * > *": {"line-height":"1.2"}, ".MJXc-mfrac-row": {"display":"table-row!important"}, ".MJXc-mfrac-row > *": {"display":"table-cell!important","width":"100%"}, @@ -932,24 +936,24 @@ ] ]); num.firstChild.firstChild.firstChild.appendChild(span.firstChild); - var denom = HTML.Element("span",{className:"MJXc-mfrac-row"}); + var denom = HTML.Element("span",{className:"MJXc-den"}); denom.appendChild(span.firstChild); span.appendChild(num); span.appendChild(denom); var nbox = this.CHTMLbboxFor(0), dbox = this.CHTMLbboxFor(1), bbox = this.CHTML; - bbox.w = Math.max(nbox.w,dbox.w) * .8; - bbox.h = nbox.h+nbox.d + .1 + .25; - bbox.d = dbox.h+dbox.d - .25; + if (nbox.h < .9) num.firstChild.firstChild.style.marginTop = CHTML.Em(.8*(nbox.h-.9)); + bbox.w = .8*Math.max(nbox.w,dbox.w); + bbox.h = .8*(nbox.h+nbox.d) + .25; + bbox.d = .8*(dbox.h+dbox.d) - .25; bbox.l = bbox.r = .125; values.linethickness = Math.max(0,CHTML.length2em(values.linethickness||"0",0)); if (values.linethickness) { var rule = num.firstChild.firstChild.lastChild.lastChild.lastChild; - var t = CHTML.Em(values.linethickness); - rule.style.borderTop = (values.linethickness < .15 ? "1px" : t)+" solid"; - rule.style.margin = t+" 0"; + var t = (values.linethickness < .15 ? "1px" : CHTML.Em(values.linethickness)); + rule.style.borderTop = t+" solid"; rule.style.margin = t+" 0"; t = values.linethickness; - span.style.verticalAlign = CHTML.Em(1.5*t + .1); - bbox.h += 1.5*t - .1; bbox.d += 1.5*t; + span.style.verticalAlign = CHTML.Em(.25-t); + bbox.h += 2*t; bbox.d += t; } return span; } From 1763ac7188cc4ff70faacab8133c9821c1988543 Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Sun, 22 Feb 2015 10:59:35 -0500 Subject: [PATCH 008/186] Handle propagation of bounding box sizes better. --- unpacked/jax/output/CommonHTML/jax.js | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index 6b9e78516..e62afc7de 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -539,6 +539,7 @@ this.CHTMLhandleColor(span); if (this.isToken) this.CHTMLhandleToken(span); for (var i = 0, m = this.data.length; i < m; i++) this.CHTMLaddChild(span,i,options); + if (!options.noMargins && !options.noBBox) this.CHTMLhandleMargins(span); return span; }, CHTMLaddChild: function (span,i,options) { @@ -613,6 +614,20 @@ } }, + CHTMLhandleMargins: function (span,box) { + var bbox = this.CHTML; + // ### FIXME: should these be FONTDATA values? + if (bbox.h < .9 || bbox.d < .25) { + if (box == null) { + box = HTML.Element("span",{className:"MJXc-box"}); + while (span.firstChild) box.appendChild(span.firstChild); + span.appendChild(box); + } + if (bbox.h < .9) box.style.marginTop = CHTML.Em(bbox.h-.9); + if (bbox.d < .25) box.style.marginBottom = CHTML.Em(bbox.d-.25); + } + }, + CHTMLhandleText: function (span,text,variant) { var c, n; var H = 0, D = 0, W = 0; From b2f1a0f830e5e40e059e64d9d9cc5d48924d7a5a Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Sun, 22 Feb 2015 18:51:21 -0500 Subject: [PATCH 009/186] Better handling of scaling in fractions. Use a variable for the script scaling factor. Clean up some bounding box computations. --- unpacked/jax/output/CommonHTML/config.js | 3 + unpacked/jax/output/CommonHTML/jax.js | 108 +++++++++++------------ 2 files changed, 55 insertions(+), 56 deletions(-) diff --git a/unpacked/jax/output/CommonHTML/config.js b/unpacked/jax/output/CommonHTML/config.js index 5baaf04bb..7fa1c2de6 100644 --- a/unpacked/jax/output/CommonHTML/config.js +++ b/unpacked/jax/output/CommonHTML/config.js @@ -30,6 +30,9 @@ MathJax.OutputJax.CommonHTML = MathJax.OutputJax({ version: "2.5.0", directory: MathJax.OutputJax.directory + "/CommonHTML", extensionDir: MathJax.OutputJax.extensionDir + "/CommonHTML", + autoloadDir: MathJax.OutputJax.directory + "/CommonHTML/autoload", + fontDir: MathJax.OutputJax.directory + "/CommonHTML/fonts", + webfontDir: MathJax.OutputJax.fontDir + "/HTML-CSS", config: { scale: 100, minScaleAdjust: 50, // global math scaling factor, and minimum adjusted scale factor diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index e62afc7de..022ab7770 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -30,19 +30,14 @@ (function (AJAX,HUB,HTML,CHTML) { var MML; -/* - var MESSAGE = function () { - var data = [].slice.call(arguments,0); - data[0][0] = ["CommonHTML",data[0][0]]; - return MathJax.Message.Set.apply(MathJax.Message,data); - }; -*/ - var EVENT, TOUCH, HOVER; // filled in later var FONTS = "'Times New Roman',Times,STIXGeneral,serif"; + var SCRIPTFACTOR = Math.sqrt(1/2), + LINEHEIGHT = 1.2; + var STYLES = { - ".MJXc-script": {"font-size":".8em"}, + ".MJXc-script": {"font-size":SCRIPTFACTOR+"em"}, ".MJXc-right": { "-webkit-transform-origin":"right", @@ -64,7 +59,7 @@ ".MJXc-math": { "display": "inline-block", - "line-height": "1.2", + "line-height": LINEHEIGHT, "text-indent": "0", "font-family": FONTS, "white-space":"nowrap", @@ -77,8 +72,7 @@ }, ".MJXc-math span": {"display": "inline-block"}, ".MJXc-box": {"display":"block!important", "text-align": "center"}, -// ".MJXc-box:after": {"content": '" "'}, // needed for when there is no DOCTYPE - ".MJXc-rule": {"display":"block!important", "margin-top":".1em"}, + ".MJXc-rule": {"display":"block!important", "margin-top":"1px"}, ".MJXc-char": {"display":"block!important"}, ".MJXc-mo": {"margin": "0 .15em"}, @@ -88,11 +82,11 @@ ".MJXc-mfrac > *": {"display": "table-row!important"}, ".MJXc-num": {"line-height": 0}, ".MJXc-num > span": {"display":"inline-block"}, - ".MJXc-num > *": {"line-height":"1.2", "width":"100%"}, + ".MJXc-num > *": {"line-height":LINEHEIGHT, "width":"100%"}, ".MJXc-num > * > *": {"display":"table!important", "width":"100%"}, - ".MJXc-den": {"line-height":".96"}, + ".MJXc-den": {"line-height":LINEHEIGHT*SCRIPTFACTOR}, ".MJXc-den > *": {"display":"table-cell!important"}, - ".MJXc-den > * > *": {"line-height":"1.2"}, + ".MJXc-den > * > *": {"line-height":LINEHEIGHT}, ".MJXc-mfrac-row": {"display":"table-row!important"}, ".MJXc-mfrac-row > *": {"display":"table-cell!important","width":"100%"}, @@ -151,11 +145,6 @@ settings: HUB.config.menuSettings, config: {styles: STYLES}, - hideProcessedMath: false, // use display:none until all math is processed - - maxStretchyParts: 1000, // limit the number of parts allowed for - // stretchy operators. See issue 366. - Config: function () { if (!this.require) {this.require = []} this.SUPER(arguments).Config.call(this); var settings = this.settings; @@ -515,9 +504,11 @@ }, scaleBBox: function (bbox,level,dlevel) { - var scale = Math.pow(.8,Math.min(2,level)-(dlevel||0)); + var scale = Math.pow(SCRIPTFACTOR,Math.min(2,level)-(dlevel||0)); bbox.w *= scale; bbox.h *= scale; bbox.d *= scale; bbox.l *= scale; bbox.r *= scale; + if (bbox.L) bbox.L *= scale; + if (bbox.R) bbox.R *= scale; }, arrayEntry: function (a,i) {return a[Math.max(0,Math.min(i,a.length-1))]} @@ -549,11 +540,12 @@ span = HTML.addElement(span,"span",{className:options.className}); child.toCommonHTML(span); if (!options.noBBox) { - this.CHTML.w += child.CHTML.w + child.CHTML.l + child.CHTML.r; - if (child.CHTML.h > this.CHTML.h) this.CHTML.h = child.CHTML.h; - if (child.CHTML.d > this.CHTML.d) this.CHTML.d = child.CHTML.d; - if (child.CHTML.t > this.CHTML.t) this.CHTML.t = child.CHTML.t; - if (child.CHTML.b > this.CHTML.b) this.CHTML.b = child.CHTML.b; + var bbox = this.CHTML, cbox = child.CHTML; + bbox.w += cbox.w + (cbox.L||0) + (cbox.R||0); + if (cbox.h > bbox.h) bbox.h = cbox.h; + if (cbox.d > bbox.d) bbox.d = cbox.d; + if (cbox.t > bbox.t) bbox.t = cbox.t; + if (cbox.b > bbox.b) bbox.b = cbox.b; } } else if (options.forceChild) {HTML.addElement(span,"span")} }, @@ -609,7 +601,7 @@ span.className += " MJXc-script"; } else { if (dlevel) level -= dlevel; - var scale = Math.floor(Math.pow(.8,level)*100); + var scale = Math.floor(Math.pow(SCRIPTFACTOR,level)*100); span.style.fontSize = scale+"%"; } }, @@ -704,13 +696,13 @@ this.CHTMLadjustAccent(span); var values = this.getValues("lspace","rspace","scriptlevel","displaystyle","largeop"); if (values.scriptlevel === 0) { - this.CHTML.l = CHTML.length2em(values.lspace); - this.CHTML.r = CHTML.length2em(values.rspace); - span.style.marginLeft = CHTML.Em(this.CHTML.l); - span.style.marginRight = CHTML.Em(this.CHTML.r); + this.CHTML.L = CHTML.length2em(values.lspace); + this.CHTML.R = CHTML.length2em(values.rspace); + span.style.marginLeft = CHTML.Em(this.CHTML.L); + span.style.marginRight = CHTML.Em(this.CHTML.R); } else { - this.CHTML.l = .15; - this.CHTML.r = .1; + this.CHTML.L = .15; + this.CHTML.R = .1; } if (values.displaystyle && values.largeop) { var box = HTML.Element("span",{className:"MJXc-largeop"}); @@ -874,9 +866,9 @@ span.lastChild.firstChild.marginRight = ubox.r = 0; this.data[this.under].CHTMLhandleScriptlevel(span.lastChild); } - BBOX.w = Math.max(.8*obox.w,.8*ubox.w,bbox.w); - BBOX.h = .8*(obox.h+obox.d+(acc||0)) + bbox.h; - BBOX.d = bbox.d + .8*(ubox.h+ubox.d); + BBOX.w = Math.max(SCRIPTFACTOR*obox.w,SCRIPTFACTOR*ubox.w,bbox.w); + BBOX.h = SCRIPTFACTOR*(obox.h+obox.d+(acc||0)) + bbox.h; + BBOX.d = bbox.d + SCRIPTFACTOR*(ubox.h+ubox.d); return span; } }); @@ -896,8 +888,8 @@ var bbox = this.CHTML; if (sup && sub) { var box = HTML.Element("span",{className:"MJXc-script-box", style:{ - height: CHTML.Em(h+sup.CHTML.h*.8 + d+sub.CHTML.d*.8), - "vertical-align": CHTML.Em(-d-sub.CHTML.d*.8) + height: CHTML.Em(h+sup.CHTML.h*SCRIPTFACTOR + d+sub.CHTML.d*SCRIPTFACTOR), + "vertical-align": CHTML.Em(-d-sub.CHTML.d*SCRIPTFACTOR) }},[ ["span",{},[["span",{},[["span",{ style:{"margin-bottom":CHTML.Em(-(sup.CHTML.d-.05))} @@ -911,20 +903,20 @@ box.firstChild.firstChild.firstChild.appendChild(span.lastChild); box.lastChild.firstChild.firstChild.appendChild(span.lastChild); span.appendChild(box); - bbox.h = Math.max(base.CHTML.h,sup.CHTML.h*.8+h); - bbox.d = Math.max(base.CHTML.d,sub.CHTML.d*.8+d); + bbox.h = Math.max(base.CHTML.h,sup.CHTML.h*SCRIPTFACTOR+h); + bbox.d = Math.max(base.CHTML.d,sub.CHTML.d*SCRIPTFACTOR+d); bbox.w = base.CHTML.w + Math.max(sup.CHTML.w,sub.CHTML.w) + .07; } else if (sup) { span.lastChild.style.verticalAlign = CHTML.Em(h); sup.CHTMLhandleScriptlevel(span.lastChild); - bbox.h = Math.max(base.CHTML.h,sup.CHTML.h*.8+h); - bbox.d = Math.max(base.CHTML.d,sup.CHTML.d*.8-h); + bbox.h = Math.max(base.CHTML.h,sup.CHTML.h*SCRIPTFACTOR+h); + bbox.d = Math.max(base.CHTML.d,sup.CHTML.d*SCRIPTFACTOR-h); bbox.w = base.CHTML.w + sup.CHTML.w + .07; } else if (sub) { span.lastChild.style.verticalAlign = CHTML.Em(-d); sub.CHTMLhandleScriptlevel(span.lastChild); - bbox.h = Math.max(base.CHTML.h,sub.CHTML.h*.8-d); - bbox.d = Math.max(base.CHTML.d,sub.CHTML.d*.8+d); + bbox.h = Math.max(base.CHTML.h,sub.CHTML.h*SCRIPTFACTOR-d); + bbox.d = Math.max(base.CHTML.d,sub.CHTML.d*SCRIPTFACTOR+d); bbox.w = base.CHTML.w + sub.CHTML.w + .07; } return span; @@ -936,8 +928,10 @@ span = this.CHTMLdefaultSpan(span,{ childSpans:true, className:"MJXc-mfrac-cell", forceChild:true, noBBox:true }); - var values = this.getValues("linethickness","displaystyle"); - if (!values.displaystyle) { + var values = this.getValues("linethickness","displaystyle","scriptlevel"); + var sscale = 1, scale = (values.scriptlevel > 0 ? SCRIPTFACTOR : 1); + if (!values.displaystyle && values.scriptlevel < 2) { + sscale = SCRIPTFACTOR; if (this.data[0]) this.data[0].CHTMLhandleScriptlevel(span.firstChild); if (this.data[1]) this.data[1].CHTMLhandleScriptlevel(span.lastChild); } @@ -952,15 +946,17 @@ ]); num.firstChild.firstChild.firstChild.appendChild(span.firstChild); var denom = HTML.Element("span",{className:"MJXc-den"}); + if (sscale === 1) denom.style.lineHeight = LINEHEIGHT; + if (scale !== 1) span.style.margin = "0 "+CHTML.Em(.125/scale); denom.appendChild(span.firstChild); span.appendChild(num); span.appendChild(denom); var nbox = this.CHTMLbboxFor(0), dbox = this.CHTMLbboxFor(1), bbox = this.CHTML; - if (nbox.h < .9) num.firstChild.firstChild.style.marginTop = CHTML.Em(.8*(nbox.h-.9)); - bbox.w = .8*Math.max(nbox.w,dbox.w); - bbox.h = .8*(nbox.h+nbox.d) + .25; - bbox.d = .8*(dbox.h+dbox.d) - .25; - bbox.l = bbox.r = .125; + if (nbox.h < .9) num.firstChild.firstChild.style.marginTop = CHTML.Em(sscale*(nbox.h-.9)); + bbox.w = sscale*Math.max(nbox.w,dbox.w); + bbox.h = sscale*(nbox.h+nbox.d) + .25; + bbox.d = sscale*(dbox.h+dbox.d) - .25; + bbox.L = bbox.R = .125/scale; values.linethickness = Math.max(0,CHTML.length2em(values.linethickness||"0",0)); if (values.linethickness) { var rule = num.firstChild.firstChild.lastChild.lastChild.lastChild; @@ -1017,13 +1013,13 @@ var sqrt = this.CHTMLlayoutRoot(HTML.Element("span"),span.firstChild); root.className = "MJXc-script"; // ### FIXME: should be scriptscript var scale = parseInt(sqrt.firstChild.firstChild.style.fontSize); - var v = .55*(scale/120) + rbox.d*.8, r = -.6*(scale/120); + var v = .55*(scale/120) + rbox.d*SCRIPTFACTOR, r = -.6*(scale/120); if (scale > 150) {r *= .95*Math.ceil(150/scale*10)/10} root.style.marginRight = CHTML.Em(r); root.style.verticalAlign = CHTML.Em(v); - if (-r > rbox.w*.8) root.style.marginLeft = CHTML.Em(-r-rbox.w*.8); // ### depends on rbox.w + if (-r > rbox.w*SCRIPTFACTOR) root.style.marginLeft = CHTML.Em(-r-rbox.w*SCRIPTFACTOR); // ### depends on rbox.w span.appendChild(root); span.appendChild(sqrt); - this.CHTML.w += Math.max(0,rbox.w*.8+r); - this.CHTML.h = Math.max(this.CHTML.h,rbox.h*.8+v); + this.CHTML.w += Math.max(0,rbox.w*SCRIPTFACTOR+r); + this.CHTML.h = Math.max(this.CHTML.h,rbox.h*SCRIPTFACTOR+v); return span; }, CHTMLlayoutRoot: MML.msqrt.prototype.CHTMLlayoutRoot @@ -1136,7 +1132,7 @@ } var bbox = this.CHTML; bbox.w = W; bbox.h = H/2 + .25; bbox.d = H/2 - .25; - bbox.l = bbox.r = .125; + bbox.L = bbox.R = .125; return span; } }); From 2837c5f114b25604ca4fb76507aa36e4f0a0fa0d Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Sun, 22 Feb 2015 18:54:22 -0500 Subject: [PATCH 010/186] Preliminary support for TeX fonts (currently only uses local fonts, and doesn't load data not already in the fontdata file. --- .../output/CommonHTML/fonts/TeX/fontdata.js | 1578 +++++++++++++++++ unpacked/jax/output/CommonHTML/jax.js | 176 +- 2 files changed, 1710 insertions(+), 44 deletions(-) create mode 100644 unpacked/jax/output/CommonHTML/fonts/TeX/fontdata.js diff --git a/unpacked/jax/output/CommonHTML/fonts/TeX/fontdata.js b/unpacked/jax/output/CommonHTML/fonts/TeX/fontdata.js new file mode 100644 index 000000000..e21c84780 --- /dev/null +++ b/unpacked/jax/output/CommonHTML/fonts/TeX/fontdata.js @@ -0,0 +1,1578 @@ +/* -*- Mode: Javascript; indent-tabs-mode:nil; js-indent-level: 2 -*- */ +/* vim: set ts=2 et sw=2 tw=80: */ + +/************************************************************* + * + * MathJax/jax/output/CommonHTML/fonts/TeX/fontdata.js + * + * Initializes the CommonHTML OutputJax to use the MathJax TeX fonts + * for displaying mathematics. + * + * --------------------------------------------------------------------- + * + * Copyright (c) 2015 The MathJax Consortium + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +(function (CHTML,MML,AJAX) { + var VERSION = "2.5.0"; + + var MAIN = "MathJax_Main", + BOLD = "MathJax_Main-bold", + ITALIC = "MathJax_Math-italic", + AMS = "MathJax_AMS", + SIZE1 = "MathJax_Size1", + SIZE2 = "MathJax_Size2", + SIZE3 = "MathJax_Size3", + SIZE4 = "MathJax_Size4"; + var H = "H", V = "V", EXTRAH = {load:"extra", dir:H}, EXTRAV = {load:"extra", dir:V}; + var ARROWREP = [0x2212,MAIN,0,0,0,0,.1]; // add depth for arrow extender + var DARROWREP = [0x3D,MAIN,0,0,0,0,.1]; // add depth for arrow extender + + CHTML.FONTDEF.TeX = { + version: VERSION, + + TeX_factor: 1, // TeX em's to font em's + baselineskip: 1.2, + lineH: .8, lineD: .2, + + FONTS: { + "MathJax_Main": "Main/Regular/Main.js", + "MathJax_Main-bold": "Main/Bold/Main.js", + "MathJax_Main-italic": "Main/Italic/Main.js", + "MathJax_Math-italic": "Math/Italic/Main.js", + "MathJax_Math-bold-italic": "Math/BoldItalic/Main.js", + "MathJax_Caligraphic": "Caligraphic/Regular/Main.js", + "MathJax_Size1": "Size1/Regular/Main.js", + "MathJax_Size2": "Size2/Regular/Main.js", + "MathJax_Size3": "Size3/Regular/Main.js", + "MathJax_Size4": "Size4/Regular/Main.js", + "MathJax_AMS": "AMS/Regular/Main.js", + "MathJax_Fraktur": "Fraktur/Regular/Main.js", + "MathJax_Fraktur-bold": "Fraktur/Bold/Main.js", + "MathJax_SansSerif": "SansSerif/Regular/Main.js", + "MathJax_SansSerif-bold": "SansSerif/Bold/Main.js", + "MathJax_SansSerif-italic": "SansSerif/Italic/Main.js", + "MathJax_Script": "Script/Regular/Main.js", + "MathJax_Typewriter": "Typewriter/Regular/Main.js", + "MathJax_Caligraphic-bold": "Caligraphic/Bold/Main.js" + }, + + VARIANT: { + "normal": {fonts:[MAIN,SIZE1,AMS], cache: {}, + offsetG: 0x03B1, variantG: "italic", + remap: {0x391:0x41, 0x392:0x42, 0x395:0x45, 0x396:0x5A, 0x397:0x48, + 0x399:0x49, 0x39A:0x4B, 0x39C:0x4D, 0x39D:0x4E, 0x39F:0x4F, + 0x3A1:0x50, 0x3A4:0x54, 0x3A7:0x58, + 0x2216:[0x2216,"-TeX-variant"], // \smallsetminus + 0x210F:[0x210F,"-TeX-variant"], // \hbar + 0x2032:[0x27,"sans-serif-italic"], // HACK: a smaller prime + 0x29F8:[0x002F,MML.VARIANT.ITALIC]}}, + "bold": {fonts:[BOLD], bold:true, cache: {}, chain:"normal", + offsetG: 0x03B1, variantG: "bold-italic", + remap: {0x391:0x41, 0x392:0x42, 0x395:0x45, 0x396:0x5A, 0x397:0x48, + 0x399:0x49, 0x39A:0x4B, 0x39C:0x4D, 0x39D:0x4E, 0x39F:0x4F, + 0x3A1:0x50, 0x3A4:0x54, 0x3A7:0x58, 0x29F8:[0x002F,"bold-italic"], + 0x219A:"\u2190\u0338", 0x219B:"\u2192\u0338", 0x21AE:"\u2194\u0338", + 0x21CD:"\u21D0\u0338", 0x21CE:"\u21D4\u0338", 0x21CF:"\u21D2\u0338", + 0x2204:"\u2203\u0338", 0x2224:"\u2223\u0338", 0x2226:"\u2225\u0338", + 0x2241:"\u223C\u0338", 0x2247:"\u2245\u0338", + 0x226E:"<\u0338", 0x226F:">\u0338", + 0x2270:"\u2264\u0338", 0x2271:"\u2265\u0338", + 0x2280:"\u227A\u0338", 0x2281:"\u227B\u0338", + 0x2288:"\u2286\u0338", 0x2289:"\u2287\u0338", + 0x22AC:"\u22A2\u0338", 0x22AD:"\u22A8\u0338", +// 0x22AE:"\u22A9\u0338", 0x22AF:"\u22AB\u0338", + 0x22E0:"\u227C\u0338", 0x22E1:"\u227D\u0338"//, +// 0x22EA:"\u22B2\u0338", 0x22EB:"\u22B3\u0338", +// 0x22EC:"\u22B4\u0338", 0x22ED:"\u22B5\u0338" + }}, + "italic": {fonts:[ITALIC,"MathJax_Main-italic"], italic:true, cache: {}, chain:"normal", + remap: {0x391:0x41, 0x392:0x42, 0x395:0x45, 0x396:0x5A, 0x397:0x48, + 0x399:0x49, 0x39A:0x4B, 0x39C:0x4D, 0x39D:0x4E, 0x39F:0x4F, + 0x3A1:0x50, 0x3A4:0x54, 0x3A7:0x58}}, + "bold-italic": {fonts:["MathJax_Math-bold-italic"], bold:true, italic:true, + cache: {}, chain:"bold", + remap: {0x391:0x41, 0x392:0x42, 0x395:0x45, 0x396:0x5A, 0x397:0x48, + 0x399:0x49, 0x39A:0x4B, 0x39C:0x4D, 0x39D:0x4E, 0x39F:0x4F, + 0x3A1:0x50, 0x3A4:0x54, 0x3A7:0x58}}, + "double-struck": {fonts:[AMS], cache:{}, chain:"normal"}, + "fraktur": {fonts:["MathJax_Fraktur"], cache:{}, chain:"normal"}, + "bold-fraktur": {fonts:["MathJax_Fraktur-bold"], bold:true, cache:{}, chain:"bold"}, + "script": {fonts:["MathJax_Script"], cache:{}, chain:"normal"}, + "bold-script": {fonts:["MathJax_Script"], bold:true, cache:{}, chain:"bold"}, + "sans-serif": {fonts:["MathJax_SansSerif"], cache:{}, chain:"normal"}, + "bold-sans-serif": {fonts:["MathJax_SansSerif-bold"], bold:true, cache:{}, chain:"bold"}, + "sans-serif-italic": {fonts:["MathJax_SansSerif-italic"], italic:true, cache:{}, chain:"italic"}, + "sans-serif-bold-italic": {fonts:["MathJax_SansSerif-italic"], bold:true, italic:true, cache:{}, chain:"italic"}, + "monospace": {fonts:["MathJax_Typewriter"], cache:{}, chain:"normal"}, + "-tex-caligraphic": {fonts:["MathJax_Caligraphic"], offsetA: 0x41, variantA: "italic", cache:{}, chain:"normal"}, + "-tex-oldstyle": {fonts:["MathJax_Caligraphic"], cache:{}, chain:"normal"}, + "-tex-mathit": {fonts:["MathJax_Main-italic"], italic:true, noIC: true, cache:{}, chain:"normal", + remap: {0x391:0x41, 0x392:0x42, 0x395:0x45, 0x396:0x5A, 0x397:0x48, + 0x399:0x49, 0x39A:0x4B, 0x39C:0x4D, 0x39D:0x4E, 0x39F:0x4F, + 0x3A1:0x50, 0x3A4:0x54, 0x3A7:0x58}}, + "-TeX-variant": {fonts:[AMS,MAIN,SIZE1], // HACK: to get larger prime for \prime + remap: { + 0x2268: 0xE00C, 0x2269: 0xE00D, 0x2270: 0xE011, 0x2271: 0xE00E, + 0x2A87: 0xE010, 0x2A88: 0xE00F, 0x2224: 0xE006, 0x2226: 0xE007, + 0x2288: 0xE016, 0x2289: 0xE018, 0x228A: 0xE01A, 0x228B: 0xE01B, + 0x2ACB: 0xE017, 0x2ACC: 0xE019, 0x03DC: 0xE008, 0x03F0: 0xE009, + 0x2216:[0x2216,MML.VARIANT.NORMAL], // \setminus + 0x210F:[0x210F,MML.VARIANT.NORMAL] // \hslash + }}, + "-largeOp": {fonts:[SIZE2,SIZE1,MAIN]}, + "-smallOp": {fonts:[SIZE1,MAIN]}, + "-tex-caligraphic-bold": {fonts:["MathJax_Caligraphic-bold","MathJax_Main-bold"], bold:true, cache:{}, chain:"normal", + offsetA: 0x41, variantA: "bold-italic"}, + "-tex-oldstyle-bold": {fonts:["MathJax_Caligraphic-bold","MathJax_Main-bold"], bold:true, cache:{}, chain:"normal"} + }, + + RANGES: [ + {name: "alpha", low: 0x61, high: 0x7A, offset: "A", add: 32}, + {name: "number", low: 0x30, high: 0x39, offset: "N"}, + {name: "greek", low: 0x03B1, high: 0x03F6, offset: "G"} + ], + + RULECHAR: 0x2212, + + REMAP: { + 0x203E: 0x2C9, // overline + 0x20D0: 0x21BC, 0x20D1: 0x21C0, // combining left and right harpoons + 0x20D6: 0x2190, 0x20E1: 0x2194, // combining left arrow and lef-right arrow + 0x20EC: 0x21C1, 0x20ED: 0x21BD, // combining low right and left harpoons + 0x20EE: 0x2190, 0x20EF: 0x2192, // combining low left and right arrows + 0x20F0: 0x2A, // combining asterisk + 0xFE37: 0x23DE, 0xFE38: 0x23DF, // OverBrace, UnderBrace + + 0xB7: 0x22C5, // center dot + 0x2B9: 0x2032, // prime, + 0x3D2: 0x3A5, // Upsilon + 0x2015: 0x2014, 0x2017: 0x5F, // horizontal bars + 0x2022: 0x2219, 0x2044: 0x2F, // bullet, fraction slash + 0x2305: 0x22BC, 0x2306: 0x2A5E, // barwedge, doublebarwedge + 0x25AA: 0x25A0, 0x25B4: 0x25B2, // blacksquare, blacktriangle + 0x25B5: 0x25B3, 0x25B8: 0x25B6, // triangle, blacktriangleright + 0x25BE: 0x25BC, 0x25BF: 0x25BD, // blacktriangledown, triangledown + 0x25C2: 0x25C0, // blacktriangleleft + 0x2329: 0x27E8, 0x232A: 0x27E9, // langle, rangle + 0x3008: 0x27E8, 0x3009: 0x27E9, // langle, rangle + 0x2758: 0x2223, // VerticalSeparator + 0x2A2F: 0xD7, // cross product + + 0x25FB: 0x25A1, 0x25FC: 0x25A0, // square, blacksquare + + // + // Letter-like symbols (that appear elsewhere) + // + 0x2102: [0x0043,MML.VARIANT.DOUBLESTRUCK], +// 0x210A: [0x0067,MML.VARIANT.SCRIPT], + 0x210B: [0x0048,MML.VARIANT.SCRIPT], + 0x210C: [0x0048,MML.VARIANT.FRAKTUR], + 0x210D: [0x0048,MML.VARIANT.DOUBLESTRUCK], + 0x210E: [0x0068,MML.VARIANT.ITALIC], + 0x2110: [0x004A,MML.VARIANT.SCRIPT], + 0x2111: [0x0049,MML.VARIANT.FRAKTUR], + 0x2112: [0x004C,MML.VARIANT.SCRIPT], + 0x2115: [0x004E,MML.VARIANT.DOUBLESTRUCK], + 0x2119: [0x0050,MML.VARIANT.DOUBLESTRUCK], + 0x211A: [0x0051,MML.VARIANT.DOUBLESTRUCK], + 0x211B: [0x0052,MML.VARIANT.SCRIPT], + 0x211C: [0x0052,MML.VARIANT.FRAKTUR], + 0x211D: [0x0052,MML.VARIANT.DOUBLESTRUCK], + 0x2124: [0x005A,MML.VARIANT.DOUBLESTRUCK], + 0x2126: [0x03A9,MML.VARIANT.NORMAL], + 0x2128: [0x005A,MML.VARIANT.FRAKTUR], + 0x212C: [0x0042,MML.VARIANT.SCRIPT], + 0x212D: [0x0043,MML.VARIANT.FRAKTUR], +// 0x212F: [0x0065,MML.VARIANT.SCRIPT], + 0x2130: [0x0045,MML.VARIANT.SCRIPT], + 0x2131: [0x0046,MML.VARIANT.SCRIPT], + 0x2133: [0x004D,MML.VARIANT.SCRIPT], +// 0x2134: [0x006F,MML.VARIANT.SCRIPT], + + 0x2247: 0x2246, // wrong placement of this character + 0x231C: 0x250C, 0x231D:0x2510, // wrong placement of \ulcorner, \urcorner + 0x231E: 0x2514, 0x231F:0x2518, // wrong placement of \llcorner, \lrcorner + + // + // compound symbols not in these fonts + // + 0x2204: "\u2203\u0338", // \not\exists + 0x220C: "\u220B\u0338", // \not\ni + 0x2244: "\u2243\u0338", // \not\simeq + 0x2249: "\u2248\u0338", // \not\approx + 0x2262: "\u2261\u0338", // \not\equiv + 0x226D: "\u224D\u0338", // \not\asymp + 0x2274: "\u2272\u0338", // \not\lesssim + 0x2275: "\u2273\u0338", // \not\gtrsim + 0x2278: "\u2276\u0338", // \not\lessgtr + 0x2279: "\u2277\u0338", // \not\gtrless + 0x2284: "\u2282\u0338", // \not\subset + 0x2285: "\u2283\u0338", // \not\supset + 0x22E2: "\u2291\u0338", // \not\sqsubseteq + 0x22E3: "\u2292\u0338", // \not\sqsupseteq + + 0x2A0C: "\u222C\u222C", // quadruple integral + + 0x2033: "\u2032\u2032", // double prime + 0x2034: "\u2032\u2032\u2032", // triple prime + 0x2036: "\u2035\u2035", // double back prime + 0x2037: "\u2035\u2035\u2035", // trile back prime + 0x2057: "\u2032\u2032\u2032\u2032", // quadruple prime + 0x20DB: "...", // combining three dots above (only works with mover/under) + 0x20DC: "...." // combining four dots above (only works with mover/under) + }, + + REMAPACCENT: { + "\u2192":"\u20D7", + "\u2032":"'", + "\u2035":"`" + }, + REMAPACCENTUNDER: { + }, + + PLANE1MAP: [ + [0x1D400,0x1D419, 0x41, MML.VARIANT.BOLD], + [0x1D41A,0x1D433, 0x61, MML.VARIANT.BOLD], + [0x1D434,0x1D44D, 0x41, MML.VARIANT.ITALIC], + [0x1D44E,0x1D467, 0x61, MML.VARIANT.ITALIC], + [0x1D468,0x1D481, 0x41, MML.VARIANT.BOLDITALIC], + [0x1D482,0x1D49B, 0x61, MML.VARIANT.BOLDITALIC], + [0x1D49C,0x1D4B5, 0x41, MML.VARIANT.SCRIPT], +// [0x1D4B6,0x1D4CF, 0x61, MML.VARIANT.SCRIPT], +// [0x1D4D0,0x1D4E9, 0x41, MML.VARIANT.BOLDSCRIPT], +// [0x1D4EA,0x1D503, 0x61, MML.VARIANT.BOLDSCRIPT], + [0x1D504,0x1D51D, 0x41, MML.VARIANT.FRAKTUR], + [0x1D51E,0x1D537, 0x61, MML.VARIANT.FRAKTUR], + [0x1D538,0x1D551, 0x41, MML.VARIANT.DOUBLESTRUCK], +// [0x1D552,0x1D56B, 0x61, MML.VARIANT.DOUBLESTRUCK], + [0x1D56C,0x1D585, 0x41, MML.VARIANT.BOLDFRAKTUR], + [0x1D586,0x1D59F, 0x61, MML.VARIANT.BOLDFRAKTUR], + [0x1D5A0,0x1D5B9, 0x41, MML.VARIANT.SANSSERIF], + [0x1D5BA,0x1D5D3, 0x61, MML.VARIANT.SANSSERIF], + [0x1D5D4,0x1D5ED, 0x41, MML.VARIANT.BOLDSANSSERIF], + [0x1D5EE,0x1D607, 0x61, MML.VARIANT.BOLDSANSSERIF], + [0x1D608,0x1D621, 0x41, MML.VARIANT.SANSSERIFITALIC], + [0x1D622,0x1D63B, 0x61, MML.VARIANT.SANSSERIFITALIC], +// [0x1D63C,0x1D655, 0x41, MML.VARIANT.SANSSERIFBOLDITALIC], +// [0x1D656,0x1D66F, 0x61, MML.VARIANT.SANSSERIFBOLDITALIC], + [0x1D670,0x1D689, 0x41, MML.VARIANT.MONOSPACE], + [0x1D68A,0x1D6A3, 0x61, MML.VARIANT.MONOSPACE], + + [0x1D6A8,0x1D6C1, 0x391, MML.VARIANT.BOLD], +// [0x1D6C2,0x1D6E1, 0x3B1, MML.VARIANT.BOLD], + [0x1D6E2,0x1D6FA, 0x391, MML.VARIANT.ITALIC], + [0x1D6FC,0x1D71B, 0x3B1, MML.VARIANT.ITALIC], + [0x1D71C,0x1D734, 0x391, MML.VARIANT.BOLDITALIC], + [0x1D736,0x1D755, 0x3B1, MML.VARIANT.BOLDITALIC], + [0x1D756,0x1D76E, 0x391, MML.VARIANT.BOLDSANSSERIF], +// [0x1D770,0x1D78F, 0x3B1, MML.VARIANT.BOLDSANSSERIF], + [0x1D790,0x1D7A8, 0x391, MML.VARIANT.SANSSERIFBOLDITALIC], +// [0x1D7AA,0x1D7C9, 0x3B1, MML.VARIANT.SANSSERIFBOLDITALIC], + + [0x1D7CE,0x1D7D7, 0x30, MML.VARIANT.BOLD], +// [0x1D7D8,0x1D7E1, 0x30, MML.VARIANT.DOUBLESTRUCK], + [0x1D7E2,0x1D7EB, 0x30, MML.VARIANT.SANSSERIF], + [0x1D7EC,0x1D7F5, 0x30, MML.VARIANT.BOLDSANSSERIF], + [0x1D7F6,0x1D7FF, 0x30, MML.VARIANT.MONOSPACE] + ], + + REMAPGREEK: { + 0x391: 0x41, 0x392: 0x42, 0x395: 0x45, 0x396: 0x5A, + 0x397: 0x48, 0x399: 0x49, 0x39A: 0x4B, 0x39C: 0x4D, + 0x39D: 0x4E, 0x39F: 0x4F, 0x3A1: 0x50, 0x3A2: 0x398, + 0x3A4: 0x54, 0x3A7: 0x58, 0x3AA: 0x2207, + 0x3CA: 0x2202, 0x3CB: 0x3F5, 0x3CC: 0x3D1, 0x3CD: 0x3F0, + 0x3CE: 0x3D5, 0x3CF: 0x3F1, 0x3D0: 0x3D6 + }, + + RemapPlane1: function (n,variant) { + for (var i = 0, m = this.PLANE1MAP.length; i < m; i++) { + if (n < this.PLANE1MAP[i][0]) break; + if (n <= this.PLANE1MAP[i][1]) { + n = n - this.PLANE1MAP[i][0] + this.PLANE1MAP[i][2]; + if (this.REMAPGREEK[n]) {n = this.REMAPGREEK[n]} + variant = this.VARIANT[this.PLANE1MAP[i][3]]; + break; + } + } + return {n: n, variant: variant}; + }, + + DELIMITERS: { + 0x0028: // ( + { + dir: V, HW: [[1,MAIN],[1.2,SIZE1],[1.8,SIZE2],[2.4,SIZE3],[3.0,SIZE4]], + stretch: {top: [0x239B,SIZE4], ext: [0x239C,SIZE4], bot: [0x239D,SIZE4]} + }, + 0x0029: // ) + { + dir: V, HW: [[1,MAIN],[1.2,SIZE1],[1.8,SIZE2],[2.4,SIZE3],[3.0,SIZE4]], + stretch: {top:[0x239E,SIZE4], ext:[0x239F,SIZE4], bot:[0x23A0,SIZE4]} + }, + 0x002F: // / + { + dir: V, HW: [[1,MAIN],[1.2,SIZE1],[1.8,SIZE2],[2.4,SIZE3],[3.0,SIZE4]] + }, + 0x005B: // [ + { + dir: V, HW: [[1,MAIN],[1.2,SIZE1],[1.8,SIZE2],[2.4,SIZE3],[3.0,SIZE4]], + stretch: {top:[0x23A1,SIZE4], ext:[0x23A2,SIZE4], bot:[0x23A3,SIZE4]} + }, + 0x005C: // \ + { + dir: V, HW: [[1,MAIN],[1.2,SIZE1],[1.8,SIZE2],[2.4,SIZE3],[3.0,SIZE4]] + }, + 0x005D: // ] + { + dir: V, HW: [[1,MAIN],[1.2,SIZE1],[1.8,SIZE2],[2.4,SIZE3],[3.0,SIZE4]], + stretch: {top:[0x23A4,SIZE4], ext:[0x23A5,SIZE4], bot:[0x23A6,SIZE4]} + }, + 0x007B: // { + { + dir: V, HW: [[1,MAIN],[1.2,SIZE1],[1.8,SIZE2],[2.4,SIZE3],[3.0,SIZE4]], + stretch: {top:[0x23A7,SIZE4], mid:[0x23A8,SIZE4], bot:[0x23A9,SIZE4], ext:[0x23AA,SIZE4]} + }, + 0x007C: // | + { + dir: V, HW: [[1,MAIN]], stretch: {ext:[0x2223,MAIN]} + }, + 0x007D: // } + { + dir: V, HW: [[1,MAIN],[1.2,SIZE1],[1.8,SIZE2],[2.4,SIZE3],[3.0,SIZE4]], + stretch: {top: [0x23AB,SIZE4], mid:[0x23AC,SIZE4], bot: [0x23AD,SIZE4], ext: [0x23AA,SIZE4]} + }, + 0x00AF: // macron + { + dir: H, HW: [[.59,MAIN]], stretch: {rep:[0xAF,MAIN]} + }, + 0x02C6: // wide hat + { + dir: H, HW: [[.267+.25,MAIN],[.567+.25,SIZE1],[1.005+.33,SIZE2],[1.447+.33,SIZE3],[1.909,SIZE4]] + }, + 0x02DC: // wide tilde + { + dir: H, HW: [[.333+.25,MAIN],[.555+.25,SIZE1],[1+.33,SIZE2],[1.443+.33,SIZE3],[1.887,SIZE4]] + }, + 0x2016: // vertical arrow extension + { + dir: V, HW: [[.602,SIZE1],[1,MAIN,null,0x2225]], stretch: {ext:[0x2225,MAIN]} + }, + 0x2190: // left arrow + { + dir: H, HW: [[1,MAIN]], stretch: {left:[0x2190,MAIN], rep:ARROWREP} + }, + 0x2191: // \uparrow + { + dir: V, HW: [[.888,MAIN]], stretch: {top:[0x2191,SIZE1], ext:[0x23D0,SIZE1]} + }, + 0x2192: // right arrow + { + dir: H, HW: [[1,MAIN]], stretch: {rep:ARROWREP, right:[0x2192,MAIN]} + }, + 0x2193: // \downarrow + { + dir: V, HW: [[.888,MAIN]], stretch: {ext:[0x23D0,SIZE1], bot:[0x2193,SIZE1]} + }, + 0x2194: // left-right arrow + { + dir: H, HW: [[1,MAIN]], + stretch: {left:[0x2190,MAIN], rep:ARROWREP, right:[0x2192,MAIN]} + }, + 0x2195: // \updownarrow + { + dir: V, HW: [[1.044,MAIN]], + stretch: {top:[0x2191,SIZE1], ext:[0x23D0,SIZE1], bot:[0x2193,SIZE1]} + }, + 0x21D0: // left double arrow + { + dir: H, HW: [[1,MAIN]], stretch: {left:[0x21D0,MAIN], rep:DARROWREP} + }, + 0x21D1: // \Uparrow + { + dir: V, HW: [[.888,MAIN]], stretch: {top:[0x21D1,SIZE1], ext:[0x2016,SIZE1]} + }, + 0x21D2: // right double arrow + { + dir: H, HW: [[1,MAIN]], stretch: {rep:DARROWREP, right:[0x21D2,MAIN]} + }, + 0x21D3: // \Downarrow + { + dir: V, HW: [[.888,MAIN]], stretch: {ext:[0x2016,SIZE1], bot:[0x21D3,SIZE1]} + }, + 0x21D4: // left-right double arrow + { + dir: H, HW: [[1,MAIN]], + stretch: {left:[0x21D0,MAIN], rep:DARROWREP, right:[0x21D2,MAIN]} + }, + 0x21D5: // \Updownarrow + { + dir: V, HW: [[1.044,MAIN]], + stretch: {top:[0x21D1,SIZE1], ext:[0x2016,SIZE1], bot:[0x21D3,SIZE1]} + }, + 0x2212: // horizontal line + { + dir: H, HW: [[.778,MAIN]], stretch: {rep:[0x2212,MAIN]} + }, + 0x221A: // \surd + { + dir: V, HW: [[1,MAIN],[1.2,SIZE1],[1.8,SIZE2],[2.4,SIZE3],[3,SIZE4]], + stretch: {top:[0xE001,SIZE4], ext:[0xE000,SIZE4], bot:[0x23B7,SIZE4], fullExtenders:true} + }, + 0x2223: // \vert + { + dir: V, HW: [[1,MAIN]], stretch: {ext:[0x2223,MAIN]} + }, + 0x2225: // \Vert + { + dir: V, HW: [[1,MAIN]], stretch: {ext:[0x2225,MAIN]} + }, + 0x2308: // \lceil + { + dir: V, HW: [[1,MAIN],[1.2,SIZE1],[1.8,SIZE2],[2.4,SIZE3],[3.0,SIZE4]], + stretch: {top:[0x23A1,SIZE4], ext:[0x23A2,SIZE4]} + }, + 0x2309: // \rceil + { + dir: V, HW: [[1,MAIN],[1.2,SIZE1],[1.8,SIZE2],[2.4,SIZE3],[3.0,SIZE4]], + stretch: {top:[0x23A4,SIZE4], ext:[0x23A5,SIZE4]} + }, + 0x230A: // \lfloor + { + dir: V, HW: [[1,MAIN],[1.2,SIZE1],[1.8,SIZE2],[2.4,SIZE3],[3.0,SIZE4]], + stretch: {ext:[0x23A2,SIZE4], bot:[0x23A3,SIZE4]} + }, + 0x230B: // \rfloor + { + dir: V, HW: [[1,MAIN],[1.2,SIZE1],[1.8,SIZE2],[2.4,SIZE3],[3.0,SIZE4]], + stretch: {ext:[0x23A5,SIZE4], bot:[0x23A6,SIZE4]} + }, + 0x23AA: // \bracevert + { + dir: V, HW: [[.32,SIZE4]], + stretch: {top:[0x23AA,SIZE4], ext:[0x23AA,SIZE4], bot:[0x23AA,SIZE4]} + }, + 0x23B0: // \lmoustache + { + dir: V, HW: [[.989,MAIN]], + stretch: {top:[0x23A7,SIZE4], ext:[0x23AA,SIZE4], bot:[0x23AD,SIZE4]} + }, + 0x23B1: // \rmoustache + { + dir: V, HW: [[.989,MAIN]], + stretch: {top:[0x23AB,SIZE4], ext:[0x23AA,SIZE4], bot:[0x23A9,SIZE4]} + }, + 0x23D0: // vertical line extension + { + dir: V, HW: [[.602,SIZE1],[1,MAIN,null,0x2223]], stretch: {ext:[0x2223,MAIN]} + }, + 0x23DE: // horizontal brace down + { + dir: H, HW: [], + stretch: {min:.9, left:[0xE150,SIZE4], mid:[[0xE153,0xE152],SIZE4], right:[0xE151,SIZE4], rep:[0xE154,SIZE4]} + }, + 0x23DF: // horizontal brace up + { + dir: H, HW: [], + stretch: {min:.9, left:[0xE152,SIZE4], mid:[[0xE151,0xE150],SIZE4], right:[0xE153,SIZE4], rep:[0xE154,SIZE4]} + }, + 0x27E8: // \langle + { + dir: V, HW: [[1,MAIN],[1.2,SIZE1],[1.8,SIZE2],[2.4,SIZE3],[3.0,SIZE4]] + }, + 0x27E9: // \rangle + { + dir: V, HW: [[1,MAIN],[1.2,SIZE1],[1.8,SIZE2],[2.4,SIZE3],[3.0,SIZE4]] + }, + 0x27EE: // \lgroup + { + dir: V, HW: [[.989,MAIN]], + stretch: {top:[0x23A7,SIZE4], ext:[0x23AA,SIZE4], bot:[0x23A9,SIZE4]} + }, + 0x27EF: // \rgroup + { + dir: V, HW: [[.989,MAIN]], + stretch: {top:[0x23AB,SIZE4], ext:[0x23AA,SIZE4], bot:[0x23AD,SIZE4]} + }, + 0x002D: {alias: 0x2212, dir:H}, // minus + 0x005E: {alias: 0x02C6, dir:H}, // wide hat + 0x005F: {alias: 0x2212, dir:H}, // low line + 0x007E: {alias: 0x02DC, dir:H}, // wide tilde + 0x02C9: {alias: 0x00AF, dir:H}, // macron + 0x0302: {alias: 0x02C6, dir:H}, // wide hat + 0x0303: {alias: 0x02DC, dir:H}, // wide tilde + 0x030C: {alias: 0x02C7, dir:H}, // wide caron + 0x0332: {alias: 0x2212, dir:H}, // combining low line + 0x2015: {alias: 0x2212, dir:H}, // horizontal line + 0x2017: {alias: 0x2212, dir:H}, // horizontal line + 0x203E: {alias: 0x00AF, dir:H}, // overline + 0x2215: {alias: 0x002F, dir:V}, // division slash + 0x2329: {alias: 0x27E8, dir:V}, // langle + 0x232A: {alias: 0x27E9, dir:V}, // rangle + 0x23AF: {alias: 0x2212, dir:H}, // horizontal line extension + 0x2500: {alias: 0x2212, dir:H}, // horizontal line + 0x2758: {alias: 0x2223, dir:V}, // vertical separator + 0x3008: {alias: 0x27E8, dir:V}, // langle + 0x3009: {alias: 0x27E9, dir:V}, // rangle + 0xFE37: {alias: 0x23DE, dir:H}, // horizontal brace down + 0xFE38: {alias: 0x23DF, dir:H}, // horizontal brace up + + 0x003D: EXTRAH, // equal sign + 0x219E: EXTRAH, // left two-headed arrow + 0x21A0: EXTRAH, // right two-headed arrow + 0x21A4: EXTRAH, // left arrow from bar + 0x21A5: EXTRAV, // up arrow from bar + 0x21A6: EXTRAH, // right arrow from bar + 0x21A7: EXTRAV, // down arrow from bar + 0x21B0: EXTRAV, // up arrow with top leftwards + 0x21B1: EXTRAV, // up arrow with top right + 0x21BC: EXTRAH, // left harpoon with barb up + 0x21BD: EXTRAH, // left harpoon with barb down + 0x21BE: EXTRAV, // up harpoon with barb right + 0x21BF: EXTRAV, // up harpoon with barb left + 0x21C0: EXTRAH, // right harpoon with barb up + 0x21C1: EXTRAH, // right harpoon with barb down + 0x21C2: EXTRAV, // down harpoon with barb right + 0x21C3: EXTRAV, // down harpoon with barb left + 0x21DA: EXTRAH, // left triple arrow + 0x21DB: EXTRAH, // right triple arrow + 0x23B4: EXTRAH, // top square bracket + 0x23B5: EXTRAH, // bottom square bracket + 0x23DC: EXTRAH, // top paren + 0x23DD: EXTRAH, // bottom paren + 0x23E0: EXTRAH, // top tortoise shell + 0x23E1: EXTRAH, // bottom tortoise shell + 0x2906: EXTRAH, // leftwards double arrow from bar + 0x2907: EXTRAH, // rightwards double arrow from bar + 0x294E: EXTRAH, // left barb up right barb up harpoon + 0x294F: EXTRAV, // up barb right down barb right harpoon + 0x2950: EXTRAH, // left barb dow right barb down harpoon + 0x2951: EXTRAV, // up barb left down barb left harpoon + 0x295A: EXTRAH, // leftwards harpoon with barb up from bar + 0x295B: EXTRAH, // rightwards harpoon with barb up from bar + 0x295C: EXTRAV, // up harpoon with barb right from bar + 0x295D: EXTRAV, // down harpoon with barb right from bar + 0x295E: EXTRAH, // leftwards harpoon with barb down from bar + 0x295F: EXTRAH, // rightwards harpoon with barb down from bar + 0x2960: EXTRAV, // up harpoon with barb left from bar + 0x2961: EXTRAV, // down harpoon with barb left from bar + 0x27F5: {alias: 0x2190, dir:H}, // long left arrow + 0x27F6: {alias: 0x2192, dir:H}, // long right arrow + 0x27F7: {alias: 0x2194, dir:H}, // long left-right arrow + 0x27F8: {alias: 0x21D0, dir:H}, // long left double arrow + 0x27F9: {alias: 0x21D2, dir:H}, // long right double arrow + 0x27FA: {alias: 0x21D4, dir:H}, // long left-right double arrow + 0x27FB: {alias: 0x21A4, dir:H}, // long left arrow from bar + 0x27FC: {alias: 0x21A6, dir:H}, // long right arrow from bar + 0x27FD: {alias: 0x2906, dir:H}, // long left double arrow from bar + 0x27FE: {alias: 0x2907, dir:H} // long right double arrow from bar + } + }; + + CHTML.FONTDATA = CHTML.FONTDEF["TeX"]; + + CHTML.FONTDATA.FONTS['MathJax_Caligraphic'] = { + directory: 'Caligraphic/Regular', + skew: { + 0x41: 0.194, + 0x42: 0.139, + 0x43: 0.139, + 0x44: 0.0833, + 0x45: 0.111, + 0x46: 0.111, + 0x47: 0.111, + 0x48: 0.111, + 0x49: 0.0278, + 0x4A: 0.167, + 0x4B: 0.0556, + 0x4C: 0.139, + 0x4D: 0.139, + 0x4E: 0.0833, + 0x4F: 0.111, + 0x50: 0.0833, + 0x51: 0.111, + 0x52: 0.0833, + 0x53: 0.139, + 0x54: 0.0278, + 0x55: 0.0833, + 0x56: 0.0278, + 0x57: 0.0833, + 0x58: 0.139, + 0x59: 0.0833, + 0x5A: 0.139 + }, + 0x20: [0,0,250,0,0], // SPACE + 0x30: [452,22,500,39,460], // DIGIT ZERO + 0x31: [453,0,500,86,426], // DIGIT ONE + 0x32: [453,0,500,44,449], // DIGIT TWO + 0x33: [452,216,500,42,456], // DIGIT THREE + 0x34: [464,194,500,28,471], // DIGIT FOUR + 0x35: [453,216,500,50,448], // DIGIT FIVE + 0x36: [665,22,500,42,456], // DIGIT SIX + 0x37: [463,216,500,55,485], // DIGIT SEVEN + 0x38: [666,21,500,43,456], // DIGIT EIGHT + 0x39: [453,216,500,42,457], // DIGIT NINE + 0x41: [728,50,798,30,819], // LATIN CAPITAL LETTER A + 0x42: [705,22,657,32,664], // LATIN CAPITAL LETTER B + 0x43: [705,25,527,12,533], // LATIN CAPITAL LETTER C + 0x44: [683,0,771,19,766], // LATIN CAPITAL LETTER D + 0x45: [705,22,528,30,564], // LATIN CAPITAL LETTER E + 0x46: [683,32,719,18,829], // LATIN CAPITAL LETTER F + 0x47: [704,119,595,44,599], // LATIN CAPITAL LETTER G + 0x48: [683,48,845,18,803], // LATIN CAPITAL LETTER H + 0x49: [683,0,545,-30,642], // LATIN CAPITAL LETTER I + 0x4A: [683,119,678,47,839], // LATIN CAPITAL LETTER J + 0x4B: [705,22,762,32,732], // LATIN CAPITAL LETTER K + 0x4C: [705,22,690,32,656], // LATIN CAPITAL LETTER L + 0x4D: [705,50,1201,28,1137], // LATIN CAPITAL LETTER M + 0x4E: [789,50,820,-27,979], // LATIN CAPITAL LETTER N + 0x4F: [705,22,796,58,777], // LATIN CAPITAL LETTER O + 0x50: [683,57,696,19,733], // LATIN CAPITAL LETTER P + 0x51: [705,131,817,114,787], // LATIN CAPITAL LETTER Q + 0x52: [682,22,848,19,837], // LATIN CAPITAL LETTER R + 0x53: [705,22,606,18,642], // LATIN CAPITAL LETTER S + 0x54: [717,68,545,34,833], // LATIN CAPITAL LETTER T + 0x55: [683,28,626,-17,687], // LATIN CAPITAL LETTER U + 0x56: [683,52,613,25,658], // LATIN CAPITAL LETTER V + 0x57: [683,53,988,25,1034], // LATIN CAPITAL LETTER W + 0x58: [683,0,713,52,807], // LATIN CAPITAL LETTER X + 0x59: [683,143,668,31,714], // LATIN CAPITAL LETTER Y + 0x5A: [683,0,725,37,767], // LATIN CAPITAL LETTER Z + 0xA0: [0,0,250,0,0] // NO-BREAK SPACE + }; + + CHTML.FONTDATA.FONTS['MathJax_Main-bold'] = { + directory: 'Main/Bold', + weight: 'bold', + skew: { + 0x131: 0.0319, + 0x237: 0.0958, + 0x210F: -0.0319, + 0x2113: 0.128, + 0x2202: 0.0958 + }, + Ranges: [ + [0xA0,0xFF,"Latin1Supplement"], + [0x100,0x17F,"LatinExtendedA"], + [0x180,0x24F,"LatinExtendedB"], + [0x2B0,0x2FF,"SpacingModLetters"], + [0x300,0x36F,"CombDiacritMarks"], + [0x2000,0x206F,"GeneralPunctuation"], + [0x20D0,0x20FF,"CombDiactForSymbols"], + [0x2100,0x214F,"LetterlikeSymbols"], + [0x2190,0x21FF,"Arrows"], + [0x2200,0x22FF,"MathOperators"], + [0x2300,0x23FF,"MiscTechnical"], + [0x25A0,0x25FF,"GeometricShapes"], + [0x2600,0x26FF,"MiscSymbols"], + [0x27C0,0x27EF,"MiscMathSymbolsA"], + [0x27F0,0x27FF,"SupplementalArrowsA"], + [0x2A00,0x2AFF,"SuppMathOperators"] + ], + 0x20: [0,0,250,0,0], // SPACE + 0x21: [705,-1,350,89,260], // EXCLAMATION MARK + 0x22: [694,-329,603,38,492], // QUOTATION MARK + 0x23: [694,193,958,64,893], // NUMBER SIGN + 0x24: [750,56,575,64,510], // DOLLAR SIGN + 0x25: [750,56,958,65,893], // PERCENT SIGN + 0x26: [705,11,894,48,836], // AMPERSAND + 0x27: [694,-329,319,74,261], // APOSTROPHE + 0x28: [750,249,447,103,382], // LEFT PARENTHESIS + 0x29: [750,249,447,64,343], // RIGHT PARENTHESIS + 0x2A: [750,-306,575,73,501], // ASTERISK + 0x2B: [633,131,894,64,829], // PLUS SIGN + 0x2C: [171,194,319,74,258], // COMMA + 0x2D: [278,-166,383,13,318], // HYPHEN-MINUS + 0x2E: [171,-1,319,74,245], // FULL STOP + 0x2F: [750,250,575,63,511], // SOLIDUS + 0x30: [654,10,575,45,529], // DIGIT ZERO + 0x31: [655,0,575,80,494], // DIGIT ONE + 0x32: [654,0,575,57,517], // DIGIT TWO + 0x33: [655,11,575,47,526], // DIGIT THREE + 0x34: [656,0,575,32,542], // DIGIT FOUR + 0x35: [655,11,575,57,517], // DIGIT FIVE + 0x36: [655,11,575,48,526], // DIGIT SIX + 0x37: [676,11,575,64,558], // DIGIT SEVEN + 0x38: [654,11,575,48,526], // DIGIT EIGHT + 0x39: [654,11,575,48,526], // DIGIT NINE + 0x3A: [444,-1,319,74,245], // COLON + 0x3B: [444,194,319,74,248], // SEMICOLON + 0x3C: [587,85,894,96,797], // LESS-THAN SIGN + 0x3D: [393,-109,894,64,829], // EQUALS SIGN + 0x3E: [587,85,894,96,797], // GREATER-THAN SIGN + 0x3F: [700,-1,543,65,478], // QUESTION MARK + 0x40: [699,6,894,64,829], // COMMERCIAL AT + 0x41: [698,0,869,40,828], // LATIN CAPITAL LETTER A + 0x42: [686,0,818,39,752], // LATIN CAPITAL LETTER B + 0x43: [697,11,831,64,766], // LATIN CAPITAL LETTER C + 0x44: [686,0,882,39,817], // LATIN CAPITAL LETTER D + 0x45: [680,0,756,39,723], // LATIN CAPITAL LETTER E + 0x46: [680,0,724,39,675], // LATIN CAPITAL LETTER F + 0x47: [697,10,904,64,845], // LATIN CAPITAL LETTER G + 0x48: [686,0,900,39,860], // LATIN CAPITAL LETTER H + 0x49: [686,0,436,25,410], // LATIN CAPITAL LETTER I + 0x4A: [686,11,594,8,527], // LATIN CAPITAL LETTER J + 0x4B: [686,0,901,39,852], // LATIN CAPITAL LETTER K + 0x4C: [686,0,692,39,643], // LATIN CAPITAL LETTER L + 0x4D: [686,0,1092,39,1052], // LATIN CAPITAL LETTER M + 0x4E: [686,0,900,39,860], // LATIN CAPITAL LETTER N + 0x4F: [696,10,864,64,798], // LATIN CAPITAL LETTER O + 0x50: [686,0,786,39,721], // LATIN CAPITAL LETTER P + 0x51: [696,193,864,64,805], // LATIN CAPITAL LETTER Q + 0x52: [686,11,862,39,858], // LATIN CAPITAL LETTER R + 0x53: [697,11,639,64,574], // LATIN CAPITAL LETTER S + 0x54: [675,0,800,41,758], // LATIN CAPITAL LETTER T + 0x55: [686,11,885,39,845], // LATIN CAPITAL LETTER U + 0x56: [686,7,869,25,843], // LATIN CAPITAL LETTER V + 0x57: [686,7,1189,24,1164], // LATIN CAPITAL LETTER W + 0x58: [686,0,869,33,835], // LATIN CAPITAL LETTER X + 0x59: [686,0,869,19,849], // LATIN CAPITAL LETTER Y + 0x5A: [686,0,703,64,645], // LATIN CAPITAL LETTER Z + 0x5B: [750,250,319,128,293], // LEFT SQUARE BRACKET + 0x5C: [750,250,575,63,511], // REVERSE SOLIDUS + 0x5D: [750,250,319,25,190], // RIGHT SQUARE BRACKET + 0x5E: [694,-520,575,126,448], // CIRCUMFLEX ACCENT + 0x5F: [-10,61,575,0,574], // LOW LINE + 0x60: [706,-503,575,114,338], // GRAVE ACCENT + 0x61: [453,6,559,32,558], // LATIN SMALL LETTER A + 0x62: [694,6,639,29,600], // LATIN SMALL LETTER B + 0x63: [453,6,511,39,478], // LATIN SMALL LETTER C + 0x64: [694,6,639,38,609], // LATIN SMALL LETTER D + 0x65: [452,6,527,32,494], // LATIN SMALL LETTER E + 0x66: [700,0,351,40,452], // LATIN SMALL LETTER F + 0x67: [455,201,575,30,558], // LATIN SMALL LETTER G + 0x68: [694,0,639,37,623], // LATIN SMALL LETTER H + 0x69: [695,0,319,40,294], // LATIN SMALL LETTER I + 0x6A: [695,200,351,-71,274], // LATIN SMALL LETTER J + 0x6B: [694,0,607,29,587], // LATIN SMALL LETTER K + 0x6C: [694,0,319,40,301], // LATIN SMALL LETTER L + 0x6D: [450,0,958,37,942], // LATIN SMALL LETTER M + 0x6E: [450,0,639,37,623], // LATIN SMALL LETTER N + 0x6F: [452,5,575,32,542], // LATIN SMALL LETTER O + 0x70: [450,194,639,29,600], // LATIN SMALL LETTER P + 0x71: [450,194,607,38,609], // LATIN SMALL LETTER Q + 0x72: [450,0,474,29,442], // LATIN SMALL LETTER R + 0x73: [453,6,454,38,414], // LATIN SMALL LETTER S + 0x74: [635,5,447,21,382], // LATIN SMALL LETTER T + 0x75: [450,6,639,37,623], // LATIN SMALL LETTER U + 0x76: [444,3,607,26,580], // LATIN SMALL LETTER V + 0x77: [444,4,831,25,805], // LATIN SMALL LETTER W + 0x78: [444,0,607,21,586], // LATIN SMALL LETTER X + 0x79: [444,200,607,23,580], // LATIN SMALL LETTER Y + 0x7A: [444,0,511,32,462], // LATIN SMALL LETTER Z + 0x7B: [750,250,575,70,504], // LEFT CURLY BRACKET + 0x7C: [750,249,319,129,190], // VERTICAL LINE + 0x7D: [750,250,575,70,504], // RIGHT CURLY BRACKET + 0x7E: [344,-202,575,96,478], // TILDE + 0x393: [680,0,692,39,643], // GREEK CAPITAL LETTER GAMMA + 0x394: [698,0,958,56,901], // GREEK CAPITAL LETTER DELTA + 0x398: [696,10,894,64,829], // GREEK CAPITAL LETTER THETA + 0x39B: [698,0,806,40,765], // GREEK CAPITAL LETTER LAMDA + 0x39E: [675,0,767,48,718], // GREEK CAPITAL LETTER XI + 0x3A0: [680,0,900,39,860], // GREEK CAPITAL LETTER PI + 0x3A3: [686,0,831,63,766], // GREEK CAPITAL LETTER SIGMA + 0x3A5: [697,0,894,64,829], // GREEK CAPITAL LETTER UPSILON + 0x3A6: [686,0,831,64,766], // GREEK CAPITAL LETTER PHI + 0x3A8: [686,0,894,64,829], // GREEK CAPITAL LETTER PSI + 0x3A9: [696,0,831,51,779] // GREEK CAPITAL LETTER OMEGA + }; + + CHTML.FONTDATA.FONTS['MathJax_Main-italic'] = { + directory: 'Main/Italic', + style: 'italic', + Ranges: [ + [0xA0,0xFF,"Latin1Supplement"], + [0x300,0x36F,"CombDiacritMarks"], + [0x2000,0x206F,"GeneralPunctuation"], + [0x2100,0x214F,"LetterlikeSymbols"] + ], + 0x20: [0,0,250,0,0], // SPACE + 0x21: [716,0,307,107,380], // EXCLAMATION MARK + 0x22: [694,-379,514,176,538], // QUOTATION MARK + 0x23: [694,194,818,115,828], // NUMBER SIGN + 0x25: [750,56,818,145,847], // PERCENT SIGN + 0x26: [716,22,767,127,802], // AMPERSAND + 0x27: [694,-379,307,213,377], // APOSTROPHE + 0x28: [750,250,409,144,517], // LEFT PARENTHESIS + 0x29: [750,250,409,17,390], // RIGHT PARENTHESIS + 0x2A: [750,-320,511,195,584], // ASTERISK + 0x2B: [557,57,767,139,753], // PLUS SIGN + 0x2C: [121,194,307,69,232], // COMMA + 0x2D: [251,-180,358,84,341], // HYPHEN-MINUS + 0x2E: [121,0,307,107,231], // FULL STOP + 0x2F: [750,250,511,19,617], // SOLIDUS + 0x30: [665,21,511,110,562], // DIGIT ZERO + 0x31: [666,0,511,110,468], // DIGIT ONE + 0x32: [666,22,511,76,551], // DIGIT TWO + 0x33: [666,22,511,96,562], // DIGIT THREE + 0x34: [666,194,511,46,478], // DIGIT FOUR + 0x35: [666,22,511,106,567], // DIGIT FIVE + 0x36: [665,22,511,120,565], // DIGIT SIX + 0x37: [666,22,511,136,634], // DIGIT SEVEN + 0x38: [666,21,511,99,553], // DIGIT EIGHT + 0x39: [666,22,511,107,553], // DIGIT NINE + 0x3A: [431,0,307,107,308], // COLON + 0x3B: [431,194,307,70,308], // SEMICOLON + 0x3D: [367,-133,767,116,776], // EQUALS SIGN + 0x3F: [716,0,511,195,551], // QUESTION MARK + 0x40: [705,11,767,152,789], // COMMERCIAL AT + 0x41: [716,0,743,58,696], // LATIN CAPITAL LETTER A + 0x42: [683,0,704,57,732], // LATIN CAPITAL LETTER B + 0x43: [705,21,716,150,812], // LATIN CAPITAL LETTER C + 0x44: [683,0,755,56,775], // LATIN CAPITAL LETTER D + 0x45: [680,0,678,54,743], // LATIN CAPITAL LETTER E + 0x46: [680,-1,653,54,731], // LATIN CAPITAL LETTER F + 0x47: [705,22,774,150,812], // LATIN CAPITAL LETTER G + 0x48: [683,0,743,54,860], // LATIN CAPITAL LETTER H + 0x49: [683,0,386,49,508], // LATIN CAPITAL LETTER I + 0x4A: [683,21,525,78,622], // LATIN CAPITAL LETTER J + 0x4B: [683,0,769,54,859], // LATIN CAPITAL LETTER K + 0x4C: [683,0,627,54,628], // LATIN CAPITAL LETTER L + 0x4D: [683,0,897,58,1010], // LATIN CAPITAL LETTER M + 0x4E: [683,0,743,54,860], // LATIN CAPITAL LETTER N + 0x4F: [704,22,767,149,788], // LATIN CAPITAL LETTER O + 0x50: [683,0,678,55,729], // LATIN CAPITAL LETTER P + 0x51: [704,194,767,149,788], // LATIN CAPITAL LETTER Q + 0x52: [683,22,729,55,723], // LATIN CAPITAL LETTER R + 0x53: [705,22,562,74,633], // LATIN CAPITAL LETTER S + 0x54: [677,0,716,171,806], // LATIN CAPITAL LETTER T + 0x55: [683,22,743,194,860], // LATIN CAPITAL LETTER U + 0x56: [683,22,743,205,868], // LATIN CAPITAL LETTER V + 0x57: [683,22,999,205,1124], // LATIN CAPITAL LETTER W + 0x58: [683,0,743,50,825], // LATIN CAPITAL LETTER X + 0x59: [683,0,743,198,875], // LATIN CAPITAL LETTER Y + 0x5A: [683,0,613,80,704], // LATIN CAPITAL LETTER Z + 0x5B: [750,250,307,73,446], // LEFT SQUARE BRACKET + 0x5D: [750,250,307,-14,359], // RIGHT SQUARE BRACKET + 0x5E: [694,-527,511,260,528], // CIRCUMFLEX ACCENT + 0x5F: [-25,62,511,91,554], // LOW LINE + 0x61: [442,11,511,101,543], // LATIN SMALL LETTER A + 0x62: [694,11,460,108,467], // LATIN SMALL LETTER B + 0x63: [441,10,460,103,469], // LATIN SMALL LETTER C + 0x64: [694,11,511,101,567], // LATIN SMALL LETTER D + 0x65: [442,10,460,107,470], // LATIN SMALL LETTER E + 0x66: [705,204,307,-23,450], // LATIN SMALL LETTER F + 0x67: [442,205,460,46,494], // LATIN SMALL LETTER G + 0x68: [694,11,511,69,544], // LATIN SMALL LETTER H + 0x69: [656,10,307,75,340], // LATIN SMALL LETTER I + 0x6A: [656,204,307,-32,364], // LATIN SMALL LETTER J + 0x6B: [694,11,460,69,498], // LATIN SMALL LETTER K + 0x6C: [694,11,256,87,312], // LATIN SMALL LETTER L + 0x6D: [442,11,818,75,851], // LATIN SMALL LETTER M + 0x6E: [442,11,562,75,595], // LATIN SMALL LETTER N + 0x6F: [442,11,511,103,517], // LATIN SMALL LETTER O + 0x70: [442,194,511,6,518], // LATIN SMALL LETTER P + 0x71: [442,194,460,101,504], // LATIN SMALL LETTER Q + 0x72: [442,11,422,75,484], // LATIN SMALL LETTER R + 0x73: [442,11,409,76,418], // LATIN SMALL LETTER S + 0x74: [626,11,332,87,373], // LATIN SMALL LETTER T + 0x75: [441,11,537,75,570], // LATIN SMALL LETTER U + 0x76: [443,10,460,75,492], // LATIN SMALL LETTER V + 0x77: [443,11,664,75,696], // LATIN SMALL LETTER W + 0x78: [442,11,464,58,513], // LATIN SMALL LETTER X + 0x79: [441,205,486,75,522], // LATIN SMALL LETTER Y + 0x7A: [442,11,409,54,466], // LATIN SMALL LETTER Z + 0x7E: [318,-208,511,246,571], // TILDE + 0xA3: [714,11,769,88,699], // POUND SIGN + 0x131: [441,10,307,75,340], // LATIN SMALL LETTER DOTLESS I + 0x237: [442,204,332,-32,327], // LATIN SMALL LETTER DOTLESS J + 0x393: [680,0,627,54,705], // GREEK CAPITAL LETTER GAMMA + 0x394: [716,0,818,70,751], // GREEK CAPITAL LETTER DELTA + 0x398: [704,22,767,149,788], // GREEK CAPITAL LETTER THETA + 0x39B: [716,0,692,58,646], // GREEK CAPITAL LETTER LAMDA + 0x39E: [677,0,664,74,754], // GREEK CAPITAL LETTER XI + 0x3A0: [680,0,743,54,859], // GREEK CAPITAL LETTER PI + 0x3A3: [683,0,716,80,782], // GREEK CAPITAL LETTER SIGMA + 0x3A5: [705,0,767,213,832], // GREEK CAPITAL LETTER UPSILON + 0x3A6: [683,0,716,159,728], // GREEK CAPITAL LETTER PHI + 0x3A8: [683,0,767,207,824], // GREEK CAPITAL LETTER PSI + 0x3A9: [705,0,716,100,759] // GREEK CAPITAL LETTER OMEGA + }; + + CHTML.FONTDATA.FONTS['MathJax_Main'] = { + directory: 'Main/Regular', + skew: { + 0x131: 0.0278, + 0x237: 0.0833, + 0x2113: 0.111, + 0x2118: 0.111, + 0x2202: 0.0833 + }, + Ranges: [ + [0x2B0,0x2FF,"SpacingModLetters"], + [0x300,0x36F,"CombDiacritMarks"], + [0x25A0,0x25FF,"GeometricShapes"], + [0x2600,0x26FF,"MiscSymbols"] + ], + 0x20: [0,0,250,0,0], // SPACE + 0x21: [716,-1,278,78,199], // EXCLAMATION MARK + 0x22: [694,-379,500,34,372], // QUOTATION MARK + 0x23: [694,194,833,56,777], // NUMBER SIGN + 0x24: [750,56,500,55,444], // DOLLAR SIGN + 0x25: [750,56,833,56,776], // PERCENT SIGN + 0x26: [716,22,778,42,727], // AMPERSAND + 0x27: [694,-379,278,78,212], // APOSTROPHE + 0x28: [750,250,389,94,333], // LEFT PARENTHESIS + 0x29: [750,250,389,55,294], // RIGHT PARENTHESIS + 0x2A: [750,-320,500,64,435], // ASTERISK + 0x2B: [583,82,778,56,722], // PLUS SIGN + 0x2C: [121,194,278,78,210], // COMMA + 0x2D: [252,-179,333,11,277], // HYPHEN-MINUS + 0x2E: [120,0,278,78,199], // FULL STOP + 0x2F: [750,250,500,56,445], // SOLIDUS + 0x30: [666,22,500,39,460], // DIGIT ZERO + 0x31: [666,0,500,83,427], // DIGIT ONE + 0x32: [666,0,500,50,449], // DIGIT TWO + 0x33: [665,22,500,42,457], // DIGIT THREE + 0x34: [677,0,500,28,471], // DIGIT FOUR + 0x35: [666,22,500,50,449], // DIGIT FIVE + 0x36: [666,22,500,42,456], // DIGIT SIX + 0x37: [676,22,500,55,485], // DIGIT SEVEN + 0x38: [666,22,500,43,457], // DIGIT EIGHT + 0x39: [666,22,500,42,456], // DIGIT NINE + 0x3A: [430,0,278,78,199], // COLON + 0x3B: [430,194,278,78,202], // SEMICOLON + 0x3C: [540,40,778,83,694], // LESS-THAN SIGN + 0x3D: [367,-133,778,56,722], // EQUALS SIGN + 0x3E: [540,40,778,83,694], // GREATER-THAN SIGN + 0x3F: [705,-1,472,55,416], // QUESTION MARK + 0x40: [705,11,778,56,722], // COMMERCIAL AT + 0x41: [716,0,750,32,717], // LATIN CAPITAL LETTER A + 0x42: [683,0,708,28,651], // LATIN CAPITAL LETTER B + 0x43: [705,21,722,56,666], // LATIN CAPITAL LETTER C + 0x44: [683,0,764,27,708], // LATIN CAPITAL LETTER D + 0x45: [680,0,681,25,652], // LATIN CAPITAL LETTER E + 0x46: [680,0,653,25,610], // LATIN CAPITAL LETTER F + 0x47: [705,22,785,56,735], // LATIN CAPITAL LETTER G + 0x48: [683,0,750,25,724], // LATIN CAPITAL LETTER H + 0x49: [683,0,361,21,339], // LATIN CAPITAL LETTER I + 0x4A: [683,22,514,25,465], // LATIN CAPITAL LETTER J + 0x4B: [683,0,778,25,736], // LATIN CAPITAL LETTER K + 0x4C: [683,0,625,25,582], // LATIN CAPITAL LETTER L + 0x4D: [683,0,917,29,887], // LATIN CAPITAL LETTER M + 0x4E: [683,0,750,25,724], // LATIN CAPITAL LETTER N + 0x4F: [705,22,778,56,722], // LATIN CAPITAL LETTER O + 0x50: [683,0,681,27,624], // LATIN CAPITAL LETTER P + 0x51: [705,193,778,56,728], // LATIN CAPITAL LETTER Q + 0x52: [683,22,736,27,732], // LATIN CAPITAL LETTER R + 0x53: [705,22,556,55,500], // LATIN CAPITAL LETTER S + 0x54: [677,0,722,36,685], // LATIN CAPITAL LETTER T + 0x55: [683,22,750,25,724], // LATIN CAPITAL LETTER U + 0x56: [683,22,750,19,730], // LATIN CAPITAL LETTER V + 0x57: [683,22,1028,18,1009], // LATIN CAPITAL LETTER W + 0x58: [683,0,750,23,726], // LATIN CAPITAL LETTER X + 0x59: [683,0,750,11,738], // LATIN CAPITAL LETTER Y + 0x5A: [683,0,611,55,560], // LATIN CAPITAL LETTER Z + 0x5B: [750,250,278,118,255], // LEFT SQUARE BRACKET + 0x5C: [750,250,500,56,444], // REVERSE SOLIDUS + 0x5D: [750,250,278,22,159], // RIGHT SQUARE BRACKET + 0x5E: [694,-531,500,112,387], // CIRCUMFLEX ACCENT + 0x5F: [-25,62,500,0,499], // LOW LINE + 0x60: [699,-505,500,106,295], // GRAVE ACCENT + 0x61: [448,11,500,34,493], // LATIN SMALL LETTER A + 0x62: [694,11,556,20,522], // LATIN SMALL LETTER B + 0x63: [448,11,444,34,415], // LATIN SMALL LETTER C + 0x64: [694,11,556,34,535], // LATIN SMALL LETTER D + 0x65: [448,11,444,28,415], // LATIN SMALL LETTER E + 0x66: [705,0,306,26,372], // LATIN SMALL LETTER F + 0x67: [453,206,500,29,485], // LATIN SMALL LETTER G + 0x68: [694,0,556,25,542], // LATIN SMALL LETTER H + 0x69: [669,0,278,26,255], // LATIN SMALL LETTER I + 0x6A: [669,205,306,-55,218], // LATIN SMALL LETTER J + 0x6B: [694,0,528,20,511], // LATIN SMALL LETTER K + 0x6C: [694,0,278,26,263], // LATIN SMALL LETTER L + 0x6D: [442,0,833,25,819], // LATIN SMALL LETTER M + 0x6E: [442,0,556,25,542], // LATIN SMALL LETTER N + 0x6F: [448,10,500,28,471], // LATIN SMALL LETTER O + 0x70: [442,194,556,20,522], // LATIN SMALL LETTER P + 0x71: [442,194,528,33,535], // LATIN SMALL LETTER Q + 0x72: [442,0,392,20,364], // LATIN SMALL LETTER R + 0x73: [448,11,394,33,359], // LATIN SMALL LETTER S + 0x74: [615,10,389,18,333], // LATIN SMALL LETTER T + 0x75: [442,11,556,25,542], // LATIN SMALL LETTER U + 0x76: [431,11,528,19,508], // LATIN SMALL LETTER V + 0x77: [431,11,722,18,703], // LATIN SMALL LETTER W + 0x78: [431,0,528,11,516], // LATIN SMALL LETTER X + 0x79: [431,204,528,19,508], // LATIN SMALL LETTER Y + 0x7A: [431,0,444,28,401], // LATIN SMALL LETTER Z + 0x7B: [750,250,500,65,434], // LEFT CURLY BRACKET + 0x7C: [750,249,278,119,159], // VERTICAL LINE + 0x7D: [750,250,500,65,434], // RIGHT CURLY BRACKET + 0x7E: [318,-215,500,83,416], // TILDE + 0xA0: [0,0,250,0,0], // NO-BREAK SPACE + 0xA8: [669,-554,500,95,404], // DIAERESIS + 0xAC: [356,-89,667,56,611], // NOT SIGN + 0xAF: [590,-544,500,69,430], // MACRON + 0xB0: [715,-542,500,147,352], // DEGREE SIGN + 0xB1: [666,0,778,56,722], // PLUS-MINUS SIGN + 0xB4: [699,-505,500,203,393], // ACUTE ACCENT + 0xD7: [491,-9,778,147,630], // MULTIPLICATION SIGN + 0xF7: [537,36,778,56,721], // DIVISION SIGN + 0x131: [442,0,278,26,255], // LATIN SMALL LETTER DOTLESS I + 0x237: [442,205,306,-55,218], // LATIN SMALL LETTER DOTLESS J + 0x2C6: [694,-531,500,112,387], // MODIFIER LETTER CIRCUMFLEX ACCENT + 0x2C7: [644,-513,500,114,385], // CARON + 0x2C9: [590,-544,500,69,430], // MODIFIER LETTER MACRON + 0x2CA: [699,-505,500,203,393], // MODIFIER LETTER ACUTE ACCENT + 0x2CB: [699,-505,500,106,295], // MODIFIER LETTER GRAVE ACCENT + 0x2D8: [694,-515,500,92,407], // BREVE + 0x2D9: [669,-549,500,190,309], // DOT ABOVE + 0x2DC: [668,-565,500,83,416], // SMALL TILDE + 0x393: [680,0,625,25,582], // GREEK CAPITAL LETTER GAMMA + 0x394: [716,0,833,46,786], // GREEK CAPITAL LETTER DELTA + 0x398: [705,22,778,56,722], // GREEK CAPITAL LETTER THETA + 0x39B: [716,0,694,32,661], // GREEK CAPITAL LETTER LAMDA + 0x39E: [677,0,667,42,624], // GREEK CAPITAL LETTER XI + 0x3A0: [680,0,750,25,724], // GREEK CAPITAL LETTER PI + 0x3A3: [683,0,722,55,666], // GREEK CAPITAL LETTER SIGMA + 0x3A5: [705,0,778,55,722], // GREEK CAPITAL LETTER UPSILON + 0x3A6: [683,0,722,56,665], // GREEK CAPITAL LETTER PHI + 0x3A8: [683,0,778,55,722], // GREEK CAPITAL LETTER PSI + 0x3A9: [704,0,722,44,677], // GREEK CAPITAL LETTER OMEGA + 0x2002: [0,0,500,0,0], // ?? + 0x2003: [0,0,999,0,0], // ?? + 0x2004: [0,0,333,0,0], // ?? + 0x2005: [0,0,250,0,0], // ?? + 0x2006: [0,0,167,0,0], // ?? + 0x2009: [0,0,167,0,0], // ?? + 0x200A: [0,0,83,0,0], // ?? + 0x2013: [285,-248,500,0,499], // EN DASH + 0x2014: [285,-248,1000,0,999], // EM DASH + 0x2018: [694,-379,278,64,198], // LEFT SINGLE QUOTATION MARK + 0x2019: [694,-379,278,78,212], // RIGHT SINGLE QUOTATION MARK + 0x201C: [694,-379,500,128,466], // LEFT DOUBLE QUOTATION MARK + 0x201D: [694,-379,500,34,372], // RIGHT DOUBLE QUOTATION MARK + 0x2020: [705,216,444,55,389], // DAGGER + 0x2021: [705,205,444,55,389], // DOUBLE DAGGER + 0x2026: [120,0,1172,78,1093], // HORIZONTAL ELLIPSIS + 0x2032: [560,-43,275,30,262], // PRIME + 0x20D7: [714,-516,0,-471,-29], // COMBINING RIGHT ARROW ABOVE + 0x210F: [695,13,540,42,562], // stix-/hbar - Planck's over 2pi + 0x2111: [705,10,722,55,693], // BLACK-LETTER CAPITAL I + 0x2113: [705,20,417,6,397], // SCRIPT SMALL L + 0x2118: [453,216,636,67,625], // SCRIPT CAPITAL P + 0x211C: [716,22,722,40,715], // BLACK-LETTER CAPITAL R + 0x2135: [694,0,611,55,555], // ALEF SYMBOL + 0x2190: [511,11,1000,55,944], // LEFTWARDS ARROW + 0x2191: [694,193,500,17,483], // UPWARDS ARROW + 0x2192: [511,11,1000,56,944], // RIGHTWARDS ARROW + 0x2193: [694,194,500,17,483], // DOWNWARDS ARROW + 0x2194: [511,11,1000,55,944], // LEFT RIGHT ARROW + 0x2195: [772,272,500,17,483], // UP DOWN ARROW + 0x2196: [720,195,1000,29,944], // NORTH WEST ARROW + 0x2197: [720,195,1000,55,970], // NORTH EAST ARROW + 0x2198: [695,220,1000,55,970], // SOUTH EAST ARROW + 0x2199: [695,220,1000,29,944], // SOUTH WEST ARROW + 0x21A6: [511,11,1000,55,944], // RIGHTWARDS ARROW FROM BAR + 0x21A9: [511,11,1126,55,1070], // LEFTWARDS ARROW WITH HOOK + 0x21AA: [511,11,1126,55,1070], // RIGHTWARDS ARROW WITH HOOK + 0x21BC: [511,-230,1000,55,944], // LEFTWARDS HARPOON WITH BARB UPWARDS + 0x21BD: [270,11,1000,55,944], // LEFTWARDS HARPOON WITH BARB DOWNWARDS + 0x21C0: [511,-230,1000,56,944], // RIGHTWARDS HARPOON WITH BARB UPWARDS + 0x21C1: [270,11,1000,56,944], // RIGHTWARDS HARPOON WITH BARB DOWNWARDS + 0x21CC: [671,11,1000,55,944], // RIGHTWARDS HARPOON OVER LEFTWARDS HARPOON + 0x21D0: [525,24,1000,56,944], // LEFTWARDS DOUBLE ARROW + 0x21D1: [694,194,611,31,579], // UPWARDS DOUBLE ARROW + 0x21D2: [525,24,1000,56,944], // RIGHTWARDS DOUBLE ARROW + 0x21D3: [694,194,611,31,579], // DOWNWARDS DOUBLE ARROW + 0x21D4: [526,25,1000,34,966], // LEFT RIGHT DOUBLE ARROW + 0x21D5: [772,272,611,31,579], // UP DOWN DOUBLE ARROW + 0x2200: [694,22,556,0,556], // FOR ALL + 0x2202: [715,22,531,42,566], // PARTIAL DIFFERENTIAL + 0x2203: [694,0,556,56,500], // THERE EXISTS + 0x2205: [772,78,500,39,460], // EMPTY SET + 0x2207: [683,33,833,46,786], // NABLA + 0x2208: [540,40,667,84,583], // ELEMENT OF + 0x2209: [716,215,667,84,583], // stix-negated (vert) set membership, variant + 0x220B: [540,40,667,83,582], // CONTAINS AS MEMBER + 0x2212: [270,-230,778,84,694], // MINUS SIGN + 0x2213: [500,166,778,56,722], // MINUS-OR-PLUS SIGN + 0x2215: [750,250,500,56,445], // DIVISION SLASH + 0x2216: [750,250,500,56,444], // SET MINUS + 0x2217: [465,-35,500,64,435], // ASTERISK OPERATOR + 0x2218: [444,-55,500,55,444], // RING OPERATOR + 0x2219: [444,-55,500,55,444], // BULLET OPERATOR + 0x221A: [800,200,833,72,853], // SQUARE ROOT + 0x221D: [442,11,778,56,722], // PROPORTIONAL TO + 0x221E: [442,11,1000,55,944], // INFINITY + 0x2220: [694,0,722,55,666], // ANGLE + 0x2223: [750,249,278,119,159], // DIVIDES + 0x2225: [750,250,500,132,367], // PARALLEL TO + 0x2227: [598,22,667,55,611], // LOGICAL AND + 0x2228: [598,22,667,55,611], // LOGICAL OR + 0x2229: [598,22,667,55,611], // stix-intersection, serifs + 0x222A: [598,22,667,55,611], // stix-union, serifs + 0x222B: [716,216,417,55,472], // INTEGRAL + 0x223C: [367,-133,778,55,722], // TILDE OPERATOR + 0x2240: [583,83,278,55,222], // WREATH PRODUCT + 0x2243: [464,-36,778,55,722], // ASYMPTOTICALLY EQUAL TO + 0x2245: [589,-22,1000,55,722], // APPROXIMATELY EQUAL TO + 0x2248: [483,-55,778,55,722], // ALMOST EQUAL TO + 0x224D: [484,-16,778,55,722], // EQUIVALENT TO + 0x2250: [670,-133,778,56,722], // APPROACHES THE LIMIT + 0x2260: [716,215,778,56,722], // stix-not (vert) equals + 0x2261: [464,-36,778,56,722], // IDENTICAL TO + 0x2264: [636,138,778,83,694], // LESS-THAN OR EQUAL TO + 0x2265: [636,138,778,83,694], // GREATER-THAN OR EQUAL TO + 0x226A: [568,67,1000,56,944], // MUCH LESS-THAN + 0x226B: [567,67,1000,55,944], // MUCH GREATER-THAN + 0x227A: [539,41,778,84,694], // PRECEDES + 0x227B: [539,41,778,83,694], // SUCCEEDS + 0x2282: [540,40,778,84,694], // SUBSET OF + 0x2283: [540,40,778,83,693], // SUPERSET OF + 0x2286: [636,138,778,84,694], // SUBSET OF OR EQUAL TO + 0x2287: [636,138,778,83,693], // SUPERSET OF OR EQUAL TO + 0x228E: [598,22,667,55,611], // MULTISET UNION + 0x2291: [636,138,778,84,714], // SQUARE IMAGE OF OR EQUAL TO + 0x2292: [636,138,778,64,694], // SQUARE ORIGINAL OF OR EQUAL TO + 0x2293: [598,0,667,61,605], // stix-square intersection, serifs + 0x2294: [598,0,667,61,605], // stix-square union, serifs + 0x2295: [583,83,778,56,722], // stix-circled plus (with rim) + 0x2296: [583,83,778,56,722], // CIRCLED MINUS + 0x2297: [583,83,778,56,722], // stix-circled times (with rim) + 0x2298: [583,83,778,56,722], // CIRCLED DIVISION SLASH + 0x2299: [583,83,778,56,722], // CIRCLED DOT OPERATOR + 0x22A2: [694,0,611,55,555], // RIGHT TACK + 0x22A3: [694,0,611,55,555], // LEFT TACK + 0x22A4: [668,0,778,55,723], // DOWN TACK + 0x22A5: [668,0,778,55,723], // UP TACK + 0x22A8: [750,249,867,119,811], // TRUE + 0x22C4: [488,-12,500,12,488], // DIAMOND OPERATOR + 0x22C5: [310,-190,278,78,199], // DOT OPERATOR + 0x22C6: [486,-16,500,3,497], // STAR OPERATOR + 0x22C8: [505,5,900,26,873], // BOWTIE + 0x22EE: [900,30,278,78,199], // VERTICAL ELLIPSIS + 0x22EF: [310,-190,1172,78,1093], // MIDLINE HORIZONTAL ELLIPSIS + 0x22F1: [820,-100,1282,133,1148], // DOWN RIGHT DIAGONAL ELLIPSIS + 0x2308: [750,250,444,174,422], // LEFT CEILING + 0x2309: [750,250,444,21,269], // RIGHT CEILING + 0x230A: [750,250,444,174,422], // LEFT FLOOR + 0x230B: [750,250,444,21,269], // RIGHT FLOOR + 0x2322: [388,-122,1000,55,944], // stix-small down curve + 0x2323: [378,-134,1000,55,944], // stix-small up curve + 0x23B0: [744,244,412,55,357], // UPPER LEFT OR LOWER RIGHT CURLY BRACKET SECTION + 0x23B1: [744,244,412,56,357], // UPPER RIGHT OR LOWER LEFT CURLY BRACKET SECTION + 0x27E8: [750,250,389,110,333], // MATHEMATICAL LEFT ANGLE BRACKET + 0x27E9: [750,250,389,55,278], // MATHEMATICAL RIGHT ANGLE BRACKET + 0x27EE: [744,244,412,173,357], // MATHEMATICAL LEFT FLATTENED PARENTHESIS + 0x27EF: [744,244,412,56,240], // MATHEMATICAL RIGHT FLATTENED PARENTHESIS + 0x27F5: [511,11,1609,55,1525], // LONG LEFTWARDS ARROW + 0x27F6: [511,11,1638,84,1553], // LONG RIGHTWARDS ARROW + 0x27F7: [511,11,1859,55,1803], // LONG LEFT RIGHT ARROW + 0x27F8: [525,24,1609,56,1553], // LONG LEFTWARDS DOUBLE ARROW + 0x27F9: [525,24,1638,56,1582], // LONG RIGHTWARDS DOUBLE ARROW + 0x27FA: [525,24,1858,56,1802], // LONG LEFT RIGHT DOUBLE ARROW + 0x27FC: [511,11,1638,55,1553], // LONG RIGHTWARDS ARROW FROM BAR + 0x2A3F: [683,0,750,28,721], // AMALGAMATION OR COPRODUCT + 0x2AAF: [636,138,778,84,694], // PRECEDES ABOVE SINGLE-LINE EQUALS SIGN + 0x2AB0: [636,138,778,83,694] // SUCCEEDS ABOVE SINGLE-LINE EQUALS SIGN + }; + + CHTML.FONTDATA.FONTS['MathJax_Math-italic'] = { + directory: 'Math/Italic', + style: 'italic', + skew: { + 0x41: 0.139, + 0x42: 0.0833, + 0x43: 0.0833, + 0x44: 0.0556, + 0x45: 0.0833, + 0x46: 0.0833, + 0x47: 0.0833, + 0x48: 0.0556, + 0x49: 0.111, + 0x4A: 0.167, + 0x4B: 0.0556, + 0x4C: 0.0278, + 0x4D: 0.0833, + 0x4E: 0.0833, + 0x4F: 0.0833, + 0x50: 0.0833, + 0x51: 0.0833, + 0x52: 0.0833, + 0x53: 0.0833, + 0x54: 0.0833, + 0x55: 0.0278, + 0x58: 0.0833, + 0x5A: 0.0833, + 0x63: 0.0556, + 0x64: 0.167, + 0x65: 0.0556, + 0x66: 0.167, + 0x67: 0.0278, + 0x68: -0.0278, + 0x6C: 0.0833, + 0x6F: 0.0556, + 0x70: 0.0833, + 0x71: 0.0833, + 0x72: 0.0556, + 0x73: 0.0556, + 0x74: 0.0833, + 0x75: 0.0278, + 0x76: 0.0278, + 0x77: 0.0833, + 0x78: 0.0278, + 0x79: 0.0556, + 0x7A: 0.0556, + 0x393: 0.0833, + 0x394: 0.167, + 0x398: 0.0833, + 0x39B: 0.167, + 0x39E: 0.0833, + 0x3A0: 0.0556, + 0x3A3: 0.0833, + 0x3A5: 0.0556, + 0x3A6: 0.0833, + 0x3A8: 0.0556, + 0x3A9: 0.0833, + 0x3B1: 0.0278, + 0x3B2: 0.0833, + 0x3B4: 0.0556, + 0x3B5: 0.0833, + 0x3B6: 0.0833, + 0x3B7: 0.0556, + 0x3B8: 0.0833, + 0x3B9: 0.0556, + 0x3BC: 0.0278, + 0x3BD: 0.0278, + 0x3BE: 0.111, + 0x3BF: 0.0556, + 0x3C1: 0.0833, + 0x3C2: 0.0833, + 0x3C4: 0.0278, + 0x3C5: 0.0278, + 0x3C6: 0.0833, + 0x3C7: 0.0556, + 0x3C8: 0.111, + 0x3D1: 0.0833, + 0x3D5: 0.0833, + 0x3F1: 0.0833, + 0x3F5: 0.0556 + }, + 0x20: [0,0,250,0,0], // SPACE + 0x2F: [716,215,778,139,638], // SOLIDUS + 0x41: [716,0,750,35,726], // LATIN CAPITAL LETTER A + 0x42: [683,0,759,35,756], // LATIN CAPITAL LETTER B + 0x43: [705,22,715,50,760], // LATIN CAPITAL LETTER C + 0x44: [683,0,828,33,803], // LATIN CAPITAL LETTER D + 0x45: [680,0,738,31,764], // LATIN CAPITAL LETTER E + 0x46: [680,0,643,31,749], // LATIN CAPITAL LETTER F + 0x47: [705,22,786,50,760], // LATIN CAPITAL LETTER G + 0x48: [683,0,831,31,888], // LATIN CAPITAL LETTER H + 0x49: [683,0,440,26,504], // LATIN CAPITAL LETTER I + 0x4A: [683,22,555,57,633], // LATIN CAPITAL LETTER J + 0x4B: [683,0,849,31,889], // LATIN CAPITAL LETTER K + 0x4C: [683,0,681,32,647], // LATIN CAPITAL LETTER L + 0x4D: [683,0,970,35,1051], // LATIN CAPITAL LETTER M + 0x4E: [683,0,803,31,888], // LATIN CAPITAL LETTER N + 0x4F: [704,22,763,50,740], // LATIN CAPITAL LETTER O + 0x50: [683,0,642,33,751], // LATIN CAPITAL LETTER P + 0x51: [704,194,791,50,740], // LATIN CAPITAL LETTER Q + 0x52: [683,21,759,33,755], // LATIN CAPITAL LETTER R + 0x53: [705,22,613,52,645], // LATIN CAPITAL LETTER S + 0x54: [677,0,584,21,704], // LATIN CAPITAL LETTER T + 0x55: [683,22,683,60,767], // LATIN CAPITAL LETTER U + 0x56: [683,22,583,52,769], // LATIN CAPITAL LETTER V + 0x57: [683,22,944,51,1048], // LATIN CAPITAL LETTER W + 0x58: [683,0,828,26,852], // LATIN CAPITAL LETTER X + 0x59: [683,-1,581,30,763], // LATIN CAPITAL LETTER Y + 0x5A: [683,0,683,58,723], // LATIN CAPITAL LETTER Z + 0x61: [441,10,529,33,506], // LATIN SMALL LETTER A + 0x62: [694,11,429,40,422], // LATIN SMALL LETTER B + 0x63: [442,11,433,34,429], // LATIN SMALL LETTER C + 0x64: [694,10,520,33,523], // LATIN SMALL LETTER D + 0x65: [442,11,466,39,429], // LATIN SMALL LETTER E + 0x66: [705,205,490,55,550], // LATIN SMALL LETTER F + 0x67: [442,205,477,10,480], // LATIN SMALL LETTER G + 0x68: [694,11,576,48,555], // LATIN SMALL LETTER H + 0x69: [661,11,345,21,302], // LATIN SMALL LETTER I + 0x6A: [661,204,412,-12,403], // LATIN SMALL LETTER J + 0x6B: [694,11,521,48,503], // LATIN SMALL LETTER K + 0x6C: [694,11,298,38,266], // LATIN SMALL LETTER L + 0x6D: [442,11,878,21,857], // LATIN SMALL LETTER M + 0x6E: [442,11,600,21,580], // LATIN SMALL LETTER N + 0x6F: [441,11,485,34,476], // LATIN SMALL LETTER O + 0x70: [442,194,503,-39,497], // LATIN SMALL LETTER P + 0x71: [442,194,446,33,460], // LATIN SMALL LETTER Q + 0x72: [442,11,451,21,430], // LATIN SMALL LETTER R + 0x73: [442,10,469,53,419], // LATIN SMALL LETTER S + 0x74: [626,11,361,19,330], // LATIN SMALL LETTER T + 0x75: [442,11,572,21,551], // LATIN SMALL LETTER U + 0x76: [443,11,485,21,467], // LATIN SMALL LETTER V + 0x77: [443,11,716,21,690], // LATIN SMALL LETTER W + 0x78: [442,11,572,35,522], // LATIN SMALL LETTER X + 0x79: [442,205,490,21,496], // LATIN SMALL LETTER Y + 0x7A: [442,11,465,35,468], // LATIN SMALL LETTER Z + 0xA0: [0,0,250,0,0], // NO-BREAK SPACE + 0x393: [680,-1,615,31,721], // GREEK CAPITAL LETTER GAMMA + 0x394: [716,0,833,48,788], // GREEK CAPITAL LETTER DELTA + 0x398: [704,22,763,50,740], // GREEK CAPITAL LETTER THETA + 0x39B: [716,0,694,35,670], // GREEK CAPITAL LETTER LAMDA + 0x39E: [677,0,742,53,777], // GREEK CAPITAL LETTER XI + 0x3A0: [680,0,831,31,887], // GREEK CAPITAL LETTER PI + 0x3A3: [683,0,780,58,806], // GREEK CAPITAL LETTER SIGMA + 0x3A5: [705,0,583,28,700], // GREEK CAPITAL LETTER UPSILON + 0x3A6: [683,0,667,24,642], // GREEK CAPITAL LETTER PHI + 0x3A8: [683,0,612,21,692], // GREEK CAPITAL LETTER PSI + 0x3A9: [704,0,772,80,786], // GREEK CAPITAL LETTER OMEGA + 0x3B1: [442,11,640,34,603], // GREEK SMALL LETTER ALPHA + 0x3B2: [705,194,566,23,573], // GREEK SMALL LETTER BETA + 0x3B3: [441,216,518,11,543], // GREEK SMALL LETTER GAMMA + 0x3B4: [717,10,444,36,451], // GREEK SMALL LETTER DELTA + 0x3B5: [452,22,466,27,428], // GREEK SMALL LETTER EPSILON + 0x3B6: [704,204,438,44,471], // GREEK SMALL LETTER ZETA + 0x3B7: [442,216,497,21,503], // GREEK SMALL LETTER ETA + 0x3B8: [705,10,469,35,462], // GREEK SMALL LETTER THETA + 0x3B9: [442,10,354,48,332], // GREEK SMALL LETTER IOTA + 0x3BA: [442,11,576,49,554], // GREEK SMALL LETTER KAPPA + 0x3BB: [694,12,583,47,556], // GREEK SMALL LETTER LAMDA + 0x3BC: [442,216,603,23,580], // GREEK SMALL LETTER MU + 0x3BD: [442,2,494,45,530], // GREEK SMALL LETTER NU + 0x3BE: [704,205,438,21,443], // GREEK SMALL LETTER XI + 0x3BF: [441,11,485,34,476], // GREEK SMALL LETTER OMICRON + 0x3C0: [431,11,570,19,573], // GREEK SMALL LETTER PI + 0x3C1: [442,216,517,23,510], // GREEK SMALL LETTER RHO + 0x3C2: [442,107,363,31,405], // GREEK SMALL LETTER FINAL SIGMA + 0x3C3: [431,11,571,31,572], // GREEK SMALL LETTER SIGMA + 0x3C4: [431,13,437,18,517], // GREEK SMALL LETTER TAU + 0x3C5: [443,10,540,21,523], // GREEK SMALL LETTER UPSILON + 0x3C6: [442,218,654,50,618], // GREEK SMALL LETTER PHI + 0x3C7: [442,204,626,25,600], // GREEK SMALL LETTER CHI + 0x3C8: [694,205,651,21,634], // GREEK SMALL LETTER PSI + 0x3C9: [443,11,622,15,604], // GREEK SMALL LETTER OMEGA + 0x3D1: [705,11,591,21,563], // GREEK THETA SYMBOL + 0x3D5: [694,205,596,43,579], // GREEK PHI SYMBOL + 0x3D6: [431,10,828,19,823], // GREEK PI SYMBOL + 0x3F1: [442,194,517,67,510], // GREEK RHO SYMBOL + 0x3F5: [431,11,406,40,382] // GREEK LUNATE EPSILON SYMBOL + }; + + CHTML.FONTDATA.FONTS['MathJax_Size1'] = { + directory: 'Size1/Regular', + 0x20: [0,0,250,0,0], // SPACE + 0x28: [850,349,458,152,422], // LEFT PARENTHESIS + 0x29: [850,349,458,35,305], // RIGHT PARENTHESIS + 0x2F: [850,349,578,55,522], // SOLIDUS + 0x5B: [850,349,417,202,394], // LEFT SQUARE BRACKET + 0x5C: [850,349,578,54,522], // REVERSE SOLIDUS + 0x5D: [850,349,417,22,214], // RIGHT SQUARE BRACKET + 0x7B: [850,349,583,105,477], // LEFT CURLY BRACKET + 0x7D: [850,349,583,105,477], // RIGHT CURLY BRACKET + 0xA0: [0,0,250,0,0], // NO-BREAK SPACE + 0x2C6: [744,-551,556,-8,564], // MODIFIER LETTER CIRCUMFLEX ACCENT + 0x2DC: [722,-597,556,1,554], // SMALL TILDE + 0x302: [744,-551,0,-564,8], // COMBINING CIRCUMFLEX ACCENT + 0x303: [722,-597,0,-555,-2], // COMBINING TILDE + 0x2016: [602,0,778,257,521], // DOUBLE VERTICAL LINE + 0x2191: [600,0,667,112,555], // UPWARDS ARROW + 0x2193: [600,0,667,112,555], // DOWNWARDS ARROW + 0x21D1: [599,0,778,57,721], // UPWARDS DOUBLE ARROW + 0x21D3: [600,-1,778,57,721], // DOWNWARDS DOUBLE ARROW + 0x220F: [750,250,944,55,888], // N-ARY PRODUCT + 0x2210: [750,250,944,55,888], // N-ARY COPRODUCT + 0x2211: [750,250,1056,56,999], // N-ARY SUMMATION + 0x221A: [850,350,1000,111,1020], // SQUARE ROOT + 0x2223: [627,15,333,145,188], // DIVIDES + 0x2225: [627,15,556,145,410], // PARALLEL TO + 0x222B: [805,306,472,55,610], // INTEGRAL + 0x222C: [805,306,819,55,957], // DOUBLE INTEGRAL + 0x222D: [805,306,1166,55,1304], // TRIPLE INTEGRAL + 0x222E: [805,306,472,55,610], // CONTOUR INTEGRAL + 0x22C0: [750,249,833,55,777], // N-ARY LOGICAL AND + 0x22C1: [750,249,833,55,777], // N-ARY LOGICAL OR + 0x22C2: [750,249,833,55,777], // N-ARY INTERSECTION + 0x22C3: [750,249,833,55,777], // N-ARY UNION + 0x2308: [850,349,472,202,449], // LEFT CEILING + 0x2309: [850,349,472,22,269], // RIGHT CEILING + 0x230A: [850,349,472,202,449], // LEFT FLOOR + 0x230B: [850,349,472,22,269], // RIGHT FLOOR + 0x23D0: [602,0,667,312,355], // VERTICAL LINE EXTENSION (used to extend arrows) + 0x27E8: [850,350,472,97,394], // MATHEMATICAL LEFT ANGLE BRACKET + 0x27E9: [850,350,472,77,374], // MATHEMATICAL RIGHT ANGLE BRACKET + 0x2A00: [750,250,1111,56,1054], // N-ARY CIRCLED DOT OPERATOR + 0x2A01: [750,250,1111,56,1054], // N-ARY CIRCLED PLUS OPERATOR + 0x2A02: [750,250,1111,56,1054], // N-ARY CIRCLED TIMES OPERATOR + 0x2A04: [750,249,833,55,777], // N-ARY UNION OPERATOR WITH PLUS + 0x2A06: [750,249,833,55,777] // N-ARY SQUARE UNION OPERATOR + }; + + CHTML.FONTDATA.FONTS['MathJax_Size2'] = { + directory: 'Size2/Regular', + 0x20: [0,0,250,0,0], // SPACE + 0x28: [1150,649,597,180,561], // LEFT PARENTHESIS + 0x29: [1150,649,597,35,416], // RIGHT PARENTHESIS + 0x2F: [1150,649,811,56,754], // SOLIDUS + 0x5B: [1150,649,472,224,455], // LEFT SQUARE BRACKET + 0x5C: [1150,649,811,54,754], // REVERSE SOLIDUS + 0x5D: [1150,649,472,16,247], // RIGHT SQUARE BRACKET + 0x7B: [1150,649,667,119,547], // LEFT CURLY BRACKET + 0x7D: [1150,649,667,119,547], // RIGHT CURLY BRACKET + 0xA0: [0,0,250,0,0], // NO-BREAK SPACE + 0x2C6: [772,-565,1000,-5,1004], // MODIFIER LETTER CIRCUMFLEX ACCENT + 0x2DC: [750,-611,1000,0,999], // SMALL TILDE + 0x302: [772,-565,0,-1005,4], // COMBINING CIRCUMFLEX ACCENT + 0x303: [750,-611,0,-1000,-1], // COMBINING TILDE + 0x220F: [950,450,1278,56,1221], // N-ARY PRODUCT + 0x2210: [950,450,1278,56,1221], // N-ARY COPRODUCT + 0x2211: [950,450,1444,55,1388], // N-ARY SUMMATION + 0x221A: [1150,650,1000,111,1020], // SQUARE ROOT + 0x222B: [1360,862,556,55,944], // INTEGRAL + 0x222C: [1360,862,1084,55,1472], // DOUBLE INTEGRAL + 0x222D: [1360,862,1592,55,1980], // TRIPLE INTEGRAL + 0x222E: [1360,862,556,55,944], // CONTOUR INTEGRAL + 0x22C0: [950,450,1111,55,1055], // N-ARY LOGICAL AND + 0x22C1: [950,450,1111,55,1055], // N-ARY LOGICAL OR + 0x22C2: [949,450,1111,55,1055], // N-ARY INTERSECTION + 0x22C3: [950,449,1111,55,1055], // N-ARY UNION + 0x2308: [1150,649,528,224,511], // LEFT CEILING + 0x2309: [1150,649,528,16,303], // RIGHT CEILING + 0x230A: [1150,649,528,224,511], // LEFT FLOOR + 0x230B: [1150,649,528,16,303], // RIGHT FLOOR + 0x27E8: [1150,649,611,112,524], // MATHEMATICAL LEFT ANGLE BRACKET + 0x27E9: [1150,649,611,85,498], // MATHEMATICAL RIGHT ANGLE BRACKET + 0x2A00: [949,449,1511,56,1454], // N-ARY CIRCLED DOT OPERATOR + 0x2A01: [949,449,1511,56,1454], // N-ARY CIRCLED PLUS OPERATOR + 0x2A02: [949,449,1511,56,1454], // N-ARY CIRCLED TIMES OPERATOR + 0x2A04: [950,449,1111,55,1055], // N-ARY UNION OPERATOR WITH PLUS + 0x2A06: [950,450,1111,55,1055] // N-ARY SQUARE UNION OPERATOR + }; + + CHTML.FONTDATA.FONTS['MathJax_Size3'] = { + directory: 'Size3/Regular', + 0x20: [0,0,250,0,0], // SPACE + 0x28: [1450,949,736,209,701], // LEFT PARENTHESIS + 0x29: [1450,949,736,34,526], // RIGHT PARENTHESIS + 0x2F: [1450,949,1044,55,989], // SOLIDUS + 0x5B: [1450,949,528,247,516], // LEFT SQUARE BRACKET + 0x5C: [1450,949,1044,56,988], // REVERSE SOLIDUS + 0x5D: [1450,949,528,11,280], // RIGHT SQUARE BRACKET + 0x7B: [1450,949,750,130,618], // LEFT CURLY BRACKET + 0x7D: [1450,949,750,131,618], // RIGHT CURLY BRACKET + 0xA0: [0,0,250,0,0], // NO-BREAK SPACE + 0x2C6: [772,-564,1444,-4,1447], // MODIFIER LETTER CIRCUMFLEX ACCENT + 0x2DC: [749,-610,1444,1,1442], // SMALL TILDE + 0x302: [772,-564,0,-1448,3], // COMBINING CIRCUMFLEX ACCENT + 0x303: [749,-610,0,-1443,-2], // COMBINING TILDE + 0x221A: [1450,950,1000,111,1020], // SQUARE ROOT + 0x2308: [1450,949,583,246,571], // LEFT CEILING + 0x2309: [1450,949,583,11,336], // RIGHT CEILING + 0x230A: [1450,949,583,246,571], // LEFT FLOOR + 0x230B: [1450,949,583,11,336], // RIGHT FLOOR + 0x27E8: [1450,950,750,126,654], // MATHEMATICAL LEFT ANGLE BRACKET + 0x27E9: [1450,949,750,94,623] // MATHEMATICAL RIGHT ANGLE BRACKET + }; + + CHTML.FONTDATA.FONTS['MathJax_Size4'] = { + directory: 'Size4/Regular', + 0x20: [0,0,250,0,0], // SPACE + 0x28: [1750,1249,792,237,758], // LEFT PARENTHESIS + 0x29: [1750,1249,792,33,554], // RIGHT PARENTHESIS + 0x2F: [1750,1249,1278,56,1221], // SOLIDUS + 0x5B: [1750,1249,583,269,577], // LEFT SQUARE BRACKET + 0x5C: [1750,1249,1278,56,1221], // REVERSE SOLIDUS + 0x5D: [1750,1249,583,5,313], // RIGHT SQUARE BRACKET + 0x7B: [1750,1249,806,144,661], // LEFT CURLY BRACKET + 0x7D: [1750,1249,806,144,661], // RIGHT CURLY BRACKET + 0xA0: [0,0,250,0,0], // NO-BREAK SPACE + 0x2C6: [845,-561,1889,-14,1902], // MODIFIER LETTER CIRCUMFLEX ACCENT + 0x2DC: [823,-583,1889,1,1885], // SMALL TILDE + 0x302: [845,-561,0,-1903,13], // COMBINING CIRCUMFLEX ACCENT + 0x303: [823,-583,0,-1888,-4], // COMBINING TILDE + 0x221A: [1750,1250,1000,111,1020], // SQUARE ROOT + 0x2308: [1750,1249,639,269,633], // LEFT CEILING + 0x2309: [1750,1249,639,5,369], // RIGHT CEILING + 0x230A: [1750,1249,639,269,633], // LEFT FLOOR + 0x230B: [1750,1249,639,5,369], // RIGHT FLOOR + 0x239B: [1154,655,875,291,843], // LEFT PARENTHESIS UPPER HOOK + 0x239C: [610,10,875,291,417], // LEFT PARENTHESIS EXTENSION + 0x239D: [1165,644,875,291,843], // LEFT PARENTHESIS LOWER HOOK + 0x239E: [1154,655,875,31,583], // RIGHT PARENTHESIS UPPER HOOK + 0x239F: [610,10,875,457,583], // RIGHT PARENTHESIS EXTENSION + 0x23A0: [1165,644,875,31,583], // RIGHT PARENTHESIS LOWER HOOK + 0x23A1: [1154,645,667,319,666], // LEFT SQUARE BRACKET UPPER CORNER + 0x23A2: [602,0,667,319,403], // LEFT SQUARE BRACKET EXTENSION + 0x23A3: [1155,644,667,319,666], // LEFT SQUARE BRACKET LOWER CORNER + 0x23A4: [1154,645,667,0,347], // RIGHT SQUARE BRACKET UPPER CORNER + 0x23A5: [602,0,667,263,347], // RIGHT SQUARE BRACKET EXTENSION + 0x23A6: [1155,644,667,0,347], // RIGHT SQUARE BRACKET LOWER CORNER + 0x23A7: [899,10,889,384,718], // LEFT CURLY BRACKET UPPER HOOK + 0x23A8: [1160,660,889,170,504], // LEFT CURLY BRACKET MIDDLE PIECE + 0x23A9: [10,899,889,384,718], // LEFT CURLY BRACKET LOWER HOOK + 0x23AA: [310,10,889,384,504], // CURLY BRACKET EXTENSION + 0x23AB: [899,10,889,170,504], // RIGHT CURLY BRACKET UPPER HOOK + 0x23AC: [1160,660,889,384,718], // RIGHT CURLY BRACKET MIDDLE PIECE + 0x23AD: [10,899,889,170,504], // RIGHT CURLY BRACKET LOWER HOOK + 0x23B7: [935,885,1056,111,742], // RADICAL SYMBOL BOTTOM + 0x27E8: [1750,1248,806,140,703], // MATHEMATICAL LEFT ANGLE BRACKET + 0x27E9: [1750,1248,806,103,665], // MATHEMATICAL RIGHT ANGLE BRACKET + 0xE000: [625,14,1056,702,742], // stix-radical symbol vertical extender + 0xE001: [605,14,1056,702,1076], // stix-radical symbol top corner piece + 0xE150: [120,213,450,-24,460], // stix-horizontal brace, down left piece + 0xE151: [120,213,450,-10,474], // stix-horizontal brace, down right piece + 0xE152: [333,0,450,-24,460], // stix-horizontal brace, upper left piece + 0xE153: [333,0,450,-10,474], // stix-horizontal brace, upper right piece + 0xE154: [120,0,400,-10,410] // stix-oblique open face capital letter A + }; + + CHTML.FONTDATA.FONTS[MAIN][0x22EE][0] += 400; // adjust height for \vdots + CHTML.FONTDATA.FONTS[MAIN][0x22F1][0] += 700; // adjust height for \ddots + CHTML.FONTDATA.FONTS[SIZE4][0xE154][0] += 200; // adjust height for brace extender + CHTML.FONTDATA.FONTS[SIZE4][0xE154][1] += 200; // adjust depth for brace extender + CHTML.FONTDATA.FONTS[MAIN][0x2245][2] -= 222; // fix error in character's right bearing + CHTML.FONTDATA.FONTS[MAIN][0x2245][5] = {rfix:-222}; // fix error in character's right bearing + MathJax.Hub.Register.LoadHook(CHTML.fontDir+"/Main/Bold/MathOperators.js",function () { + CHTML.FONTDATA.FONTS[BOLD][0x2245][2] -= 106; // fix error in character's right bearing + CHTML.FONTDATA.FONTS[BOLD][0x2245][5] = {rfix:-106}; // fix error in character's right bearing + }); + MathJax.Hub.Register.LoadHook(CHTML.fontDir+"/Typewriter/Regular/BasicLatin.js",function () { + CHTML.FONTDATA.FONTS['MathJax_Typewriter'][0x20][2] += 275; // fix error in character width + CHTML.FONTDATA.FONTS['MathJax_Typewriter'][0x20][5] = {rfix:275}; // fix error in character width + }); + + // + // Add some spacing characters (more will come later) + // + MathJax.Hub.Insert(CHTML.FONTDATA.FONTS[MAIN],{ + 0xEEE0: [0,0,-575,0,0,{space:1}], + 0xEEE1: [0,0,-300,0,0,{space:1}], + 0xEEE8: [0,0,25,0,0,{space:1}] + }); + + + // + // Create @font-face stylesheet for the declared fonts + // + (function () { + var STYLES = CHTML.config.styles, FONTS = CHTML.FONTDATA.FONTS; + var faces = []; + for (var name in FONTS) {if (FONTS.hasOwnProperty(name)) { + var font = FONTS[name]; if (typeof(font) !== "string") font = font.directory; + var names = font.split(/\//); + var suffix = names[0].toLowerCase().replace(/(?:igraphic|serif|writer|tur)$/,"") + + "-" + names[1].replace(/[^A-Z]/g,""); + var family = "MJX_TeX_"+suffix; FONTS[name].className = "MJXc-TeX-"+suffix; + STYLES[".MJXc-TeX-"+suffix] = {"font-family":family}; + font = {"font-family":family}; name = name.replace(/-.*/,""); + if (names[1] === "Regular") {font.src = "local('"+name+"')"} + else {font.src = "local('"+name+" "+names[1]+"'), local('"+name+"-"+names[1]+"')"} + faces.push(font); + }} + if (faces.length) STYLES["@font-face"] = faces; + })(); + + AJAX.loadComplete(CHTML.fontDir + "/TeX/fontdata.js"); + +})(MathJax.OutputJax.CommonHTML,MathJax.ElementJax.mml,MathJax.Ajax); + diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index 022ab7770..8a15878fe 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -32,13 +32,11 @@ var EVENT, TOUCH, HOVER; // filled in later - var FONTS = "'Times New Roman',Times,STIXGeneral,serif"; var SCRIPTFACTOR = Math.sqrt(1/2), LINEHEIGHT = 1.2; - + var STYLES = { ".MJXc-script": {"font-size":SCRIPTFACTOR+"em"}, - ".MJXc-right": { "-webkit-transform-origin":"right", "-moz-transform-origin":"right", @@ -47,13 +45,6 @@ "transform-origin":"right" }, - ".MJXc-bold": {"font-weight":"bold"}, - ".MJXc-italic": {"font-style":"italic"}, - ".MJXc-scr": {"font-family":"MathJax_Script,"+FONTS}, - ".MJXc-frak": {"font-family":"MathJax_Fraktur,"+FONTS}, - ".MJXc-sf": {"font-family":"MathJax_SansSerif,"+FONTS}, - ".MJXc-cal": {"font-family":"MathJax_Caligraphic,"+FONTS}, - ".MJXc-mono": {"font-family":"MathJax_Typewriter,"+FONTS}, ".MJXc-largeop": {"font-size":"150%"}, ".MJXc-largeop.MJXc-int": {"vertical-align":"-.2em"}, @@ -61,7 +52,6 @@ "display": "inline-block", "line-height": LINEHEIGHT, "text-indent": "0", - "font-family": FONTS, "white-space":"nowrap", "border-collapse":"collapse" }, @@ -149,6 +139,7 @@ if (!this.require) {this.require = []} this.SUPER(arguments).Config.call(this); var settings = this.settings; if (settings.scale) {this.config.scale = settings.scale} + this.require.push(this.fontDir+"/TeX/fontdata.js"); this.require.push(MathJax.OutputJax.extensionDir+"/MathEvents.js"); }, @@ -413,10 +404,118 @@ infinity: BIGDIMEN }, TeX: { - x_height: .430554 + x_height: .442 }, pxPerInch: 96, em: 16, + + FONTDEF: {}, + + getUnicode: function (string) { + var n = string.text.charCodeAt(string.i); string.i++; + if (n >= 0xD800 && n < 0xDBFF) { + n = (((n-0xD800)<<10)+(string.text.charCodeAt(string.i)-0xDC00))+0x10000; + string.i++; + } + return n; + }, + getCharList: function (variant,n) { + var id, M, list = [], cache = variant.cache, N = n; + if (cache[n]) return cache[n]; + var RANGES = this.FONTDATA.RANGES, VARIANT = this.FONTDATA.VARIANT; + if (n >= RANGES[0].low && n <= RANGES[RANGES.length-1].high) { + for (id = 0, M = RANGES.length; id < M; id++) { + if (RANGES[id].name === "alpha" && variant.noLowerCase) continue; + var N = variant["offset"+RANGES[id].offset]; + if (N && n >= RANGES[id].low && n <= RANGES[id].high) { + if (RANGES[id].remap && RANGES[id].remap[n]) { + n = N + RANGES[id].remap[n]; + } else { + n = n - RANGES[id].low + N; + if (RANGES[id].add) {n += RANGES[id].add} + } + if (variant["variant"+RANGES[id].offset]) + variant = VARIANT[variant["variant"+RANGES[id].offset]]; + break; + } + } + } + if (variant.remap && variant.remap[n]) { + n = variant.remap[n]; + if (variant.remap.variant) {variant = VARIANT[variant.remap.variant]} + } else if (this.FONTDATA.REMAP[n] && !variant.noRemap) { + n = this.FONTDATA.REMAP[n]; + } + if (n instanceof Array) {variant = VARIANT[n[1]]; n = n[0]} + if (typeof(n) === "string") { + var string = {text:n, i:0, length:n.length}; + while (string.i < string.length) { + n = this.getUnicode(string); + var chars = this.getCharList(variant,n); + if (chars) list.push.apply(list,chars); + } + } else { + if (variant.cache[n]) {list = variant.cache[n]} + else {variant.cache[n] = list = [this.lookupChar(variant,n)]} + } + cache[N] = list; + return list; + }, + lookupChar: function (variant,n) { + while (variant) { + for (var i = 0, m = variant.fonts.length; i < m; i++) { + var font = this.FONTDATA.FONTS[variant.fonts[i]]; +// if (typeof(font) === "string") this.loadFont(font); + var C = font[n]; + if (C) { +// ### FIXME: implement aliases, spaces, etc. + if (C.length === 5) C[5] = {}; + if (C.c == null) { + C[0] /= 1000; C[1] /= 1000; C[2] /= 1000; C[3] /= 1000; C[4] /= 1000; + if (n <= 0xFFFF) { + C.c = String.fromCharCode(n); + } else { + var N = n - 0x10000; + C.c = String.fromCharCode((N>>10)+0xD800) + + String.fromCharCode((N&0x3FF)+0xDC00); + } + } + return {type:"char", font:font, n:n}; + } // else load block files? + } + variant = this.FONTDATA.VARIANT[variant.chain]; + } + return this.unknownChar(variant,n); + }, + unknownChar: function (variant,n) {}, + + addCharList: function (span,list,bbox) { + var text = "", className; + for (var i = 0, m = list.length; i < m; i++) { + var item = list[i]; + switch (item.type) { + case "char": + if (className && item.font.className !== className) { + HTML.addElement(span,"span",{className:className},[text]); + text = ""; className = null; + } + var C = item.font[item.n]; + text += C.c; className = item.font.className; + if (bbox.h < C[0]) bbox.h = C[0]; + if (bbox.d < C[1]) bbox.d = C[1]; + if (bbox.l > bbox.w+C[3]) bbox.l = bbox.w+C[3]; + if (bbox.r < bbox.w+C[4]) bbox.r = bbox.w+C[4]; + bbox.w += C[2]; + } + } + if (span.childNodes.length) { + HTML.addElement(span,"span",{className:className},[text]); + } else { + HTML.addText(span,text); + span.className += " "+className; + } + }, + // ### FIXME: add more here @@ -502,7 +601,7 @@ if (Math.abs(m) < .001) return "0em"; return (m.toFixed(3).replace(/\.?0+$/,""))+"em"; }, - + scaleBBox: function (bbox,level,dlevel) { var scale = Math.pow(SCRIPTFACTOR,Math.min(2,level)-(dlevel||0)); bbox.w *= scale; bbox.h *= scale; bbox.d *= scale; @@ -544,8 +643,6 @@ bbox.w += cbox.w + (cbox.L||0) + (cbox.R||0); if (cbox.h > bbox.h) bbox.h = cbox.h; if (cbox.d > bbox.d) bbox.d = cbox.d; - if (cbox.t > bbox.t) bbox.t = cbox.t; - if (cbox.b > bbox.b) bbox.b = cbox.b; } } else if (options.forceChild) {HTML.addElement(span,"span")} }, @@ -605,7 +702,7 @@ span.style.fontSize = scale+"%"; } }, - + CHTMLhandleMargins: function (span,box) { var bbox = this.CHTML; // ### FIXME: should these be FONTDATA values? @@ -621,35 +718,26 @@ }, CHTMLhandleText: function (span,text,variant) { - var c, n; - var H = 0, D = 0, W = 0; - for (var i = 0, m = text.length; i < m; i++) { - n = text.charCodeAt(i); c = text.charAt(i); - if (n >= 0xD800 && n < 0xDBFF) { - i++; n = (((n-0xD800)<<10)+(text.charCodeAt(i)-0xDC00))+0x10000; - } - var h = .7, d = .22, w = .5; - if (n < 127) { - if (c.match(/[A-Za-ehik-or-xz0-9]/)) d = 0; - if (c.match(/[A-HK-Z]/)) {w = .67} else if (c.match(/[IJ]/)) {w = .36} - if (c.match(/[acegm-su-z]/)) {h = .45} else if (c.match(/[ij]/)) {h = .75} - if (c.match(/[ijlt]/)) w = .28; - } - if (CHTML.DELIMITERS[c]) {w = CHTML.DELIMITERS[c].w || .4} - // ### FIXME: handle Greek - // ### Combining diacriticals (all sets), spacing modifiers - // ### arrows (all sets), widths of braces - if (h > H) H = h; if (d > D) D = d; W += w; + if (span.childNodes.length === 0) { + HTML.addElement(span,"span",{className:"MJXc-char"}); + this.CHTML = {h:-BIGDIMEN, d:-BIGDIMEN, w:0, l:BIGDIMEN, r:-BIGDIMEN}; } - if (!this.CHML) this.CHTML = {}; - this.CHTML = {h:.9, d:.3, w:W, l:0, r:0, t:H, b:D}; - HTML.addText(span,text); - if (variant !== MML.VARIANT.NORMAL) span.className += " "+CHTML.VARIANT[variant]; -// ### FIXME: use this to get proper bounding boxes in the future -// this.CHTML = {h:H, d:D, w:W, l:0, r:0}; -// HTML.addElement(span,"span",{className:"MJXc-char",style:{ -// "margin-top":CHTML.Em(H-.9), "margin-bottom":CHTML.Em(D-.25) -// }},[text]); + var bbox = this.CHTML, string = {text:text, i:0, length:text.length}; + if (typeof(variant) === "string") variant = CHTML.FONTDATA.VARIANT[variant]; + if (!variant) {variant = CHTML.FONTDATA.VARIANT[MML.VARIANT.NORMAL]} + var list = []; + while (string.i < string.length) { + var n = CHTML.getUnicode(string); + list.push.apply(list,CHTML.getCharList(variant,n)); + } + CHTML.addCharList(span.firstChild,list,bbox); + if (bbox.h === -BIGDIMEN) bbox.h = 0; + if (bbox.d === -BIGDIMEN) bbox.d = 0; + if (bbox.l === BIGDIMEN) bbox.l = 0; + if (bbox.r === -BIGDIMEN) bbox.r = 0; + // ### FIXME: should these be FONTDATA values? + if (bbox.h < .9) span.firstChild.style.marginTop = CHTML.Em(bbox.h-.9); + if (bbox.d < .25) span.firstChild.style.marginBottom = CHTML.Em(bbox.d-.25); }, CHTMLbboxFor: function (n) { From 8e1e853346a59cd7ed7cd24a463a5186112c46fa Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Mon, 23 Feb 2015 09:55:37 -0500 Subject: [PATCH 011/186] Implement TeX spacing (as well as MathML spacing) --- unpacked/jax/output/CommonHTML/jax.js | 60 ++++++++++++++++++++------- 1 file changed, 44 insertions(+), 16 deletions(-) diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index 8a15878fe..cd5a0a511 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -65,7 +65,7 @@ ".MJXc-rule": {"display":"block!important", "margin-top":"1px"}, ".MJXc-char": {"display":"block!important"}, - ".MJXc-mo": {"margin": "0 .15em"}, +// ".MJXc-mo": {"margin": "0 .15em"}, ".MJXc-mfrac": {"margin": "0 .125em", "vertical-align":".25em", "display": "inline-table!important", "text-align":"center"}, @@ -238,7 +238,7 @@ // Typeset the math // this.initCHTML(math,span); -// math.setTeXclass(); + math.setTeXclass(); try {math.toCommonHTML(span)} catch (err) { if (err.restart) {while (span.firstChild) {span.removeChild(span.firstChild)}} throw err; @@ -574,6 +574,9 @@ REMAPACCENTUNDER: { }, + // + // ### FIXME: Handle mu's + // length2em: function (length,size) { if (typeof(length) !== "string") {length = length.toString()} if (length === "") {return ""} @@ -625,9 +628,9 @@ CHTMLdefaultSpan: function (span,options) { if (!options) options = {}; span = this.CHTMLcreateSpan(span); + this.CHTMLhandleSpace(span); this.CHTMLhandleStyle(span); this.CHTMLhandleColor(span); - if (this.isToken) this.CHTMLhandleToken(span); for (var i = 0, m = this.data.length; i < m; i++) this.CHTMLaddChild(span,i,options); if (!options.noMargins && !options.noBBox) this.CHTMLhandleMargins(span); return span; @@ -675,9 +678,6 @@ return document.getElementById(this.id||"MJXc-Span-"+this.CHTMLspanID); }, - CHTMLhandleToken: function (span) { - }, - CHTMLhandleStyle: function (span) { if (this.style) span.style.cssText = this.style; }, @@ -688,6 +688,13 @@ if (this.mathbackground) {span.style.backgroundColor = this.mathbackground} else if (this.background) {span.style.backgroundColor = this.background} }, + + CHTMLhandleSpace: function (span) { + if (!this.useMMLspacing) { + var space = this.texSpacing(); + if (space !== "") span.style.marginLeft = CHTML.Em(CHTML.length2em(space)); + } + }, CHTMLhandleScriptlevel: function (span,dlevel) { var level = this.Get("scriptlevel"); @@ -782,16 +789,18 @@ toCommonHTML: function (span) { span = this.CHTMLdefaultSpan(span); this.CHTMLadjustAccent(span); - var values = this.getValues("lspace","rspace","scriptlevel","displaystyle","largeop"); - if (values.scriptlevel === 0) { - this.CHTML.L = CHTML.length2em(values.lspace); - this.CHTML.R = CHTML.length2em(values.rspace); - span.style.marginLeft = CHTML.Em(this.CHTML.L); - span.style.marginRight = CHTML.Em(this.CHTML.R); - } else { - this.CHTML.L = .15; - this.CHTML.R = .1; - } + var values = this.getValues(/*"lspace","rspace","scriptlevel",*/"displaystyle","largeop"); + /* + * if (values.scriptlevel === 0) { + * this.CHTML.L = CHTML.length2em(values.lspace); + * this.CHTML.R = CHTML.length2em(values.rspace); + * span.style.marginLeft = CHTML.Em(this.CHTML.L); + * span.style.marginRight = CHTML.Em(this.CHTML.R); + * } else { + * this.CHTML.L = .15; + * this.CHTML.R = .1; + * } + */ if (values.displaystyle && values.largeop) { var box = HTML.Element("span",{className:"MJXc-largeop"}); box.appendChild(span.firstChild); span.appendChild(box); @@ -802,6 +811,24 @@ // ### FIXME: Remap minus signs return span; }, + CHTMLhandleSpace: function (span) { + if (this.useMMLspacing) { + var values = this.getValues("scriptlevel","lspace","rspace"); + values.lspace = Math.max(0,CHTML.length2em(values.lspace)); + values.rspace = Math.max(0,CHTML.length2em(values.rspace)); + if (values.scriptlevel > 0) { + if (!this.hasValue("lspace")) values.lspace = .15; + if (!this.hasValue("rspace")) values.rspace = .15; + } + var core = this, parent = this.Parent(); + while (parent && parent.isEmbellished() && parent.Core() === core) + {core = parent; parent = parent.Parent(); span = core.CHTMLspanElement()} + if (values.lspace) {span.style.paddingLeft = CHTML.Em(values.lspace)} + if (values.rspace) {span.style.paddingRight = CHTML.Em(values.rspace)} + } else { + this.SUPER(arguments).CHTMLhandleSpace.apply(this,arguments); + } + }, CHTMLadjustAccent: function (span) { var parent = this.CoreParent(); if (parent && parent.isa(MML.munderover) && @@ -1116,6 +1143,7 @@ MML.mfenced.Augment({ toCommonHTML: function (span) { span = this.CHTMLcreateSpan(span); + this.CHTMLhandleSpace(span); this.CHTMLhandleStyle(span); this.CHTMLhandleColor(span); // From 3c6dcf717b12afb4e2a7cd4eaafb1cadcffe8f24 Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Mon, 23 Feb 2015 10:02:14 -0500 Subject: [PATCH 012/186] Clean up style formatting. --- unpacked/jax/output/CommonHTML/jax.js | 42 +++++++++++++-------------- 1 file changed, 20 insertions(+), 22 deletions(-) diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index cd5a0a511..15a9485a8 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -49,9 +49,9 @@ ".MJXc-largeop.MJXc-int": {"vertical-align":"-.2em"}, ".MJXc-math": { - "display": "inline-block", - "line-height": LINEHEIGHT, - "text-indent": "0", + "display" "inline-block", + "line-height":LINEHEIGHT, + "text-indent":"0", "white-space":"nowrap", "border-collapse":"collapse" }, @@ -60,17 +60,15 @@ "text-align": "center", "margin": "1em 0" }, - ".MJXc-math span": {"display": "inline-block"}, - ".MJXc-box": {"display":"block!important", "text-align": "center"}, + ".MJXc-math span": {"display":"inline-block"}, + ".MJXc-box": {"display":"block!important", "text-align":"center"}, ".MJXc-rule": {"display":"block!important", "margin-top":"1px"}, ".MJXc-char": {"display":"block!important"}, -// ".MJXc-mo": {"margin": "0 .15em"}, - - ".MJXc-mfrac": {"margin": "0 .125em", "vertical-align":".25em", - "display": "inline-table!important", "text-align":"center"}, - ".MJXc-mfrac > *": {"display": "table-row!important"}, - ".MJXc-num": {"line-height": 0}, + ".MJXc-mfrac": {"margin":"0 .125em", "vertical-align":".25em", + "display":"inline-table!important", "text-align":"center"}, + ".MJXc-mfrac > *": {"display":"table-row!important"}, + ".MJXc-num": {"line-height":0}, ".MJXc-num > span": {"display":"inline-block"}, ".MJXc-num > *": {"line-height":LINEHEIGHT, "width":"100%"}, ".MJXc-num > * > *": {"display":"table!important", "width":"100%"}, @@ -78,27 +76,27 @@ ".MJXc-den > *": {"display":"table-cell!important"}, ".MJXc-den > * > *": {"line-height":LINEHEIGHT}, ".MJXc-mfrac-row": {"display":"table-row!important"}, - ".MJXc-mfrac-row > *": {"display":"table-cell!important","width":"100%"}, + ".MJXc-mfrac-row > *": {"display":"table-cell!important", "width":"100%"}, ".MJXc-surd": {"vertical-align":"top"}, ".MJXc-surd > *": {"display":"block!important"}, ".MJXc-script-box > * ": {"display":"table!important", "height":"50%"}, - ".MJXc-script-box > * > *": {"display":"table-cell!important","vertical-align":"top"}, + ".MJXc-script-box > * > *": {"display":"table-cell!important", "vertical-align":"top"}, ".MJXc-script-box > *:last-child > *": {"vertical-align":"bottom"}, ".MJXc-script-box > * > * > *": {"display":"block!important"}, - ".MJXc-mphantom": {"visibility": "hidden"}, + ".MJXc-mphantom": {"visibility":"hidden"}, ".MJXc-munderover": {"display":"inline-table!important"}, - ".MJXc-over": {"display":"inline-block!important","text-align":"center"}, + ".MJXc-over": {"display":"inline-block!important", "text-align":"center"}, ".MJXc-over > *": {"display":"block!important"}, ".MJXc-munderover > *": {"display":"table-row!important"}, ".MJXc-mtable": {"vertical-align":".25em", "margin":"0 .125em"}, ".MJXc-mtable > *": {"display":"inline-table!important", "vertical-align":"middle"}, ".MJXc-mtr": {"display":"table-row!important"}, - ".MJXc-mtd": {"display":"table-cell!important","text-align":"center","padding":".5em 0 0 .5em"}, + ".MJXc-mtd": {"display":"table-cell!important", "text-align":"center", "padding":".5em 0 0 .5em"}, ".MJXc-mtr > .MJXc-mtd:first-child": {"padding-left":0}, ".MJXc-mtr:first-child > .MJXc-mtd": {"padding-top":0}, ".MJXc-mlabeledtr": {"display":"table-row!important"}, @@ -106,12 +104,12 @@ ".MJXc-mlabeledtr:first-child > .MJXc-mtd": {"padding-top":0}, ".MJXc-merror": { - "background-color": "#FFFF88", - color: "#CC0000", - border: "1px solid #CC0000", - padding: "1px 3px", - "font-style": "normal", - "font-size": "90%" + "background-color":"#FFFF88", + color: "#CC0000", + border: "1px solid #CC0000", + padding: "1px 3px", + "font-style": "normal", + "font-size": "90%" } }; From 95c029ddd353ac5d91deb5d0b432dff2a7adf80a Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Mon, 23 Feb 2015 11:15:57 -0500 Subject: [PATCH 013/186] Add some missing caches, add some space characters (so they don't have to be special cased in the text handling), and fix up some variant chaining. --- .../jax/output/CommonHTML/fonts/TeX/fontdata.js | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/unpacked/jax/output/CommonHTML/fonts/TeX/fontdata.js b/unpacked/jax/output/CommonHTML/fonts/TeX/fontdata.js index e21c84780..4c46c6585 100644 --- a/unpacked/jax/output/CommonHTML/fonts/TeX/fontdata.js +++ b/unpacked/jax/output/CommonHTML/fonts/TeX/fontdata.js @@ -107,7 +107,7 @@ remap: {0x391:0x41, 0x392:0x42, 0x395:0x45, 0x396:0x5A, 0x397:0x48, 0x399:0x49, 0x39A:0x4B, 0x39C:0x4D, 0x39D:0x4E, 0x39F:0x4F, 0x3A1:0x50, 0x3A4:0x54, 0x3A7:0x58}}, - "double-struck": {fonts:[AMS], cache:{}, chain:"normal"}, + "double-struck": {fonts:[AMS,MAIN,SIZE1], cache:{}}, "fraktur": {fonts:["MathJax_Fraktur"], cache:{}, chain:"normal"}, "bold-fraktur": {fonts:["MathJax_Fraktur-bold"], bold:true, cache:{}, chain:"bold"}, "script": {fonts:["MathJax_Script"], cache:{}, chain:"normal"}, @@ -123,7 +123,7 @@ remap: {0x391:0x41, 0x392:0x42, 0x395:0x45, 0x396:0x5A, 0x397:0x48, 0x399:0x49, 0x39A:0x4B, 0x39C:0x4D, 0x39D:0x4E, 0x39F:0x4F, 0x3A1:0x50, 0x3A4:0x54, 0x3A7:0x58}}, - "-TeX-variant": {fonts:[AMS,MAIN,SIZE1], // HACK: to get larger prime for \prime + "-TeX-variant": {fonts:[AMS,MAIN,SIZE1], cache:{}, // HACK: to get larger prime for \prime remap: { 0x2268: 0xE00C, 0x2269: 0xE00D, 0x2270: 0xE011, 0x2271: 0xE00E, 0x2A87: 0xE010, 0x2A88: 0xE00F, 0x2224: 0xE006, 0x2226: 0xE007, @@ -132,8 +132,8 @@ 0x2216:[0x2216,MML.VARIANT.NORMAL], // \setminus 0x210F:[0x210F,MML.VARIANT.NORMAL] // \hslash }}, - "-largeOp": {fonts:[SIZE2,SIZE1,MAIN]}, - "-smallOp": {fonts:[SIZE1,MAIN]}, + "-largeOp": {fonts:[SIZE2,SIZE1,MAIN,AMS],cache:{}}, + "-smallOp": {fonts:[SIZE1,MAIN,AMS], cache:{}}, "-tex-caligraphic-bold": {fonts:["MathJax_Caligraphic-bold","MathJax_Main-bold"], bold:true, cache:{}, chain:"normal", offsetA: 0x41, variantA: "bold-italic"}, "-tex-oldstyle-bold": {fonts:["MathJax_Caligraphic-bold","MathJax_Main-bold"], bold:true, cache:{}, chain:"normal"} @@ -1542,9 +1542,13 @@ }); // - // Add some spacing characters (more will come later) + // Add some spacing characters // MathJax.Hub.Insert(CHTML.FONTDATA.FONTS[MAIN],{ + 0x2061: [0,0,0,0,0,{space:1}], // function application + 0x2062: [0,0,0,0,0,{space:1}], // invisible times + 0x2063: [0,0,0,0,0,{space:1}], // invisible separator + 0x2064: [0,0,0,0,0,{space:1}], // invisible plus 0xEEE0: [0,0,-575,0,0,{space:1}], 0xEEE1: [0,0,-300,0,0,{space:1}], 0xEEE8: [0,0,25,0,0,{space:1}] From 13dff047367119e2923396bb1cd1c85eabb07697 Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Mon, 23 Feb 2015 11:19:37 -0500 Subject: [PATCH 014/186] Improve handling of elements: find correct large operator font (still need to handle centering); handle accent substitution (still need to fix munderover to get spacing right). --- unpacked/jax/output/CommonHTML/jax.js | 131 +++++++++++--------------- 1 file changed, 53 insertions(+), 78 deletions(-) diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index 15a9485a8..439fd4ec8 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -45,11 +45,8 @@ "transform-origin":"right" }, - ".MJXc-largeop": {"font-size":"150%"}, - ".MJXc-largeop.MJXc-int": {"vertical-align":"-.2em"}, - ".MJXc-math": { - "display" "inline-block", + "display":"inline-block", "line-height":LINEHEIGHT, "text-indent":"0", "white-space":"nowrap", @@ -367,18 +364,6 @@ ID: 0, idPostfix: "", GetID: function () {this.ID++; return this.ID}, - VARIANT: { - "bold": "MJXc-bold", - "italic": "MJXc-italic", - "bold-italic": "MJXc-bold MJXc-italic", - "script": "MJXc-scr", - "bold-script": "MJXc-scr MJXc-bold", - "fraktur": "MJXc-frak", - "bold-fraktur": "MJXc-frak MJXc-bold", - "monospace": "MJXc-mono", - "sans-serif": "MJXc-sf", - "-tex-caligraphic": "MJXc-cal" - }, MATHSPACE: { veryverythinmathspace: 1/18, verythinmathspace: 2/18, @@ -546,31 +531,6 @@ "\u23B0": {dir:V, w:.6}, "\u23B1": {dir:V, w:.6} }, - - REMAPACCENT: { - "\u20D7":"\u2192", // vector arrow - "'": "\u02CB", - "`": "\u02CA", - ".": "\u02D9", - "^": "\u02C6", - "-": "\u02C9", - "~": "\u02DC", - "\u00AF": "\u02C9", // macron - "\u00B0": "\u02DA", // degree sign - "\u00B4": "\u02CA", // acute accent - "\u0300": "\u02CB", // combining grave - "\u0301": "\u02CA", // combining acute - "\u0302": "\u02C6", // combining circumflex - "\u0303": "\u02DC", // combinig tilde - "\u0304": "\u02C9", // combining macron - "\u0305": "\u02C9", // combining overline - "\u0306": "\u02D8", // combining breve - "\u0307": "\u02D9", // combining dot - "\u0308": "\u00A8", // combining double dot - "\u030C": "\u02C7" // combining caron - }, - REMAPACCENTUNDER: { - }, // // ### FIXME: Handle mu's @@ -638,7 +598,7 @@ if (child) { if (options.childSpans) span = HTML.addElement(span,"span",{className:options.className}); - child.toCommonHTML(span); + child.toCommonHTML(span,options.childOptions); if (!options.noBBox) { var bbox = this.CHTML, cbox = child.CHTML; bbox.w += cbox.w + (cbox.L||0) + (cbox.R||0); @@ -763,15 +723,21 @@ }); MML.chars.Augment({ - toCommonHTML: function (span) { - var text = this.toString().replace(/[\u2061-\u2064]/g,""); - this.CHTMLhandleText(span,text,this.parent.Get("mathvariant")); + toCommonHTML: function (span,options) { + if (options == null) options = {}; + var text = this.toString(); + if (options.remap) text = options.remap(text,options.remapchars); + // ### FIXME: handle mtextFontInherit + this.CHTMLhandleText(span,text,options.variant||this.parent.Get("mathvariant")); } }); MML.entity.Augment({ - toCommonHTML: function (span) { - var text = this.toString().replace(/[\u2061-\u2064]/g,""); - this.CHTMLhandleText(span,text,this.parent.Get("mathvariant")); + toCommonHTML: function (span,options) { + if (options == null) options = {}; + var text = this.toString(); + if (options.remapchars) text = options.remap(text,options.remapchars); + // ### FIXME: handle mtextFontInherit + this.CHTMLhandleText(span,text,options.variant||this.parent.Get("mathvariant")); } }); @@ -785,28 +751,27 @@ MML.mo.Augment({ toCommonHTML: function (span) { - span = this.CHTMLdefaultSpan(span); - this.CHTMLadjustAccent(span); - var values = this.getValues(/*"lspace","rspace","scriptlevel",*/"displaystyle","largeop"); - /* - * if (values.scriptlevel === 0) { - * this.CHTML.L = CHTML.length2em(values.lspace); - * this.CHTML.R = CHTML.length2em(values.rspace); - * span.style.marginLeft = CHTML.Em(this.CHTML.L); - * span.style.marginRight = CHTML.Em(this.CHTML.R); - * } else { - * this.CHTML.L = .15; - * this.CHTML.R = .1; - * } - */ - if (values.displaystyle && values.largeop) { - var box = HTML.Element("span",{className:"MJXc-largeop"}); - box.appendChild(span.firstChild); span.appendChild(box); - this.CHTML.h *= 1.2; this.CHTML.d *= 1.2; - if (this.data.join("") === "\u222B") box.className += " MJXc-int"; + span = this.CHTMLcreateSpan(span); + + var values = this.getValues("displaystyle","largeop","mathvariant"); + values.text = this.data.join(""); + this.CHTMLadjustAccent(values); + this.CHTMLadjustVariant(values); + + for (var i = 0, m = this.data.length; i < m; i++) { + this.CHTMLaddChild(span,i,{childOptions:{ + variant: values.mathvariant, + remap: this.remap, + remapchars: values.mapchars + }}); } - // ### FIXME: Handle embellished op spacing - // ### FIXME: Remap minus signs + if (values.text.length !== 1) delete this.CHTML.skew; + if (values.largeop) this.CHTMLcenterOp(span); + + this.CHTMLhandleSpace(span); + this.CHTMLhandleStyle(span); + this.CHTMLhandleColor(span); + return span; }, CHTMLhandleSpace: function (span) { @@ -827,19 +792,29 @@ this.SUPER(arguments).CHTMLhandleSpace.apply(this,arguments); } }, - CHTMLadjustAccent: function (span) { - var parent = this.CoreParent(); - if (parent && parent.isa(MML.munderover) && + CHTMLadjustAccent: function (data) { + var parent = this.CoreParent(); data.parent = parent; + if (data.text.length === 1 && parent && parent.isa(MML.munderover) && this.CoreText(parent.data[parent.base]).length === 1) { var over = parent.data[parent.over], under = parent.data[parent.under]; - var c = this.data.join(""), C; - if (over && this === over.CoreMO() && parent.Get("accent")) {C = CHTML.REMAPACCENT[c]} - else if (under && this === under.CoreMO() && parent.Get("accentunder")) {C = CHTML.REMAPACCENTUNDER[c]} - if (C) c = span.innerHTML = C; - if (c.match(/[\u02C6-\u02DC\u00A8]/)) {this.CHTML.acc = -.52} - else if (c === "\u2192") {this.CHTML.acc = -.15; this.CHTML.vec = true} + if (over && this === over.CoreMO() && parent.Get("accent")) { + data.mapchars = CHTML.FONTDATA.REMAPACCENT + } else if (under && this === under.CoreMO() && parent.Get("accentunder")) { + data.mapchars = CHTML.FONTDATA.REMAPACCENTUNDER + } } }, + CHTMLadjustVariant: function (data) { + var parent = data.parent, + isScript = (parent && parent.isa(MML.msubsup) && this !== parent.data[parent.base]); + if (data.largeop) data.mathvariant = (data.displaystyle ? "-largeOp" : "-smallOp"); + if (isScript) { + data.mapchars = this.remapChars; + if (data.text.match(/['`"\u00B4\u2032-\u2037\u2057]/)) + data.mathvariant = "-TeX-variant"; // ### FIXME: handle other fonts + } + }, + CHTMLcenterOp: function (span) {}, CHTMLcanStretch: function (direction,H,D) { if (!this.Get("stretchy")) {return false} var c = this.data.join(""); From 909140b3142e76b7ecde59d193422a1822c147d3 Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Mon, 23 Feb 2015 11:26:50 -0500 Subject: [PATCH 015/186] Make axis height a variable. --- unpacked/jax/output/CommonHTML/jax.js | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index 439fd4ec8..d2ed7d5c1 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -33,7 +33,8 @@ var EVENT, TOUCH, HOVER; // filled in later var SCRIPTFACTOR = Math.sqrt(1/2), - LINEHEIGHT = 1.2; + LINEHEIGHT = 1.2, + AXISHEIGHT = .25; var STYLES = { ".MJXc-script": {"font-size":SCRIPTFACTOR+"em"}, @@ -62,7 +63,7 @@ ".MJXc-rule": {"display":"block!important", "margin-top":"1px"}, ".MJXc-char": {"display":"block!important"}, - ".MJXc-mfrac": {"margin":"0 .125em", "vertical-align":".25em", + ".MJXc-mfrac": {"margin":"0 .125em", "vertical-align":AXISHEIGHT+"em", "display":"inline-table!important", "text-align":"center"}, ".MJXc-mfrac > *": {"display":"table-row!important"}, ".MJXc-num": {"line-height":0}, @@ -90,7 +91,7 @@ ".MJXc-over > *": {"display":"block!important"}, ".MJXc-munderover > *": {"display":"table-row!important"}, - ".MJXc-mtable": {"vertical-align":".25em", "margin":"0 .125em"}, + ".MJXc-mtable": {"vertical-align":AXISHEIGHT+"em", "margin":"0 .125em"}, ".MJXc-mtable > *": {"display":"inline-table!important", "vertical-align":"middle"}, ".MJXc-mtr": {"display":"table-row!important"}, ".MJXc-mtd": {"display":"table-cell!important", "text-align":"center", "padding":".5em 0 0 .5em"}, @@ -387,7 +388,8 @@ infinity: BIGDIMEN }, TeX: { - x_height: .442 + x_height: .442, + axis: AXISHEIGHT }, pxPerInch: 96, em: 16, @@ -814,7 +816,8 @@ data.mathvariant = "-TeX-variant"; // ### FIXME: handle other fonts } }, - CHTMLcenterOp: function (span) {}, + CHTMLcenterOp: function (span) { + }, CHTMLcanStretch: function (direction,H,D) { if (!this.Get("stretchy")) {return false} var c = this.data.join(""); @@ -830,7 +833,7 @@ CHTMLstretchV: function (h,d) { var span = this.CHTMLspanElement(), bbox = this.CHTML; //bbox.w = .4; // ## adjust width var values = this.getValues("symmetric","maxsize","minsize"); - if (values.symmetric) {H = 2*Math.max(h-.25,d+.25)} else {H = h + d} + if (values.symmetric) {H = 2*Math.max(h-AXISHEIGHT,d+AXISHEIGHT)} else {H = h + d} values.maxsize = CHTML.length2em(values.maxsize,bbox.h+bbox.d); values.minsize = CHTML.length2em(values.minsize,bbox.h+bbox.d); H = Math.max(values.minsize,Math.min(values.maxsize,H)); @@ -843,7 +846,7 @@ bbox.w *= scale*sX/10; } box.appendChild(span.firstChild); span.appendChild(box); - if (values.symmetric) span.style.verticalAlign = CHTML.Em(.25*(1-scale)); + if (values.symmetric) span.style.verticalAlign = CHTML.Em(AXISHEIGHT*(1-scale)); } }); @@ -1042,8 +1045,8 @@ var nbox = this.CHTMLbboxFor(0), dbox = this.CHTMLbboxFor(1), bbox = this.CHTML; if (nbox.h < .9) num.firstChild.firstChild.style.marginTop = CHTML.Em(sscale*(nbox.h-.9)); bbox.w = sscale*Math.max(nbox.w,dbox.w); - bbox.h = sscale*(nbox.h+nbox.d) + .25; - bbox.d = sscale*(dbox.h+dbox.d) - .25; + bbox.h = sscale*(nbox.h+nbox.d) + AXISHEIGHT; + bbox.d = sscale*(dbox.h+dbox.d) - AXISHEIGHT; bbox.L = bbox.R = .125/scale; values.linethickness = Math.max(0,CHTML.length2em(values.linethickness||"0",0)); if (values.linethickness) { @@ -1051,7 +1054,7 @@ var t = (values.linethickness < .15 ? "1px" : CHTML.Em(values.linethickness)); rule.style.borderTop = t+" solid"; rule.style.margin = t+" 0"; t = values.linethickness; - span.style.verticalAlign = CHTML.Em(.25-t); + span.style.verticalAlign = CHTML.Em(AXISHEIGHT-t); bbox.h += 2*t; bbox.d += t; } return span; @@ -1220,7 +1223,7 @@ } } var bbox = this.CHTML; - bbox.w = W; bbox.h = H/2 + .25; bbox.d = H/2 - .25; + bbox.w = W; bbox.h = H/2 + AXISHEIGHT; bbox.d = H/2 - AXISHEIGHT; bbox.L = bbox.R = .125; return span; } From adfa16e3aee4133e8e32a6ddc39065cc983e9bcf Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Mon, 23 Feb 2015 12:01:48 -0500 Subject: [PATCH 016/186] Center large ops, and add preliminary italic correction support. --- unpacked/jax/output/CommonHTML/jax.js | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index d2ed7d5c1..63fe752e9 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -603,9 +603,12 @@ child.toCommonHTML(span,options.childOptions); if (!options.noBBox) { var bbox = this.CHTML, cbox = child.CHTML; + if (cbox.r + bbox.w > bbox.r) bbox.r = bbox.w + cbox.r; + if (cbox.l + bbox.w < bbox.l) bbox.l = bbox.w + cbox.l; bbox.w += cbox.w + (cbox.L||0) + (cbox.R||0); if (cbox.h > bbox.h) bbox.h = cbox.h; if (cbox.d > bbox.d) bbox.d = cbox.d; + if (cbox.ic) {bbox.ic = cbox.ic} else {delete bbox.ic} } } else if (options.forceChild) {HTML.addElement(span,"span")} }, @@ -750,6 +753,18 @@ return span; } }); + + MML.mi.Augment({ + toCommonHTML: function (span) { + span = this.CHTMLdefaultSpan(span); + var bbox = this.CHTML, text = this.data.join(""); + if (bbox.skew != null && text.length !== 1) delete bbox.skew; + if (bbox.r > bbox.w && text.length === 1 /*&& !variant.noIC*/) { // ### FIXME: handle variants + bbox.ic = bbox.r - bbox.w; bbox.w = bbox.r; + span.style.paddingRight = CHTML.Em(bbox.ic); + } + } + }); MML.mo.Augment({ toCommonHTML: function (span) { @@ -817,6 +832,14 @@ } }, CHTMLcenterOp: function (span) { + var bbox = this.CHTML; + var p = (bbox.h - bbox.d)/2 - AXISHEIGHT; + if (Math.abs(p) > .001) span.style.verticalAlign = CHTML.Em(-p); + bbox.h -= p; bbox.d += p; + if (bbox.r > bbox.w) { + bbox.ic = bbox.r - bbox.w; bbox.w = bbox.r; + span.style.paddingRight = CHTML.Em(bbox.ic); + } }, CHTMLcanStretch: function (direction,H,D) { if (!this.Get("stretchy")) {return false} From 8f0e833ba62d749f6b5f1a3cab08204d8534caab Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Mon, 23 Feb 2015 12:11:56 -0500 Subject: [PATCH 017/186] Remove integral hack that was needed for Times, and don't add TeX space to mspace elements. --- unpacked/jax/output/CommonHTML/jax.js | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index 63fe752e9..0f2679b80 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -627,11 +627,6 @@ if (!this.CHTML) this.CHTML = {}; this.CHTML = {w:0, h:0, d:0, l:0, r:0, t:0, b:0}; if (this.inferred) return span; - // ### FIXME: This is a hack to handle the different spacing of the - // ### integral sign in Times compared to CM fonts - if (this.type === "mo" && this.data.join("") === "\u222B") {CHTML.lastIsInt = true} - else if (this.type !== "mspace" || this.width !== "negativethinmathspace") {CHTML.lastIsInt = false} - // ### if (!this.CHTMLspanID) {this.CHTMLspanID = CHTML.GetID()}; var id = (this.id || "MJXc-Span-"+this.CHTMLspanID); return HTML.addElement(span,"span",{className:"MJXc-"+this.type, id:id}); @@ -875,18 +870,16 @@ MML.mspace.Augment({ toCommonHTML: function (span) { - span = this.CHTMLdefaultSpan(span); + span = this.CHTMLcreateSpan(span); + this.CHTMLhandleStyle(span); + this.CHTMLhandleColor(span); var values = this.getValues("height","depth","width"); var w = CHTML.length2em(values.width), h = CHTML.length2em(values.height), d = CHTML.length2em(values.depth); var bbox = this.CHTML; bbox.w = w; bbox.h = h; bbox.d = d; - if (w < 0) { - // ### FIXME: lastIsInt hack - if (!CHTML.lastIsInt) span.style.marginLeft = CHTML.Em(w); - w = 0; - } + if (w < 0) {span.style.marginRight = CHTML.Em(w); w = 0} span.style.width = CHTML.Em(w); span.style.height = CHTML.Em(h+d); if (d) span.style.verticalAlign = CHTML.Em(-d); From b9c5ff1d8195dc7a419d273146769a99d95f206f Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Mon, 23 Feb 2015 12:36:51 -0500 Subject: [PATCH 018/186] Get height and depth for ALL character boxes (so large ops, etc, have correct size, since line-height kills that) --- unpacked/jax/output/CommonHTML/jax.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index 0f2679b80..b6f6354e5 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -701,8 +701,8 @@ if (bbox.l === BIGDIMEN) bbox.l = 0; if (bbox.r === -BIGDIMEN) bbox.r = 0; // ### FIXME: should these be FONTDATA values? - if (bbox.h < .9) span.firstChild.style.marginTop = CHTML.Em(bbox.h-.9); - if (bbox.d < .25) span.firstChild.style.marginBottom = CHTML.Em(bbox.d-.25); + span.firstChild.style.marginTop = CHTML.Em(bbox.h-.9); + span.firstChild.style.marginBottom = CHTML.Em(bbox.d-.25); }, CHTMLbboxFor: function (n) { From 22a19a18e2c8a5bea936fe78b60fce753b029900 Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Mon, 23 Feb 2015 14:31:08 -0500 Subject: [PATCH 019/186] Use variables for LINEH and LINED values. --- unpacked/jax/output/CommonHTML/jax.js | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index b6f6354e5..e6f16d512 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -33,7 +33,7 @@ var EVENT, TOUCH, HOVER; // filled in later var SCRIPTFACTOR = Math.sqrt(1/2), - LINEHEIGHT = 1.2, + LINEHEIGHT = 1.2, LINEH = .9, LINED = .3, AXISHEIGHT = .25; var STYLES = { @@ -671,14 +671,14 @@ CHTMLhandleMargins: function (span,box) { var bbox = this.CHTML; // ### FIXME: should these be FONTDATA values? - if (bbox.h < .9 || bbox.d < .25) { + if (bbox.h < LINEH || bbox.d < LINED) { if (box == null) { box = HTML.Element("span",{className:"MJXc-box"}); while (span.firstChild) box.appendChild(span.firstChild); span.appendChild(box); } - if (bbox.h < .9) box.style.marginTop = CHTML.Em(bbox.h-.9); - if (bbox.d < .25) box.style.marginBottom = CHTML.Em(bbox.d-.25); + if (bbox.h < LINEH) box.style.marginTop = CHTML.Em(bbox.h-LINEH); + if (bbox.d < LINED) box.style.marginBottom = CHTML.Em(bbox.d-LINED); } }, @@ -701,8 +701,8 @@ if (bbox.l === BIGDIMEN) bbox.l = 0; if (bbox.r === -BIGDIMEN) bbox.r = 0; // ### FIXME: should these be FONTDATA values? - span.firstChild.style.marginTop = CHTML.Em(bbox.h-.9); - span.firstChild.style.marginBottom = CHTML.Em(bbox.d-.25); + span.firstChild.style.marginTop = CHTML.Em(bbox.h-LINEH); + span.firstChild.style.marginBottom = CHTML.Em(bbox.d-LINED); }, CHTMLbboxFor: function (n) { @@ -1059,7 +1059,8 @@ span.appendChild(num); span.appendChild(denom); var nbox = this.CHTMLbboxFor(0), dbox = this.CHTMLbboxFor(1), bbox = this.CHTML; - if (nbox.h < .9) num.firstChild.firstChild.style.marginTop = CHTML.Em(sscale*(nbox.h-.9)); + if (nbox.h < LINEH) + num.firstChild.firstChild.style.marginTop = CHTML.Em(sscale*(nbox.h-LINEH)); bbox.w = sscale*Math.max(nbox.w,dbox.w); bbox.h = sscale*(nbox.h+nbox.d) + AXISHEIGHT; bbox.d = sscale*(dbox.h+dbox.d) - AXISHEIGHT; From 89d259dac45e6bae9ca6f1ef760f5613003fa698 Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Wed, 25 Feb 2015 10:36:53 -0500 Subject: [PATCH 020/186] Use line-height:0 to make alignments easier, and line-height:normal for character boxes. Add ascent/descent data to fonts, and use that to get correct bounding boxes for characters (requires fixing the fonts to get PC/Mac ascent/descent to be the same). --- .../output/CommonHTML/fonts/TeX/fontdata.js | 20 ++++- unpacked/jax/output/CommonHTML/jax.js | 78 ++++++++----------- 2 files changed, 50 insertions(+), 48 deletions(-) diff --git a/unpacked/jax/output/CommonHTML/fonts/TeX/fontdata.js b/unpacked/jax/output/CommonHTML/fonts/TeX/fontdata.js index 4c46c6585..d29f15c9e 100644 --- a/unpacked/jax/output/CommonHTML/fonts/TeX/fontdata.js +++ b/unpacked/jax/output/CommonHTML/fonts/TeX/fontdata.js @@ -585,6 +585,8 @@ CHTML.FONTDATA.FONTS['MathJax_Caligraphic'] = { directory: 'Caligraphic/Regular', + ascent: .789, + descent: .216, skew: { 0x41: 0.194, 0x42: 0.139, @@ -656,6 +658,8 @@ CHTML.FONTDATA.FONTS['MathJax_Main-bold'] = { directory: 'Main/Bold', weight: 'bold', + ascent: .951, + descent: .267, skew: { 0x131: 0.0319, 0x237: 0.0958, @@ -792,6 +796,8 @@ CHTML.FONTDATA.FONTS['MathJax_Main-italic'] = { directory: 'Main/Italic', style: 'italic', + ascent: .750, + descent: .250, Ranges: [ [0xA0,0xFF,"Latin1Supplement"], [0x300,0x36F,"CombDiacritMarks"], @@ -903,6 +909,8 @@ CHTML.FONTDATA.FONTS['MathJax_Main'] = { directory: 'Main/Regular', + ascent: .900, + descent: .272, skew: { 0x131: 0.0278, 0x237: 0.0833, @@ -1183,6 +1191,8 @@ CHTML.FONTDATA.FONTS['MathJax_Math-italic'] = { directory: 'Math/Italic', style: 'italic', + ascent: .717, + descent: .218, skew: { 0x41: 0.139, 0x42: 0.0833, @@ -1361,6 +1371,8 @@ CHTML.FONTDATA.FONTS['MathJax_Size1'] = { directory: 'Size1/Regular', + ascent: .850, + descent: .350, 0x20: [0,0,250,0,0], // SPACE 0x28: [850,349,458,152,422], // LEFT PARENTHESIS 0x29: [850,349,458,35,305], // RIGHT PARENTHESIS @@ -1410,6 +1422,8 @@ CHTML.FONTDATA.FONTS['MathJax_Size2'] = { directory: 'Size2/Regular', + ascent: 1.360, + descent: .862, 0x20: [0,0,250,0,0], // SPACE 0x28: [1150,649,597,180,561], // LEFT PARENTHESIS 0x29: [1150,649,597,35,416], // RIGHT PARENTHESIS @@ -1451,6 +1465,8 @@ CHTML.FONTDATA.FONTS['MathJax_Size3'] = { directory: 'Size3/Regular', + ascent: 1.450, + descent: .950, 0x20: [0,0,250,0,0], // SPACE 0x28: [1450,949,736,209,701], // LEFT PARENTHESIS 0x29: [1450,949,736,34,526], // RIGHT PARENTHESIS @@ -1476,6 +1492,8 @@ CHTML.FONTDATA.FONTS['MathJax_Size4'] = { directory: 'Size4/Regular', + ascent: 1.750, + descent: 1.250, 0x20: [0,0,250,0,0], // SPACE 0x28: [1750,1249,792,237,758], // LEFT PARENTHESIS 0x29: [1750,1249,792,33,554], // RIGHT PARENTHESIS @@ -1569,7 +1587,7 @@ var family = "MJX_TeX_"+suffix; FONTS[name].className = "MJXc-TeX-"+suffix; STYLES[".MJXc-TeX-"+suffix] = {"font-family":family}; font = {"font-family":family}; name = name.replace(/-.*/,""); - if (names[1] === "Regular") {font.src = "local('"+name+"')"} + if (names[1] === "Regular") {font.src = "local('"+name+"'), local('"+name+"-Regular+')"} else {font.src = "local('"+name+" "+names[1]+"'), local('"+name+"-"+names[1]+"')"} faces.push(font); }} diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index e6f16d512..b770a4cb2 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -33,7 +33,6 @@ var EVENT, TOUCH, HOVER; // filled in later var SCRIPTFACTOR = Math.sqrt(1/2), - LINEHEIGHT = 1.2, LINEH = .9, LINED = .3, AXISHEIGHT = .25; var STYLES = { @@ -48,7 +47,7 @@ ".MJXc-math": { "display":"inline-block", - "line-height":LINEHEIGHT, + "line-height":"0", "text-indent":"0", "white-space":"nowrap", "border-collapse":"collapse" @@ -61,38 +60,34 @@ ".MJXc-math span": {"display":"inline-block"}, ".MJXc-box": {"display":"block!important", "text-align":"center"}, ".MJXc-rule": {"display":"block!important", "margin-top":"1px"}, - ".MJXc-char": {"display":"block!important"}, + ".MJXc-char": {"display":"block!important","line-height":"normal"}, ".MJXc-mfrac": {"margin":"0 .125em", "vertical-align":AXISHEIGHT+"em", "display":"inline-table!important", "text-align":"center"}, - ".MJXc-mfrac > *": {"display":"table-row!important"}, - ".MJXc-num": {"line-height":0}, - ".MJXc-num > span": {"display":"inline-block"}, - ".MJXc-num > *": {"line-height":LINEHEIGHT, "width":"100%"}, - ".MJXc-num > * > *": {"display":"table!important", "width":"100%"}, - ".MJXc-den": {"line-height":LINEHEIGHT*SCRIPTFACTOR}, - ".MJXc-den > *": {"display":"table-cell!important"}, - ".MJXc-den > * > *": {"line-height":LINEHEIGHT}, + ".MJXc-mfrac > span": {"display":"table-row!important"}, + ".MJXc-num > span": {"display":"inline-block", "width":"100%"}, + ".MJXc-num > span > span": {"display":"table!important", "width":"100%"}, + ".MJXc-den > span": {"display":"table-cell!important"}, ".MJXc-mfrac-row": {"display":"table-row!important"}, - ".MJXc-mfrac-row > *": {"display":"table-cell!important", "width":"100%"}, + ".MJXc-mfrac-row > span": {"display":"table-cell!important", "width":"100%"}, ".MJXc-surd": {"vertical-align":"top"}, - ".MJXc-surd > *": {"display":"block!important"}, + ".MJXc-surd > span": {"display":"block!important"}, - ".MJXc-script-box > * ": {"display":"table!important", "height":"50%"}, - ".MJXc-script-box > * > *": {"display":"table-cell!important", "vertical-align":"top"}, - ".MJXc-script-box > *:last-child > *": {"vertical-align":"bottom"}, - ".MJXc-script-box > * > * > *": {"display":"block!important"}, + ".MJXc-script-box > span ": {"display":"table!important", "height":"50%"}, + ".MJXc-script-box > span > span": {"display":"table-cell!important", "vertical-align":"top"}, + ".MJXc-script-box > span:last-child > span": {"vertical-align":"bottom"}, + ".MJXc-script-box > span > span > span": {"display":"block!important"}, ".MJXc-mphantom": {"visibility":"hidden"}, ".MJXc-munderover": {"display":"inline-table!important"}, ".MJXc-over": {"display":"inline-block!important", "text-align":"center"}, - ".MJXc-over > *": {"display":"block!important"}, - ".MJXc-munderover > *": {"display":"table-row!important"}, + ".MJXc-over > span": {"display":"block!important"}, + ".MJXc-munderover > span": {"display":"table-row!important"}, ".MJXc-mtable": {"vertical-align":AXISHEIGHT+"em", "margin":"0 .125em"}, - ".MJXc-mtable > *": {"display":"inline-table!important", "vertical-align":"middle"}, + ".MJXc-mtable > span": {"display":"inline-table!important", "vertical-align":"middle"}, ".MJXc-mtr": {"display":"table-row!important"}, ".MJXc-mtd": {"display":"table-cell!important", "text-align":"center", "padding":".5em 0 0 .5em"}, ".MJXc-mtr > .MJXc-mtd:first-child": {"padding-left":0}, @@ -480,17 +475,20 @@ var item = list[i]; switch (item.type) { case "char": - if (className && item.font.className !== className) { + var font = item.font; + if (className && font.className !== className) { HTML.addElement(span,"span",{className:className},[text]); text = ""; className = null; } - var C = item.font[item.n]; - text += C.c; className = item.font.className; + var C = font[item.n]; + text += C.c; className = font.className; if (bbox.h < C[0]) bbox.h = C[0]; if (bbox.d < C[1]) bbox.d = C[1]; if (bbox.l > bbox.w+C[3]) bbox.l = bbox.w+C[3]; if (bbox.r < bbox.w+C[4]) bbox.r = bbox.w+C[4]; bbox.w += C[2]; + if (bbox.H < font.ascent) bbox.H = font.ascent; + if (bbox.D < font.descent) bbox.D = font.descent; } } if (span.childNodes.length) { @@ -592,7 +590,6 @@ this.CHTMLhandleStyle(span); this.CHTMLhandleColor(span); for (var i = 0, m = this.data.length; i < m; i++) this.CHTMLaddChild(span,i,options); - if (!options.noMargins && !options.noBBox) this.CHTMLhandleMargins(span); return span; }, CHTMLaddChild: function (span,i,options) { @@ -668,24 +665,11 @@ } }, - CHTMLhandleMargins: function (span,box) { - var bbox = this.CHTML; - // ### FIXME: should these be FONTDATA values? - if (bbox.h < LINEH || bbox.d < LINED) { - if (box == null) { - box = HTML.Element("span",{className:"MJXc-box"}); - while (span.firstChild) box.appendChild(span.firstChild); - span.appendChild(box); - } - if (bbox.h < LINEH) box.style.marginTop = CHTML.Em(bbox.h-LINEH); - if (bbox.d < LINED) box.style.marginBottom = CHTML.Em(bbox.d-LINED); - } - }, - CHTMLhandleText: function (span,text,variant) { if (span.childNodes.length === 0) { HTML.addElement(span,"span",{className:"MJXc-char"}); - this.CHTML = {h:-BIGDIMEN, d:-BIGDIMEN, w:0, l:BIGDIMEN, r:-BIGDIMEN}; + this.CHTML = {h:-BIGDIMEN, d:-BIGDIMEN, w:0, l:BIGDIMEN, r:-BIGDIMEN, + D:-BIGDIMEN, H:-BIGDIMEN}; } var bbox = this.CHTML, string = {text:text, i:0, length:text.length}; if (typeof(variant) === "string") variant = CHTML.FONTDATA.VARIANT[variant]; @@ -700,14 +684,15 @@ if (bbox.d === -BIGDIMEN) bbox.d = 0; if (bbox.l === BIGDIMEN) bbox.l = 0; if (bbox.r === -BIGDIMEN) bbox.r = 0; - // ### FIXME: should these be FONTDATA values? - span.firstChild.style.marginTop = CHTML.Em(bbox.h-LINEH); - span.firstChild.style.marginBottom = CHTML.Em(bbox.d-LINED); + if (bbox.H === -BIGDIMEN) bbox.H = .8; + if (bbox.D === -BIGDIMEN) bbox.D = .2; + span.firstChild.style.marginTop = CHTML.Em(bbox.h-bbox.H); + span.firstChild.style.marginBottom = CHTML.Em(bbox.d-bbox.D); }, CHTMLbboxFor: function (n) { if (this.data[n] && this.data[n].CHTML) return this.data[n].CHTML; - return {w:0, h:0, d:0, l:0, r:0, t:0, b:0}; + return {w:0, h:0, d:0, l:0, r:0}; }, CHTMLcanStretch: function (direction,H,D) { @@ -1046,21 +1031,20 @@ ["span",{}, // inline-block [["span",{},[ // table, 100% ["span",{className:"MJXc-mfrac-row"}], // numerator row, 100% - ["span",{className:"MJXc-mfrac-row", style:"font-size:0"}, + ["span",{className:"MJXc-mfrac-row"}, [["span",{},[["span",{className:"MJXc-rule"}]]]]] // division line ]]] ] ]); num.firstChild.firstChild.firstChild.appendChild(span.firstChild); var denom = HTML.Element("span",{className:"MJXc-den"}); - if (sscale === 1) denom.style.lineHeight = LINEHEIGHT; if (scale !== 1) span.style.margin = "0 "+CHTML.Em(.125/scale); denom.appendChild(span.firstChild); span.appendChild(num); span.appendChild(denom); var nbox = this.CHTMLbboxFor(0), dbox = this.CHTMLbboxFor(1), bbox = this.CHTML; - if (nbox.h < LINEH) - num.firstChild.firstChild.style.marginTop = CHTML.Em(sscale*(nbox.h-LINEH)); + if (nbox.h < .9) + num.firstChild.firstChild.style.marginTop = CHTML.Em(sscale*(nbox.h-.9)); bbox.w = sscale*Math.max(nbox.w,dbox.w); bbox.h = sscale*(nbox.h+nbox.d) + AXISHEIGHT; bbox.d = sscale*(dbox.h+dbox.d) - AXISHEIGHT; From a26b6426feaffaddec688d0ef479956f3dedca33 Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Fri, 27 Feb 2015 10:35:06 -0500 Subject: [PATCH 021/186] Make bounding boxes for character based on line-height:0 rather than line-height:normal (the other varried too much from browser to browser and failed to match the internal dimensions). The HFUZZ and DFUZZ may need to be adjusted, and may need to be made browser specific (argh), but that might be able to be done through CSS. --- unpacked/jax/output/CommonHTML/jax.js | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index b770a4cb2..98eaa92ea 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -33,7 +33,8 @@ var EVENT, TOUCH, HOVER; // filled in later var SCRIPTFACTOR = Math.sqrt(1/2), - AXISHEIGHT = .25; + AXISHEIGHT = .25, + HFUZZ = .05, DFUZZ = 0; // adjustments to bounding box of character boxes var STYLES = { ".MJXc-script": {"font-size":SCRIPTFACTOR+"em"}, @@ -60,7 +61,7 @@ ".MJXc-math span": {"display":"inline-block"}, ".MJXc-box": {"display":"block!important", "text-align":"center"}, ".MJXc-rule": {"display":"block!important", "margin-top":"1px"}, - ".MJXc-char": {"display":"block!important","line-height":"normal"}, + ".MJXc-char": {"display":"block!important"}, ".MJXc-mfrac": {"margin":"0 .125em", "vertical-align":AXISHEIGHT+"em", "display":"inline-table!important", "text-align":"center"}, @@ -686,8 +687,10 @@ if (bbox.r === -BIGDIMEN) bbox.r = 0; if (bbox.H === -BIGDIMEN) bbox.H = .8; if (bbox.D === -BIGDIMEN) bbox.D = .2; - span.firstChild.style.marginTop = CHTML.Em(bbox.h-bbox.H); - span.firstChild.style.marginBottom = CHTML.Em(bbox.d-bbox.D); + bbox.h += HFUZZ; bbox.d += DFUZZ; + var a = (bbox.H-bbox.D)/2; // center of font (line-height:0) + span.firstChild.style.marginTop = CHTML.Em(bbox.h-a); + span.firstChild.style.marginBottom = CHTML.Em(bbox.d+a); }, CHTMLbboxFor: function (n) { From 8f5677f2de19664aff5578962d3f151c1b04712a Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Fri, 27 Feb 2015 10:36:21 -0500 Subject: [PATCH 022/186] Remove unwanted '+' from @font-face declaration. --- unpacked/jax/output/CommonHTML/fonts/TeX/fontdata.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/unpacked/jax/output/CommonHTML/fonts/TeX/fontdata.js b/unpacked/jax/output/CommonHTML/fonts/TeX/fontdata.js index d29f15c9e..e680aace7 100644 --- a/unpacked/jax/output/CommonHTML/fonts/TeX/fontdata.js +++ b/unpacked/jax/output/CommonHTML/fonts/TeX/fontdata.js @@ -1587,7 +1587,7 @@ var family = "MJX_TeX_"+suffix; FONTS[name].className = "MJXc-TeX-"+suffix; STYLES[".MJXc-TeX-"+suffix] = {"font-family":family}; font = {"font-family":family}; name = name.replace(/-.*/,""); - if (names[1] === "Regular") {font.src = "local('"+name+"'), local('"+name+"-Regular+')"} + if (names[1] === "Regular") {font.src = "local('"+name+"'), local('"+name+"-Regular')"} else {font.src = "local('"+name+" "+names[1]+"'), local('"+name+"-"+names[1]+"')"} faces.push(font); }} From 6399338521c87c5bad5e55f136694f0733141f68 Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Fri, 27 Feb 2015 10:55:43 -0500 Subject: [PATCH 023/186] Preliminary change to custom tag names (for easier readability, and less chance of CSS bleed-through). --- unpacked/jax/output/CommonHTML/jax.js | 491 +++++++++++++------------- 1 file changed, 254 insertions(+), 237 deletions(-) diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index 98eaa92ea..9edd1e745 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -37,41 +37,48 @@ HFUZZ = .05, DFUZZ = 0; // adjustments to bounding box of character boxes var STYLES = { - ".MJXc-script": {"font-size":SCRIPTFACTOR+"em"}, - ".MJXc-right": { - "-webkit-transform-origin":"right", - "-moz-transform-origin":"right", - "-ms-transform-origin":"right", - "-o-transform-origin":"right", - "transform-origin":"right" + ".MJXc-display": { + "display": "block", + "text-align": "center", + "margin": "1em 0" }, - ".MJXc-math": { - "display":"inline-block", - "line-height":"0", - "text-indent":"0", - "white-space":"nowrap", + "mjx-math": { + "display": "inline-block", + "line-height": 0, + "text-indent": 0, + "white-space": "nowrap", "border-collapse":"collapse" }, - ".MJXc-display": { - "display": "block", - "text-align": "center", - "margin": "1em 0" + "mjx-math *": {display:"inline-block"}, + + "mjx-mfrac": {"vertical-align":".25em"}, + "mjx-fbox": {width:"100%"}, + + "mjx-mphantom": {"visibility":"hidden"}, + + "mjx-merror": { + "background-color":"#FFFF88", + color: "#CC0000", + border: "1px solid #CC0000", + padding: "1px 3px", + "font-style": "normal", + "font-size": "90%" }, - ".MJXc-math span": {"display":"inline-block"}, - ".MJXc-box": {"display":"block!important", "text-align":"center"}, - ".MJXc-rule": {"display":"block!important", "margin-top":"1px"}, - ".MJXc-char": {"display":"block!important"}, - ".MJXc-mfrac": {"margin":"0 .125em", "vertical-align":AXISHEIGHT+"em", - "display":"inline-table!important", "text-align":"center"}, - ".MJXc-mfrac > span": {"display":"table-row!important"}, - ".MJXc-num > span": {"display":"inline-block", "width":"100%"}, - ".MJXc-num > span > span": {"display":"table!important", "width":"100%"}, - ".MJXc-den > span": {"display":"table-cell!important"}, - ".MJXc-mfrac-row": {"display":"table-row!important"}, - ".MJXc-mfrac-row > span": {"display":"table-cell!important", "width":"100%"}, + "mjx-box": {display:"inline-block"}, + "mjx-block": {display:"block"}, + "mjx-char": {display:"block", "xline-height":"normal"}, + "mjx-itable": {display:"inline-table"}, + "mjx-row": {display:"table-row"}, + "mjx-cell": {display:"table-cell", "text-align":"center"}, + "mjx-table": {display:"table", width:"100%"}, + "mjx-line": {display:"block", width:"100%", "border-top":"0 solid"}, + ".MJXc-script": {"font-size":SCRIPTFACTOR+"em"}, + +/*********************************/ + ".MJXc-surd": {"vertical-align":"top"}, ".MJXc-surd > span": {"display":"block!important"}, @@ -80,8 +87,6 @@ ".MJXc-script-box > span:last-child > span": {"vertical-align":"bottom"}, ".MJXc-script-box > span > span > span": {"display":"block!important"}, - ".MJXc-mphantom": {"visibility":"hidden"}, - ".MJXc-munderover": {"display":"inline-table!important"}, ".MJXc-over": {"display":"inline-block!important", "text-align":"center"}, ".MJXc-over > span": {"display":"block!important"}, @@ -321,7 +326,7 @@ do {math = math.nextSibling} while (math && math.nodeName.toLowerCase() !== "script"); return HUB.getJaxFor(math); }, - getHoverSpan: function (jax,math) {return jax.root.CHTMLspanElement()}, + getHoverSpan: function (jax,math) {return jax.root.CHTMLnodeElement()}, getHoverBBox: function (jax,span,math) { // var bbox = span.CHTML, em = jax.CHTML.outerEm; // var BBOX = {w:bbox.w*em, h:bbox.h*em, d:bbox.d*em}; @@ -470,7 +475,7 @@ }, unknownChar: function (variant,n) {}, - addCharList: function (span,list,bbox) { + addCharList: function (node,list,bbox) { var text = "", className; for (var i = 0, m = list.length; i < m; i++) { var item = list[i]; @@ -478,7 +483,7 @@ case "char": var font = item.font; if (className && font.className !== className) { - HTML.addElement(span,"span",{className:className},[text]); + HTML.addElement(node,"span",{className:className},[text]); text = ""; className = null; } var C = font[item.n]; @@ -492,11 +497,11 @@ if (bbox.D < font.descent) bbox.D = font.descent; } } - if (span.childNodes.length) { - HTML.addElement(span,"span",{className:className},[text]); + if (node.childNodes.length) { + HTML.addElement(node,"span",{className:className},[text]); } else { - HTML.addText(span,text); - span.className += " "+className; + HTML.addText(node,text); + node.className += " "+className; } }, @@ -580,25 +585,25 @@ MML = MathJax.ElementJax.mml; MML.mbase.Augment({ - toCommonHTML: function (span,options) { - return this.CHTMLdefaultSpan(span,options); + toCommonHTML: function (node,options) { + return this.CHTMLdefaultNode(node,options); }, - CHTMLdefaultSpan: function (span,options) { + CHTMLdefaultNode: function (node,options) { if (!options) options = {}; - span = this.CHTMLcreateSpan(span); - this.CHTMLhandleSpace(span); - this.CHTMLhandleStyle(span); - this.CHTMLhandleColor(span); - for (var i = 0, m = this.data.length; i < m; i++) this.CHTMLaddChild(span,i,options); - return span; + node = this.CHTMLcreateNode(node); + this.CHTMLhandleSpace(node); + this.CHTMLhandleStyle(node); + this.CHTMLhandleColor(node); + for (var i = 0, m = this.data.length; i < m; i++) this.CHTMLaddChild(node,i,options); + return node; }, - CHTMLaddChild: function (span,i,options) { + CHTMLaddChild: function (node,i,options) { var child = this.data[i]; if (child) { - if (options.childSpans) - span = HTML.addElement(span,"span",{className:options.className}); - child.toCommonHTML(span,options.childOptions); + if (options.childNodes) + node = HTML.addElement(node,options.childNodes); + child.toCommonHTML(node,options.childOptions); if (!options.noBBox) { var bbox = this.CHTML, cbox = child.CHTML; if (cbox.r + bbox.w > bbox.r) bbox.r = bbox.w + cbox.r; @@ -608,7 +613,7 @@ if (cbox.d > bbox.d) bbox.d = cbox.d; if (cbox.ic) {bbox.ic = cbox.ic} else {delete bbox.ic} } - } else if (options.forceChild) {HTML.addElement(span,"span")} + } else if (options.forceChild) {HTML.addElement(node,"span")} }, CHTMLstretchChild: function (i,H,D) { var data = this.data[i]; @@ -621,54 +626,54 @@ } }, - CHTMLcreateSpan: function (span) { + CHTMLcreateNode: function (node) { if (!this.CHTML) this.CHTML = {}; this.CHTML = {w:0, h:0, d:0, l:0, r:0, t:0, b:0}; - if (this.inferred) return span; - if (!this.CHTMLspanID) {this.CHTMLspanID = CHTML.GetID()}; - var id = (this.id || "MJXc-Span-"+this.CHTMLspanID); - return HTML.addElement(span,"span",{className:"MJXc-"+this.type, id:id}); + if (this.inferred) return node; + if (!this.CHTMLnodeID) {this.CHTMLnodeID = CHTML.GetID()}; + var id = (this.id || "MJXc-Node-"+this.CHTMLnodeID); + return HTML.addElement(node,"mjx-"+this.type,{className:"MJXc-"+this.type, id:id}); }, - CHTMLspanElement: function () { - if (!this.CHTMLspanID) {return null} - return document.getElementById(this.id||"MJXc-Span-"+this.CHTMLspanID); + CHTMLnodeElement: function () { + if (!this.CHTMLnodeID) {return null} + return document.getElementById(this.id||"MJXc-Node-"+this.CHTMLnodeID); }, - CHTMLhandleStyle: function (span) { - if (this.style) span.style.cssText = this.style; + CHTMLhandleStyle: function (node) { + if (this.style) node.style.cssText = this.style; }, - CHTMLhandleColor: function (span) { - if (this.mathcolor) {span.style.color = this.mathcolor} - else if (this.color) {span.style.color = this.color} - if (this.mathbackground) {span.style.backgroundColor = this.mathbackground} - else if (this.background) {span.style.backgroundColor = this.background} + CHTMLhandleColor: function (node) { + if (this.mathcolor) {node.style.color = this.mathcolor} + else if (this.color) {node.style.color = this.color} + if (this.mathbackground) {node.style.backgroundColor = this.mathbackground} + else if (this.background) {node.style.backgroundColor = this.background} }, - CHTMLhandleSpace: function (span) { + CHTMLhandleSpace: function (node) { if (!this.useMMLspacing) { var space = this.texSpacing(); - if (space !== "") span.style.marginLeft = CHTML.Em(CHTML.length2em(space)); + if (space !== "") node.style.marginLeft = CHTML.Em(CHTML.length2em(space)); } }, - CHTMLhandleScriptlevel: function (span,dlevel) { + CHTMLhandleScriptlevel: function (node,dlevel) { var level = this.Get("scriptlevel"); if (level === 0) return; // ### FIXME: handle scriptminsize if (level > 2) level = 2; if (level > 0 && dlevel == null) { - span.className += " MJXc-script"; + node.className += " MJXc-script"; } else { if (dlevel) level -= dlevel; var scale = Math.floor(Math.pow(SCRIPTFACTOR,level)*100); - span.style.fontSize = scale+"%"; + node.style.fontSize = scale+"%"; } }, - CHTMLhandleText: function (span,text,variant) { - if (span.childNodes.length === 0) { - HTML.addElement(span,"span",{className:"MJXc-char"}); + CHTMLhandleText: function (node,text,variant) { + if (node.childNodes.length === 0) { + HTML.addElement(node,"mjx-char"); this.CHTML = {h:-BIGDIMEN, d:-BIGDIMEN, w:0, l:BIGDIMEN, r:-BIGDIMEN, D:-BIGDIMEN, H:-BIGDIMEN}; } @@ -680,7 +685,7 @@ var n = CHTML.getUnicode(string); list.push.apply(list,CHTML.getCharList(variant,n)); } - CHTML.addCharList(span.firstChild,list,bbox); + CHTML.addCharList(node.firstChild,list,bbox); if (bbox.h === -BIGDIMEN) bbox.h = 0; if (bbox.d === -BIGDIMEN) bbox.d = 0; if (bbox.l === BIGDIMEN) bbox.l = 0; @@ -689,14 +694,25 @@ if (bbox.D === -BIGDIMEN) bbox.D = .2; bbox.h += HFUZZ; bbox.d += DFUZZ; var a = (bbox.H-bbox.D)/2; // center of font (line-height:0) - span.firstChild.style.marginTop = CHTML.Em(bbox.h-a); - span.firstChild.style.marginBottom = CHTML.Em(bbox.d+a); + node.firstChild.style.marginTop = CHTML.Em(bbox.h-a); + node.firstChild.style.marginBottom = CHTML.Em(bbox.d+a); }, CHTMLbboxFor: function (n) { if (this.data[n] && this.data[n].CHTML) return this.data[n].CHTML; return {w:0, h:0, d:0, l:0, r:0}; }, + // + // Debugging function to see if internal BBox matches actual bbox + // + CHTMLdrawBBox: function (node) { + var bbox = this.CHTML; + HTML.addElement(node.parentNode,"mjx-box",{style:{opacity:.5,"margin-left":CHTML.Em(-bbox.w)}},[ + ["mjx-box",{style:{height:CHTML.Em(bbox.h),width:CHTML.Em(bbox.w),"background-color":"red"}}], + ["mjx-box",{style:{height:CHTML.Em(bbox.d),width:CHTML.Em(bbox.w),"margin-left":CHTML.Em(-bbox.w),"vertical-align":CHTML.Em(-bbox.d),"background-color":"green"}}] + ]); + }, + CHTMLcanStretch: function (direction,H,D) { if (this.isEmbellished()) { @@ -711,47 +727,47 @@ }); MML.chars.Augment({ - toCommonHTML: function (span,options) { + toCommonHTML: function (node,options) { if (options == null) options = {}; var text = this.toString(); if (options.remap) text = options.remap(text,options.remapchars); // ### FIXME: handle mtextFontInherit - this.CHTMLhandleText(span,text,options.variant||this.parent.Get("mathvariant")); + this.CHTMLhandleText(node,text,options.variant||this.parent.Get("mathvariant")); } }); MML.entity.Augment({ - toCommonHTML: function (span,options) { + toCommonHTML: function (node,options) { if (options == null) options = {}; var text = this.toString(); if (options.remapchars) text = options.remap(text,options.remapchars); // ### FIXME: handle mtextFontInherit - this.CHTMLhandleText(span,text,options.variant||this.parent.Get("mathvariant")); + this.CHTMLhandleText(node,text,options.variant||this.parent.Get("mathvariant")); } }); MML.math.Augment({ - toCommonHTML: function (span) { - span = this.CHTMLdefaultSpan(span); - if (this.Get("display") === "block") {span.className += " MJXc-display"} - return span; + toCommonHTML: function (node) { + node = this.CHTMLdefaultNode(node); + if (this.Get("display") === "block") {node.className += " MJXc-display"} + return node; } }); MML.mi.Augment({ - toCommonHTML: function (span) { - span = this.CHTMLdefaultSpan(span); + toCommonHTML: function (node) { + node = this.CHTMLdefaultNode(node); var bbox = this.CHTML, text = this.data.join(""); if (bbox.skew != null && text.length !== 1) delete bbox.skew; if (bbox.r > bbox.w && text.length === 1 /*&& !variant.noIC*/) { // ### FIXME: handle variants bbox.ic = bbox.r - bbox.w; bbox.w = bbox.r; - span.style.paddingRight = CHTML.Em(bbox.ic); + node.style.paddingRight = CHTML.Em(bbox.ic); } } }); MML.mo.Augment({ - toCommonHTML: function (span) { - span = this.CHTMLcreateSpan(span); + toCommonHTML: function (node) { + node = this.CHTMLcreateNode(node); var values = this.getValues("displaystyle","largeop","mathvariant"); values.text = this.data.join(""); @@ -759,22 +775,22 @@ this.CHTMLadjustVariant(values); for (var i = 0, m = this.data.length; i < m; i++) { - this.CHTMLaddChild(span,i,{childOptions:{ + this.CHTMLaddChild(node,i,{childOptions:{ variant: values.mathvariant, remap: this.remap, remapchars: values.mapchars }}); } if (values.text.length !== 1) delete this.CHTML.skew; - if (values.largeop) this.CHTMLcenterOp(span); + if (values.largeop) this.CHTMLcenterOp(node); - this.CHTMLhandleSpace(span); - this.CHTMLhandleStyle(span); - this.CHTMLhandleColor(span); + this.CHTMLhandleSpace(node); + this.CHTMLhandleStyle(node); + this.CHTMLhandleColor(node); - return span; + return node; }, - CHTMLhandleSpace: function (span) { + CHTMLhandleSpace: function (node) { if (this.useMMLspacing) { var values = this.getValues("scriptlevel","lspace","rspace"); values.lspace = Math.max(0,CHTML.length2em(values.lspace)); @@ -785,9 +801,9 @@ } var core = this, parent = this.Parent(); while (parent && parent.isEmbellished() && parent.Core() === core) - {core = parent; parent = parent.Parent(); span = core.CHTMLspanElement()} - if (values.lspace) {span.style.paddingLeft = CHTML.Em(values.lspace)} - if (values.rspace) {span.style.paddingRight = CHTML.Em(values.rspace)} + {core = parent; parent = parent.Parent(); node = core.CHTMLnodeElement()} + if (values.lspace) {node.style.paddingLeft = CHTML.Em(values.lspace)} + if (values.rspace) {node.style.paddingRight = CHTML.Em(values.rspace)} } else { this.SUPER(arguments).CHTMLhandleSpace.apply(this,arguments); } @@ -814,14 +830,14 @@ data.mathvariant = "-TeX-variant"; // ### FIXME: handle other fonts } }, - CHTMLcenterOp: function (span) { + CHTMLcenterOp: function (node) { var bbox = this.CHTML; var p = (bbox.h - bbox.d)/2 - AXISHEIGHT; - if (Math.abs(p) > .001) span.style.verticalAlign = CHTML.Em(-p); + if (Math.abs(p) > .001) node.style.verticalAlign = CHTML.Em(-p); bbox.h -= p; bbox.d += p; if (bbox.r > bbox.w) { bbox.ic = bbox.r - bbox.w; bbox.w = bbox.r; - span.style.paddingRight = CHTML.Em(bbox.ic); + node.style.paddingRight = CHTML.Em(bbox.ic); } }, CHTMLcanStretch: function (direction,H,D) { @@ -837,7 +853,7 @@ return stretch; }, CHTMLstretchV: function (h,d) { - var span = this.CHTMLspanElement(), bbox = this.CHTML; //bbox.w = .4; // ## adjust width + var node = this.CHTMLnodeElement(), bbox = this.CHTML; //bbox.w = .4; // ## adjust width var values = this.getValues("symmetric","maxsize","minsize"); if (values.symmetric) {H = 2*Math.max(h-AXISHEIGHT,d+AXISHEIGHT)} else {H = h + d} values.maxsize = CHTML.length2em(values.maxsize,bbox.h+bbox.d); @@ -851,42 +867,42 @@ box.style.marginLeft = CHTML.Em(bbox.w*(sX/10-1)+.07); bbox.w *= scale*sX/10; } - box.appendChild(span.firstChild); span.appendChild(box); - if (values.symmetric) span.style.verticalAlign = CHTML.Em(AXISHEIGHT*(1-scale)); + box.appendChild(node.firstChild); node.appendChild(box); + if (values.symmetric) node.style.verticalAlign = CHTML.Em(AXISHEIGHT*(1-scale)); } }); MML.mspace.Augment({ - toCommonHTML: function (span) { - span = this.CHTMLcreateSpan(span); - this.CHTMLhandleStyle(span); - this.CHTMLhandleColor(span); + toCommonHTML: function (node) { + node = this.CHTMLcreateNode(node); + this.CHTMLhandleStyle(node); + this.CHTMLhandleColor(node); var values = this.getValues("height","depth","width"); var w = CHTML.length2em(values.width), h = CHTML.length2em(values.height), d = CHTML.length2em(values.depth); var bbox = this.CHTML; bbox.w = w; bbox.h = h; bbox.d = d; - if (w < 0) {span.style.marginRight = CHTML.Em(w); w = 0} - span.style.width = CHTML.Em(w); - span.style.height = CHTML.Em(h+d); - if (d) span.style.verticalAlign = CHTML.Em(-d); - return span; + if (w < 0) {node.style.marginRight = CHTML.Em(w); w = 0} + node.style.width = CHTML.Em(w); + node.style.height = CHTML.Em(h+d); + if (d) node.style.verticalAlign = CHTML.Em(-d); + return node; } }); MML.mpadded.Augment({ - toCommonHTML: function (span) { - span = this.CHTMLdefaultSpan(span,{ - childSpans:true, className:"MJXc-box", forceChild:true + toCommonHTML: function (node) { + node = this.CHTMLdefaultNode(node,{ + childNodes:"mjx-box", forceChild:true }); - var child = span.firstChild; + var child = node.firstChild; var values = this.getValues("width","height","depth","lspace","voffset"); var dimen = this.CHTMLdimen(values.lspace); var T = 0, B = 0, L = dimen.len, R = -dimen.len, V = 0; if (values.width !== "") { dimen = this.CHTMLdimen(values.width,"w",0); - if (dimen.pm) {R += dimen.len} else {span.style.width = CHTML.Em(dimen.len)} + if (dimen.pm) {R += dimen.len} else {node.style.width = CHTML.Em(dimen.len)} } if (values.height !== "") { dimen = this.CHTMLdimen(values.height,"h",0); @@ -907,8 +923,8 @@ if (B) child.style.marginBottom = CHTML.Em(B); if (L) child.style.marginLeft = CHTML.Em(L); if (R) child.style.marginRight = CHTML.Em(R); - if (V) span.style.verticalAlign = CHTML.Em(V); - return span; + if (V) node.style.verticalAlign = CHTML.Em(V); + return node; }, CHTMLdimen: function (length,d,m) { if (m == null) {m = -BIGDIMEN} @@ -920,30 +936,30 @@ }); MML.munderover.Augment({ - toCommonHTML: function (span) { + toCommonHTML: function (node) { var values = this.getValues("displaystyle","accent","accentunder","align"); if (!values.displaystyle && this.data[this.base] != null && this.data[this.base].CoreMO().Get("movablelimits")) { - span = MML.msubsup.prototype.toCommonHTML.call(this,span); + node = MML.msubsup.prototype.toCommonHTML.call(this,node); // // Change class to msubsup for CSS rules. // ### FIXME: should this be handled via adding another class instead? // - span.className = span.className.replace(/munderover/,"msubsup"); - return span; + node.className = node.className.replace(/munderover/,"msubsup"); + return node; } - span = this.CHTMLdefaultSpan(span,{childSpans:true, className:"", noBBox:true}); + node = this.CHTMLdefaultNode(node,{childNodes:"span", noBBox:true}); var obox = this.CHTMLbboxFor(this.over), ubox = this.CHTMLbboxFor(this.under), bbox = this.CHTMLbboxFor(this.base), BBOX = this.CHTML, acc = obox.acc; if (this.data[this.over]) { - span.lastChild.firstChild.style.marginLeft = obox.l = - span.lastChild.firstChild.style.marginRight = obox.r = 0; + node.lastChild.firstChild.style.marginLeft = obox.l = + node.lastChild.firstChild.style.marginRight = obox.r = 0; var over = HTML.Element("span",{},[["span",{className:"MJXc-over"}]]); - over.firstChild.appendChild(span.lastChild); - if (span.childNodes.length > (this.data[this.under] ? 1 : 0)) - over.firstChild.appendChild(span.firstChild); + over.firstChild.appendChild(node.lastChild); + if (node.childNodes.length > (this.data[this.under] ? 1 : 0)) + over.firstChild.appendChild(node.firstChild); this.data[this.over].CHTMLhandleScriptlevel(over.firstChild.firstChild); if (acc != null) { if (obox.vec) { @@ -953,31 +969,31 @@ acc = acc - obox.d + .1; if (bbox.t != null) {acc += bbox.t - bbox.h} over.firstChild.firstChild.style.marginBottom = CHTML.Em(acc); } - if (span.firstChild) {span.insertBefore(over,span.firstChild)} - else {span.appendChild(over)} + if (node.firstChild) {node.insertBefore(over,node.firstChild)} + else {node.appendChild(over)} } if (this.data[this.under]) { - span.lastChild.firstChild.style.marginLeft = ubox.l = - span.lastChild.firstChild.marginRight = ubox.r = 0; - this.data[this.under].CHTMLhandleScriptlevel(span.lastChild); + node.lastChild.firstChild.style.marginLeft = ubox.l = + node.lastChild.firstChild.marginRight = ubox.r = 0; + this.data[this.under].CHTMLhandleScriptlevel(node.lastChild); } BBOX.w = Math.max(SCRIPTFACTOR*obox.w,SCRIPTFACTOR*ubox.w,bbox.w); BBOX.h = SCRIPTFACTOR*(obox.h+obox.d+(acc||0)) + bbox.h; BBOX.d = bbox.d + SCRIPTFACTOR*(ubox.h+ubox.d); - return span; + return node; } }); MML.msubsup.Augment({ - toCommonHTML: function (span) { - span = this.CHTMLdefaultSpan(span,{noBBox:true}); + toCommonHTML: function (node) { + node = this.CHTMLdefaultNode(node,{noBBox:true}); if (!this.data[this.base]) { - if (span.firstChild) {span.insertBefore(HTML.Element("span"),span.firstChild)} - else {span.appendChild(HTML.Element("span"))} + if (node.firstChild) {node.insertBefore(HTML.Element("span"),node.firstChild)} + else {node.appendChild(HTML.Element("span"))} } var base = this.data[this.base], sub = this.data[this.sub], sup = this.data[this.sup]; if (!base) base = {bbox: {h:.8, d:.2}}; - span.firstChild.style.marginRight = ".05em"; + node.firstChild.style.marginRight = ".05em"; var h = Math.max(.4,base.CHTML.h-.4), d = Math.max(.2,base.CHTML.d+.1); var bbox = this.CHTML; @@ -995,85 +1011,86 @@ ]); sub.CHTMLhandleScriptlevel(box.firstChild); sup.CHTMLhandleScriptlevel(box.lastChild); - box.firstChild.firstChild.firstChild.appendChild(span.lastChild); - box.lastChild.firstChild.firstChild.appendChild(span.lastChild); - span.appendChild(box); + box.firstChild.firstChild.firstChild.appendChild(node.lastChild); + box.lastChild.firstChild.firstChild.appendChild(node.lastChild); + node.appendChild(box); bbox.h = Math.max(base.CHTML.h,sup.CHTML.h*SCRIPTFACTOR+h); bbox.d = Math.max(base.CHTML.d,sub.CHTML.d*SCRIPTFACTOR+d); bbox.w = base.CHTML.w + Math.max(sup.CHTML.w,sub.CHTML.w) + .07; } else if (sup) { - span.lastChild.style.verticalAlign = CHTML.Em(h); - sup.CHTMLhandleScriptlevel(span.lastChild); + node.lastChild.style.verticalAlign = CHTML.Em(h); + sup.CHTMLhandleScriptlevel(node.lastChild); bbox.h = Math.max(base.CHTML.h,sup.CHTML.h*SCRIPTFACTOR+h); bbox.d = Math.max(base.CHTML.d,sup.CHTML.d*SCRIPTFACTOR-h); bbox.w = base.CHTML.w + sup.CHTML.w + .07; } else if (sub) { - span.lastChild.style.verticalAlign = CHTML.Em(-d); - sub.CHTMLhandleScriptlevel(span.lastChild); + node.lastChild.style.verticalAlign = CHTML.Em(-d); + sub.CHTMLhandleScriptlevel(node.lastChild); bbox.h = Math.max(base.CHTML.h,sub.CHTML.h*SCRIPTFACTOR-d); bbox.d = Math.max(base.CHTML.d,sub.CHTML.d*SCRIPTFACTOR+d); bbox.w = base.CHTML.w + sub.CHTML.w + .07; } - return span; + return node; } }); MML.mfrac.Augment({ - toCommonHTML: function (span) { - span = this.CHTMLdefaultSpan(span,{ - childSpans:true, className:"MJXc-mfrac-cell", forceChild:true, noBBox:true + toCommonHTML: function (node) { + node = this.CHTMLdefaultNode(node,{ + childNodes:"mjx-cell", forceChild:true, noBBox:true }); var values = this.getValues("linethickness","displaystyle","scriptlevel"); var sscale = 1, scale = (values.scriptlevel > 0 ? SCRIPTFACTOR : 1); if (!values.displaystyle && values.scriptlevel < 2) { sscale = SCRIPTFACTOR; - if (this.data[0]) this.data[0].CHTMLhandleScriptlevel(span.firstChild); - if (this.data[1]) this.data[1].CHTMLhandleScriptlevel(span.lastChild); + if (this.data[0]) this.data[0].CHTMLhandleScriptlevel(node.firstChild); + if (this.data[1]) this.data[1].CHTMLhandleScriptlevel(node.lastChild); } - var num = HTML.Element("span",{className:"MJXc-num"},[ - ["span",{}, // inline-block - [["span",{},[ // table, 100% - ["span",{className:"MJXc-mfrac-row"}], // numerator row, 100% - ["span",{className:"MJXc-mfrac-row"}, - [["span",{},[["span",{className:"MJXc-rule"}]]]]] // division line - ]]] - ] + var frac = HTML.addElement(node,"mjx-itable",{},[ + ["mjx-row",{},[ + ["mjx-fbox",{},[ + ["mjx-ftable",{},[ + ["mjx-row",{className:"mjx-numerator"}], + ["mjx-row",{className:"mjx-division"},[ + ["mjx-cell",{},[["mjx-line"]]] + ]] + ]] + ]] + ]], + ["mjx-row",{className:"mjx-denominator"}] ]); - num.firstChild.firstChild.firstChild.appendChild(span.firstChild); - var denom = HTML.Element("span",{className:"MJXc-den"}); - if (scale !== 1) span.style.margin = "0 "+CHTML.Em(.125/scale); - denom.appendChild(span.firstChild); - span.appendChild(num); span.appendChild(denom); + var num = frac.firstChild.firstChild.firstChild.firstChild, denom = frac.lastChild; + num.appendChild(node.firstChild); + denom.appendChild(node.firstChild); var nbox = this.CHTMLbboxFor(0), dbox = this.CHTMLbboxFor(1), bbox = this.CHTML; - if (nbox.h < .9) - num.firstChild.firstChild.style.marginTop = CHTML.Em(sscale*(nbox.h-.9)); + var H = sscale*(nbox.h+nbox.d + dbox.h+dbox.d); bbox.w = sscale*Math.max(nbox.w,dbox.w); - bbox.h = sscale*(nbox.h+nbox.d) + AXISHEIGHT; - bbox.d = sscale*(dbox.h+dbox.d) - AXISHEIGHT; + bbox.h = H/2 + AXISHEIGHT; + bbox.d = H/2 - AXISHEIGHT; bbox.L = bbox.R = .125/scale; values.linethickness = Math.max(0,CHTML.length2em(values.linethickness||"0",0)); if (values.linethickness) { - var rule = num.firstChild.firstChild.lastChild.lastChild.lastChild; + var rule = num.nextSibling.firstChild.firstChild; var t = (values.linethickness < .15 ? "1px" : CHTML.Em(values.linethickness)); rule.style.borderTop = t+" solid"; rule.style.margin = t+" 0"; t = values.linethickness; - span.style.verticalAlign = CHTML.Em(AXISHEIGHT-t); + node.style.verticalAlign = CHTML.Em(AXISHEIGHT-t); bbox.h += 2*t; bbox.d += t; } - return span; + return node; } }); MML.msqrt.Augment({ - toCommonHTML: function (span) { - span = this.CHTMLdefaultSpan(span,{ - childSpans:true, className:"MJXc-box", forceChild:true, noBBox:true + toCommonHTML: function (node) { + node = this.CHTMLdefaultNode(node,{ + childNodes:"mjx-box", forceChild:true, noBBox:true }); - this.CHTMLlayoutRoot(span,span.firstChild); - return span; + this.CHTMLlayoutRoot(node,node.firstChild); + return node; }, - CHTMLlayoutRoot: function (span,base) { + CHTMLlayoutRoot: function (node,base) { var bbox = this.CHTMLbboxFor(0); var scale = Math.ceil((bbox.h+bbox.d+.14)*100), t = CHTML.Em(14/scale); var surd = HTML.Element("span",{className:"MJXc-surd"},[ @@ -1091,51 +1108,51 @@ root.firstChild.style.borderTopWidth = CHTML.Em(.08/Math.sqrt(sX/10)); } root.appendChild(base); - span.appendChild(surd); - span.appendChild(root); + node.appendChild(surd); + node.appendChild(root); this.CHTML.h = bbox.h + .18; this.CHTML.d = bbox.d; this.CHTML.w = bbox.w + W; - return span; + return node; } }); MML.mroot.Augment({ - toCommonHTML: function (span) { - span = this.CHTMLdefaultSpan(span,{ - childSpans:true, className:"MJXc-box", forceChild:true, noBBox:true + toCommonHTML: function (node) { + node = this.CHTMLdefaultNode(node,{ + childNodes:"mjx-box", forceChild:true, noBBox:true }); - var rbox = this.CHTMLbboxFor(1), root = span.removeChild(span.lastChild); - var sqrt = this.CHTMLlayoutRoot(HTML.Element("span"),span.firstChild); + var rbox = this.CHTMLbboxFor(1), root = node.removeChild(node.lastChild); + var sqrt = this.CHTMLlayoutRoot(HTML.Element("span"),node.firstChild); root.className = "MJXc-script"; // ### FIXME: should be scriptscript var scale = parseInt(sqrt.firstChild.firstChild.style.fontSize); var v = .55*(scale/120) + rbox.d*SCRIPTFACTOR, r = -.6*(scale/120); if (scale > 150) {r *= .95*Math.ceil(150/scale*10)/10} root.style.marginRight = CHTML.Em(r); root.style.verticalAlign = CHTML.Em(v); if (-r > rbox.w*SCRIPTFACTOR) root.style.marginLeft = CHTML.Em(-r-rbox.w*SCRIPTFACTOR); // ### depends on rbox.w - span.appendChild(root); span.appendChild(sqrt); + node.appendChild(root); node.appendChild(sqrt); this.CHTML.w += Math.max(0,rbox.w*SCRIPTFACTOR+r); this.CHTML.h = Math.max(this.CHTML.h,rbox.h*SCRIPTFACTOR+v); - return span; + return node; }, CHTMLlayoutRoot: MML.msqrt.prototype.CHTMLlayoutRoot }); MML.mfenced.Augment({ - toCommonHTML: function (span) { - span = this.CHTMLcreateSpan(span); - this.CHTMLhandleSpace(span); - this.CHTMLhandleStyle(span); - this.CHTMLhandleColor(span); + toCommonHTML: function (node) { + node = this.CHTMLcreateNode(node); + this.CHTMLhandleSpace(node); + this.CHTMLhandleStyle(node); + this.CHTMLhandleColor(node); // // Make row of open, data, sep, ... data, close // this.addFakeNodes(); - this.CHTMLaddChild(span,"open",{}); + this.CHTMLaddChild(node,"open",{}); for (var i = 0, m = this.data.length; i < m; i++) { - this.CHTMLaddChild(span,"sep"+i,{}); - this.CHTMLaddChild(span,i,{}); + this.CHTMLaddChild(node,"sep"+i,{}); + this.CHTMLaddChild(node,i,{}); } - this.CHTMLaddChild(span,"close",{}); + this.CHTMLaddChild(node,"close",{}); // // Check for streching the elements // @@ -1146,45 +1163,45 @@ this.CHTMLstretchChild(i,H,D); } this.CHTMLstretchChild("close",H,D); - return span; + return node; } }); MML.mrow.Augment({ - toCommonHTML: function (span) { - span = this.CHTMLdefaultSpan(span); + toCommonHTML: function (node) { + node = this.CHTMLdefaultNode(node); var H = this.CHTML.h, D = this.CHTML.d; for (var i = 0, m = this.data.length; i < m; i++) this.CHTMLstretchChild(i,H,D); - return span; + return node; } }); MML.mstyle.Augment({ - toCommonHTML: function (span) { - span = this.CHTMLdefaultSpan(span); + toCommonHTML: function (node) { + node = this.CHTMLdefaultNode(node); if (this.scriptlevel) { var dlevel = this.Get("scriptlevel",null,true); if (this.scriptlevel !== dlevel) { - this.CHTMLhandleScriptlevel(span,dlevel); + this.CHTMLhandleScriptlevel(node,dlevel); CHTML.scaleBBox(this.CHTML,this.scriptlevel,dlevel); } } - return span; + return node; } }); MML.TeXAtom.Augment({ - toCommonHTML: function (span) { - span = this.CHTMLdefaultSpan(span); + toCommonHTML: function (node) { + node = this.CHTMLdefaultNode(node); // ### FIXME: handle TeX class? - span.className = "MJXc-mrow"; - return span; + node.className = "MJXc-mrow"; + return node; } }); MML.mtable.Augment({ - toCommonHTML: function (span) { - span = this.CHTMLdefaultSpan(span,{noBBox:true}); + toCommonHTML: function (node) { + node = this.CHTMLdefaultNode(node,{noBBox:true}); var values = this.getValues("columnalign","rowalign","columnspacing","rowspacing", "columnwidth","equalcolumns","equalrows", "columnlines","rowlines","frame","framespacing", @@ -1201,25 +1218,25 @@ for (i = 0, m = CSPACE.length; i < m; i++) {CSPACE[i] = CHTML.length2em(CSPACE[i])} for (i = 0, m = RSPACE.length; i < m; i++) {RSPACE[i] = CHTML.length2em(RSPACE[i])} - var table = HTML.Element("span"); - while (span.firstChild) table.appendChild(span.firstChild); - span.appendChild(table); + var table = HTML.Element("node"); + while (node.firstChild) table.appendChild(node.firstChild); + node.appendChild(table); var H = 0, W = 0; for (i = 0, m = this.data.length; i < m; i++) { var row = this.data[i]; if (row) { var rspace = CHTML.arrayEntry(RSPACE,i-1), ralign = CHTML.arrayEntry(RALIGN,i); - var rbox = row.CHTML, rspan = row.CHTMLspanElement(); - rspan.style.verticalAlign = ralign; + var rbox = row.CHTML, rnode = row.CHTMLnodeElement(); + rnode.style.verticalAlign = ralign; var k = (row.type === "mlabeledtr" ? 1 : 0); for (j = 0, n = row.data.length; j < n-k; j++) { var cell = row.data[j+k]; if (cell) { var cspace = CHTML.arrayEntry(CSPACE,j-1), calign = CHTML.arrayEntry(CALIGN,j); - var /*cbox = cell.CHTML,*/ cspan = cell.CHTMLspanElement(); - if (j) {rbox.w += cspace; cspan.style.paddingLeft = CHTML.Em(cspace)} - if (i) cspan.style.paddingTop = CHTML.Em(rspace); - cspan.style.textAlign = calign; + var /*cbox = cell.CHTML,*/ cnode = cell.CHTMLnodeElement(); + if (j) {rbox.w += cspace; cnode.style.paddingLeft = CHTML.Em(cspace)} + if (i) cnode.style.paddingTop = CHTML.Em(rspace); + cnode.style.textAlign = calign; } } H += rbox.h + rbox.d; if (i) {H += rspace} @@ -1229,33 +1246,33 @@ var bbox = this.CHTML; bbox.w = W; bbox.h = H/2 + AXISHEIGHT; bbox.d = H/2 - AXISHEIGHT; bbox.L = bbox.R = .125; - return span; + return node; } }); MML.mlabeledtr.Augment({ - CHTMLdefaultSpan: function (span,options) { + CHTMLdefaultNode: function (node,options) { if (!options) options = {}; - span = this.CHTMLcreateSpan(span); - this.CHTMLhandleStyle(span); - this.CHTMLhandleColor(span); + node = this.CHTMLcreateNode(node); + this.CHTMLhandleStyle(node); + this.CHTMLhandleColor(node); // skip label for now - for (var i = 1, m = this.data.length; i < m; i++) this.CHTMLaddChild(span,i,options); - return span; + for (var i = 1, m = this.data.length; i < m; i++) this.CHTMLaddChild(node,i,options); + return node; } }); MML.semantics.Augment({ - toCommonHTML: function (span) { - span = this.CHTMLcreateSpan(span); + toCommonHTML: function (node) { + node = this.CHTMLcreateNode(node); if (this.data[0]) { - this.data[0].toCommonHTML(span); + this.data[0].toCommonHTML(node); MathJax.Hub.Insert(this.data[0].CHTML||{},this.CHTML); } - return span; + return node; } }); - MML.annotation.Augment({toCommonHTML: function(span) {}}); - MML["annotation-xml"].Augment({toCommonHTML: function(span) {}}); + MML.annotation.Augment({toCommonHTML: function(node) {}}); + MML["annotation-xml"].Augment({toCommonHTML: function(node) {}}); // // Loading isn't complete until the element jax is modified, From 7b723003bff98f0d1021a2b963f107ef0da4257f Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Sun, 1 Mar 2015 10:39:13 -0500 Subject: [PATCH 024/186] Fix up some CSS, and some other minor details. --- unpacked/jax/output/CommonHTML/jax.js | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index 9edd1e745..000f7a183 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -37,7 +37,7 @@ HFUZZ = .05, DFUZZ = 0; // adjustments to bounding box of character boxes var STYLES = { - ".MJXc-display": { + ".MathJax_CHTML_Display": { "display": "block", "text-align": "center", "margin": "1em 0" @@ -54,6 +54,7 @@ "mjx-mfrac": {"vertical-align":".25em"}, "mjx-fbox": {width:"100%"}, + "mjx-ftable": {display:"table", width:"100%"}, "mjx-mphantom": {"visibility":"hidden"}, @@ -68,7 +69,7 @@ "mjx-box": {display:"inline-block"}, "mjx-block": {display:"block"}, - "mjx-char": {display:"block", "xline-height":"normal"}, + "mjx-char": {display:"block"}, "mjx-itable": {display:"inline-table"}, "mjx-row": {display:"table-row"}, "mjx-cell": {display:"table-cell", "text-align":"center"}, @@ -237,7 +238,7 @@ this.initCHTML(math,span); math.setTeXclass(); try {math.toCommonHTML(span)} catch (err) { - if (err.restart) {while (span.firstChild) {span.removeChild(span.firstChild)}} + while (span.firstChild) span.removeChild(span.firstChild); throw err; } // @@ -568,6 +569,9 @@ if (Math.abs(m) < .001) return "0em"; return (m.toFixed(3).replace(/\.?0+$/,""))+"em"; }, + unEm: function (m) { + return parseFloat(m); + }, scaleBBox: function (bbox,level,dlevel) { var scale = Math.pow(SCRIPTFACTOR,Math.min(2,level)-(dlevel||0)); @@ -628,7 +632,7 @@ CHTMLcreateNode: function (node) { if (!this.CHTML) this.CHTML = {}; - this.CHTML = {w:0, h:0, d:0, l:0, r:0, t:0, b:0}; + this.CHTML = {w:0, h:0, d:0, l:0, r:0}; if (this.inferred) return node; if (!this.CHTMLnodeID) {this.CHTMLnodeID = CHTML.GetID()}; var id = (this.id || "MJXc-Node-"+this.CHTMLnodeID); @@ -707,9 +711,16 @@ // CHTMLdrawBBox: function (node) { var bbox = this.CHTML; - HTML.addElement(node.parentNode,"mjx-box",{style:{opacity:.5,"margin-left":CHTML.Em(-bbox.w)}},[ - ["mjx-box",{style:{height:CHTML.Em(bbox.h),width:CHTML.Em(bbox.w),"background-color":"red"}}], - ["mjx-box",{style:{height:CHTML.Em(bbox.d),width:CHTML.Em(bbox.w),"margin-left":CHTML.Em(-bbox.w),"vertical-align":CHTML.Em(-bbox.d),"background-color":"green"}}] + HTML.addElement(node.parentNode,"mjx-box", + {style:{opacity:.5,"margin-left":CHTML.Em(-bbox.w-(bbox.R||0))}},[ + ["mjx-box",{style:{ + height:CHTML.Em(bbox.h),width:CHTML.Em(bbox.w),"background-color":"red"} + }], + ["mjx-box",{style:{ + height:CHTML.Em(bbox.d),width:CHTML.Em(bbox.w), + "margin-left":CHTML.Em(-bbox.w),"vertical-align":CHTML.Em(-bbox.d), + "background-color":"green"} + }] ]); }, From 03ff8e5a255a3fc3017ef9bf48143b52bfa63756 Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Sun, 1 Mar 2015 10:48:53 -0500 Subject: [PATCH 025/186] Add TeX font parameters, and switch to TeX.axis_height rather than AXISHEIGHT. (Use in mtable will be fixed later.) --- .../output/CommonHTML/fonts/TeX/fontdata.js | 1 + unpacked/jax/output/CommonHTML/jax.js | 57 ++++++++++++++----- 2 files changed, 44 insertions(+), 14 deletions(-) diff --git a/unpacked/jax/output/CommonHTML/fonts/TeX/fontdata.js b/unpacked/jax/output/CommonHTML/fonts/TeX/fontdata.js index e680aace7..241220928 100644 --- a/unpacked/jax/output/CommonHTML/fonts/TeX/fontdata.js +++ b/unpacked/jax/output/CommonHTML/fonts/TeX/fontdata.js @@ -40,6 +40,7 @@ var ARROWREP = [0x2212,MAIN,0,0,0,0,.1]; // add depth for arrow extender var DARROWREP = [0x3D,MAIN,0,0,0,0,.1]; // add depth for arrow extender + CHTML.TEX = CHTML.TEXDEF; // use default TeX paramaters CHTML.FONTDEF.TeX = { version: VERSION, diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index 000f7a183..929de5cea 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -383,20 +383,48 @@ negativeverythickmathspace: -6/18, negativeveryverythickmathspace: -7/18, - thin: .08, - medium: .1, - thick: .15, + thin: .04, + medium: .06, + thick: .1, infinity: BIGDIMEN }, - TeX: { - x_height: .442, - axis: AXISHEIGHT - }, pxPerInch: 96, em: 16, FONTDEF: {}, + TEXDEF: { + x_height: .442, + quad: 1, + num1: .676508, + num2: .393732, + num3: .44373, + denom1: .685951, + denom2: .344841, + sup1: .412892, + sup2: .362892, + sup3: .288888, + sub1: .15, + sub2: .247217, + sup_drop: .386108, + sub_drop: .05, + delim1: 2.39, + delim2: 1.0, + axis_height: .25, + rule_thickness: .06, + big_op_spacing1: .111111, + big_op_spacing2: .166666, + big_op_spacing3: .2, + big_op_spacing4: .6, + big_op_spacing5: .1, + + scriptspace: .1, + nulldelimiterspace: .12, + delimiterfactor: 901, + delimitershortfall: .3, + + min_rule_thickness: 1.25 // in pixels + }, getUnicode: function (string) { var n = string.text.charCodeAt(string.i); string.i++; @@ -657,7 +685,7 @@ CHTMLhandleSpace: function (node) { if (!this.useMMLspacing) { var space = this.texSpacing(); - if (space !== "") node.style.marginLeft = CHTML.Em(CHTML.length2em(space)); + if (space !== "") node.style.marginLeft = CHTML.Em(CHTML.length2em(space)); } }, @@ -843,7 +871,7 @@ }, CHTMLcenterOp: function (node) { var bbox = this.CHTML; - var p = (bbox.h - bbox.d)/2 - AXISHEIGHT; + var p = (bbox.h - bbox.d)/2 - CHTML.TEX.axis_height; if (Math.abs(p) > .001) node.style.verticalAlign = CHTML.Em(-p); bbox.h -= p; bbox.d += p; if (bbox.r > bbox.w) { @@ -866,7 +894,8 @@ CHTMLstretchV: function (h,d) { var node = this.CHTMLnodeElement(), bbox = this.CHTML; //bbox.w = .4; // ## adjust width var values = this.getValues("symmetric","maxsize","minsize"); - if (values.symmetric) {H = 2*Math.max(h-AXISHEIGHT,d+AXISHEIGHT)} else {H = h + d} + var a = CHTML.TEX.axis_height; + if (values.symmetric) {H = 2*Math.max(h-a,d+a)} else {H = h + d} values.maxsize = CHTML.length2em(values.maxsize,bbox.h+bbox.d); values.minsize = CHTML.length2em(values.minsize,bbox.h+bbox.d); H = Math.max(values.minsize,Math.min(values.maxsize,H)); @@ -879,7 +908,7 @@ bbox.w *= scale*sX/10; } box.appendChild(node.firstChild); node.appendChild(box); - if (values.symmetric) node.style.verticalAlign = CHTML.Em(AXISHEIGHT*(1-scale)); + if (values.symmetric) node.style.verticalAlign = CHTML.Em(a*(1-scale)); } }); @@ -1077,8 +1106,8 @@ var nbox = this.CHTMLbboxFor(0), dbox = this.CHTMLbboxFor(1), bbox = this.CHTML; var H = sscale*(nbox.h+nbox.d + dbox.h+dbox.d); bbox.w = sscale*Math.max(nbox.w,dbox.w); - bbox.h = H/2 + AXISHEIGHT; - bbox.d = H/2 - AXISHEIGHT; + bbox.h = H/2 + CHTML.TEX.axis_height; + bbox.d = H/2 - CHTML.TEX.axis_height; bbox.L = bbox.R = .125/scale; values.linethickness = Math.max(0,CHTML.length2em(values.linethickness||"0",0)); if (values.linethickness) { @@ -1086,7 +1115,7 @@ var t = (values.linethickness < .15 ? "1px" : CHTML.Em(values.linethickness)); rule.style.borderTop = t+" solid"; rule.style.margin = t+" 0"; t = values.linethickness; - node.style.verticalAlign = CHTML.Em(AXISHEIGHT-t); + node.style.verticalAlign = CHTML.Em(CHTML.TEX.axis_height-t); bbox.h += 2*t; bbox.d += t; } return node; From c1402235bafa1337aba3042ab163501a11bcc328 Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Sun, 1 Mar 2015 12:56:17 -0500 Subject: [PATCH 026/186] Implement TeX fraction rules (still need to do bevelled fraction). --- unpacked/jax/output/CommonHTML/jax.js | 103 ++++++++++++++++++-------- 1 file changed, 72 insertions(+), 31 deletions(-) diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index 929de5cea..ede39ed3a 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -55,6 +55,9 @@ "mjx-mfrac": {"vertical-align":".25em"}, "mjx-fbox": {width:"100%"}, "mjx-ftable": {display:"table", width:"100%"}, + "mjx-numerator": {display:"table-cell"}, + "mjx-denominator": {display:"table-cell"}, + ".MJXc-fpad": {"padding-left":".1em", "padding-right":".1em"}, "mjx-mphantom": {"visibility":"hidden"}, @@ -624,7 +627,7 @@ CHTMLdefaultNode: function (node,options) { if (!options) options = {}; node = this.CHTMLcreateNode(node); - this.CHTMLhandleSpace(node); + if (!options.noBBox) this.CHTMLhandleSpace(node); this.CHTMLhandleStyle(node); this.CHTMLhandleColor(node); for (var i = 0, m = this.data.length; i < m; i++) this.CHTMLaddChild(node,i,options); @@ -633,8 +636,11 @@ CHTMLaddChild: function (node,i,options) { var child = this.data[i]; if (child) { - if (options.childNodes) - node = HTML.addElement(node,options.childNodes); + var type = options.childNodes; + if (type) { + if (type instanceof Array) type = type[i]; + node = HTML.addElement(node,type); + } child.toCommonHTML(node,options.childOptions); if (!options.noBBox) { var bbox = this.CHTML, cbox = child.CHTML; @@ -685,7 +691,9 @@ CHTMLhandleSpace: function (node) { if (!this.useMMLspacing) { var space = this.texSpacing(); - if (space !== "") node.style.marginLeft = CHTML.Em(CHTML.length2em(space)); + if (space !== "") this.CHTML.L = CHTML.length2em(space) + (this.CHTML.L||0); + if (this.CHTML.L) node.style.marginLeft = CHTML.Em(this.CHTML.L); + if (this.CHTML.R) node.style.marginRight = CHTML.Em(this.CHTML.R); } }, @@ -1077,47 +1085,80 @@ MML.mfrac.Augment({ toCommonHTML: function (node) { node = this.CHTMLdefaultNode(node,{ - childNodes:"mjx-cell", forceChild:true, noBBox:true + childNodes:["mjx-numerator","mjx-denominator"], + forceChild:true, noBBox:true }); - var values = this.getValues("linethickness","displaystyle","scriptlevel"); + var values = this.getValues("linethickness","displaystyle","scriptlevel", + "numalign","denomalign","bevelled"); + var isDisplay = values.displaystyle; + // + // Get the scale of the fraction and its parts + // var sscale = 1, scale = (values.scriptlevel > 0 ? SCRIPTFACTOR : 1); - if (!values.displaystyle && values.scriptlevel < 2) { + if (!isDisplay && values.scriptlevel < 2) { sscale = SCRIPTFACTOR; if (this.data[0]) this.data[0].CHTMLhandleScriptlevel(node.firstChild); if (this.data[1]) this.data[1].CHTMLhandleScriptlevel(node.lastChild); } + // + // Create the table for the fraction and set the alignment + // var frac = HTML.addElement(node,"mjx-itable",{},[ - ["mjx-row",{},[ - ["mjx-fbox",{},[ - ["mjx-ftable",{},[ - ["mjx-row",{className:"mjx-numerator"}], - ["mjx-row",{className:"mjx-division"},[ - ["mjx-cell",{},[["mjx-line"]]] - ]] - ]] - ]] - ]], - ["mjx-row",{className:"mjx-denominator"}] + ["mjx-row",{},[["mjx-fbox",{},[["mjx-ftable",{},[["mjx-row"]]]]]]], + ["mjx-row"] ]); var num = frac.firstChild.firstChild.firstChild.firstChild, denom = frac.lastChild; num.appendChild(node.firstChild); denom.appendChild(node.firstChild); - + if (values.numalign !== "center") num.firstChild.style.textAlign = values.numalign; + if (values.denomalign !== "center") denom.firstChild.style.textAlign = values.denomalign; + // + // Get the bounding boxes for the parts, and determine the placement + // of the numerator and denominator + // var nbox = this.CHTMLbboxFor(0), dbox = this.CHTMLbboxFor(1), bbox = this.CHTML; - var H = sscale*(nbox.h+nbox.d + dbox.h+dbox.d); - bbox.w = sscale*Math.max(nbox.w,dbox.w); - bbox.h = H/2 + CHTML.TEX.axis_height; - bbox.d = H/2 - CHTML.TEX.axis_height; - bbox.L = bbox.R = .125/scale; values.linethickness = Math.max(0,CHTML.length2em(values.linethickness||"0",0)); - if (values.linethickness) { - var rule = num.nextSibling.firstChild.firstChild; - var t = (values.linethickness < .15 ? "1px" : CHTML.Em(values.linethickness)); - rule.style.borderTop = t+" solid"; rule.style.margin = t+" 0"; - t = values.linethickness; - node.style.verticalAlign = CHTML.Em(CHTML.TEX.axis_height-t); - bbox.h += 2*t; bbox.d += t; + var mt = CHTML.TEX.min_rule_thickness/CHTML.em/scale, a = CHTML.TEX.axis_height; + var t = values.linethickness, p,q, u,v; + if (isDisplay) {u = CHTML.TEX.num1; v = CHTML.TEX.denom1} + else {u = (t === 0 ? CHTML.TEX.num3 : CHTML.TEX.num2); v = CHTML.TEX.denom2} + if (t === 0) { // \atop + p = Math.max((isDisplay ? 7 : 3) * CHTML.TEX.rule_thickness, 2*mt); // force to at least 2 px + q = (u - nbox.d*sscale) - (dbox.h*sscale - v); + if (q < p) {u += (p - q)/2; v += (p - q)/2} + } else { // \over + p = Math.max((isDisplay ? 3 : 0) * t, mt); // force to be at least 1px + t = Math.max(t,mt); + q = (u - nbox.d*sscale) - (a + t/2); if (q < p) u += (p - q); + q = (a - t/2) - (dbox.h*sscale - v); if (q < p) v += (p - q); + node.style.verticalAlign = CHTML.Em(a-t/2); + // + // Add the rule to the table + // + var rule = HTML.Element("mjx-row",{},[["mjx-cell",{},[["mjx-line"]]]]); + num.parentNode.appendChild(rule); rule = rule.firstChild.firstChild; + rule.style.borderTop = CHTML.Em(t)+" solid"; + num.firstChild.className += " MJXc-fpad"; + denom.firstChild.className += " MJXc-fpad"; } + // + // Determine the new bounding box and place the parts + // + bbox.w = sscale*Math.max(nbox.w,dbox.w); + bbox.h = sscale*nbox.h+u; bbox.d = sscale*dbox.d+v; + u -= sscale*nbox.d + a + t/2; v -= sscale*dbox.h - a + t/2; + if (u > 0) num.firstChild.style.paddingBottom = CHTML.Em(u); + if (v > 0) denom.firstChild.style.paddingTop = CHTML.Em(v); + // + // Add nulldelimiterspace around the fraction + // (TeXBook pg 150 and Appendix G rule 15e) + // + if (!this.texWithDelims && !this.useMMLspacing) + bbox.L = bbox.R = CHTML.TEX.nulldelimiterspace; + this.CHTMLhandleSpace(node); + // + // Return the completed fraction + // return node; } }); From f43f94a9e1474ebc423523a1b62e00d3c2881727 Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Sun, 1 Mar 2015 14:14:29 -0500 Subject: [PATCH 027/186] Update mpadded to work with new custom tags and line-height --- unpacked/jax/output/CommonHTML/jax.js | 53 +++++++++++++++------------ 1 file changed, 29 insertions(+), 24 deletions(-) diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index ede39ed3a..0d2462195 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -50,13 +50,13 @@ "white-space": "nowrap", "border-collapse":"collapse" }, - "mjx-math *": {display:"inline-block"}, + "mjx-math *": {display:"inline-block", "text-align":"left"}, "mjx-mfrac": {"vertical-align":".25em"}, "mjx-fbox": {width:"100%"}, "mjx-ftable": {display:"table", width:"100%"}, - "mjx-numerator": {display:"table-cell"}, - "mjx-denominator": {display:"table-cell"}, + "mjx-numerator": {display:"table-cell", "text-align":"center"}, + "mjx-denominator": {display:"table-cell", "text-align":"center"}, ".MJXc-fpad": {"padding-left":".1em", "padding-right":".1em"}, "mjx-mphantom": {"visibility":"hidden"}, @@ -584,7 +584,7 @@ var m = parseFloat(match[1]||"1"), unit = match[2]; if (size == null) {size = 1} if (unit === "em") {return m} - if (unit === "ex") {return m * this.TeX.x_height} + if (unit === "ex") {return m * this.TEX.x_height} if (unit === "%") {return m / 100 * size} if (unit === "px") {return m / this.em} if (unit === "pt") {return m / 10} // 10 pt to an em @@ -941,38 +941,43 @@ MML.mpadded.Augment({ toCommonHTML: function (node) { - node = this.CHTMLdefaultNode(node,{ - childNodes:"mjx-box", forceChild:true - }); - var child = node.firstChild; - var values = this.getValues("width","height","depth","lspace","voffset"); - var dimen = this.CHTMLdimen(values.lspace); - var T = 0, B = 0, L = dimen.len, R = -dimen.len, V = 0; + node = this.CHTMLdefaultNode(node,{childNodes:"mjx-block", forceChild:true}); + var child = node.firstChild, cbox = this.CHTMLbboxFor(0); + node = HTML.addElement(node,"mjx-block"); node.appendChild(child); + var values = this.getValues("width","height","depth","lspace","voffset"), dimen; if (values.width !== "") { dimen = this.CHTMLdimen(values.width,"w",0); - if (dimen.pm) {R += dimen.len} else {node.style.width = CHTML.Em(dimen.len)} + if (dimen.pm) dimen.len += cbox.w; + if (dimen.len < 0) dimen.len = 0; + if (dimen.len !== cbox.w) node.style.width = CHTML.Em(dimen.len); } if (values.height !== "") { dimen = this.CHTMLdimen(values.height,"h",0); - if (!dimen.pm) T += -this.CHTMLbboxFor(0).h; - T += dimen.len; + if (!dimen.pm) dimen.len += -cbox.h; + if (dimen.len+cbox.h < 0) dimen.len = -cbox.h; + if (dimen.len) child.style.marginTop = CHTML.Em(dimen.len); } if (values.depth !== "") { dimen = this.CHTMLdimen(values.depth,"d",0); - if (!dimen.pm) {B += -this.CHTMLbboxFor(0).d; V += -dimen.len} - B += dimen.len; + if (!dimen.pm) dimen.len += -cbox.d; + if (dimen.len+cbox.d < 0) dimen.len = -cbox.d; + if (dimen.len) child.style.marginBottom = CHTML.Em(dimen.len); } if (values.voffset !== "") { dimen = this.CHTMLdimen(values.voffset); - T -= dimen.len; B += dimen.len; - V += dimen.len; + if (dimen.len) { + node.style.position = "relative"; + node.style.top = CHTML.Em(-dimen.len); + } } - if (T) child.style.marginTop = CHTML.Em(T); - if (B) child.style.marginBottom = CHTML.Em(B); - if (L) child.style.marginLeft = CHTML.Em(L); - if (R) child.style.marginRight = CHTML.Em(R); - if (V) node.style.verticalAlign = CHTML.Em(V); - return node; + if (values.lspace !== "") { + dimen = this.CHTMLdimen(values.lspace); + if (dimen.len) { + node.style.position = "relative"; + node.style.left = CHTML.Em(dimen.len); + } + } + return node.parentNode; }, CHTMLdimen: function (length,d,m) { if (m == null) {m = -BIGDIMEN} From 8de643d6199d9a931a04fe78e55246f215622196 Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Sun, 1 Mar 2015 17:54:41 -0500 Subject: [PATCH 028/186] Clear all useMMLspacing flags for mfenced. --- unpacked/jax/element/mml/jax.js | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/unpacked/jax/element/mml/jax.js b/unpacked/jax/element/mml/jax.js index 9a1d491cf..2cd3ab4ac 100644 --- a/unpacked/jax/element/mml/jax.js +++ b/unpacked/jax/element/mml/jax.js @@ -980,7 +980,7 @@ MathJax.ElementJax.mml.Augment({ // // Clear flag for using MML spacing even though form is specified // - this.data.open.useMMLspacing &= ~this.data.open.SPACE_ATTR.form; + this.data.open.useMMLspacing = 0; } // // Create fake nodes for the separators @@ -989,8 +989,10 @@ MathJax.ElementJax.mml.Augment({ while (values.separators.length < this.data.length) {values.separators += values.separators.charAt(values.separators.length-1)} for (var i = 1, m = this.data.length; i < m; i++) { - if (this.data[i]) - {this.SetData("sep"+i,MML.mo(values.separators.charAt(i-1)).With({separator:true}))} + if (this.data[i]) { + this.SetData("sep"+i,MML.mo(values.separators.charAt(i-1)).With({separator:true})) + this.data["sep"+i].useMMLspacing = 0; + } } } // @@ -1003,7 +1005,7 @@ MathJax.ElementJax.mml.Augment({ // // Clear flag for using MML spacing even though form is specified // - this.data.close.useMMLspacing &= ~this.data.close.SPACE_ATTR.form; + this.data.close.useMMLspacing = 0; } }, texClass: MML.TEXCLASS.OPEN, From 74e054397c63dfd04e23976340ede0ae365e3ee2 Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Sun, 1 Mar 2015 18:04:23 -0500 Subject: [PATCH 029/186] Give mpadded elements the correct bbox. --- unpacked/jax/output/CommonHTML/jax.js | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index 0d2462195..a628a8e18 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -942,7 +942,7 @@ MML.mpadded.Augment({ toCommonHTML: function (node) { node = this.CHTMLdefaultNode(node,{childNodes:"mjx-block", forceChild:true}); - var child = node.firstChild, cbox = this.CHTMLbboxFor(0); + var child = node.firstChild, cbox = this.CHTMLbboxFor(0), bbox = this.CHTML; node = HTML.addElement(node,"mjx-block"); node.appendChild(child); var values = this.getValues("width","height","depth","lspace","voffset"), dimen; if (values.width !== "") { @@ -950,16 +950,17 @@ if (dimen.pm) dimen.len += cbox.w; if (dimen.len < 0) dimen.len = 0; if (dimen.len !== cbox.w) node.style.width = CHTML.Em(dimen.len); + bbox.w = dimen.len; } if (values.height !== "") { dimen = this.CHTMLdimen(values.height,"h",0); - if (!dimen.pm) dimen.len += -cbox.h; + if (dimen.pm) {bbox.h += dimen.len} else {bbox.h = dimen.len; dimen.len += -cbox.h} if (dimen.len+cbox.h < 0) dimen.len = -cbox.h; if (dimen.len) child.style.marginTop = CHTML.Em(dimen.len); } if (values.depth !== "") { dimen = this.CHTMLdimen(values.depth,"d",0); - if (!dimen.pm) dimen.len += -cbox.d; + if (dimen.pm) {bbox.d += dimen.len} else {bbox.d = dimen.len; dimen.len += -cbox.d} if (dimen.len+cbox.d < 0) dimen.len = -cbox.d; if (dimen.len) child.style.marginBottom = CHTML.Em(dimen.len); } From 625229566ff0aded8b7d6192134fc829df792065 Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Sun, 1 Mar 2015 18:12:45 -0500 Subject: [PATCH 030/186] Adjust merror CSS. --- unpacked/jax/output/CommonHTML/jax.js | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index a628a8e18..7a3c2d688 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -65,7 +65,7 @@ "background-color":"#FFFF88", color: "#CC0000", border: "1px solid #CC0000", - padding: "1px 3px", + padding: "2px 3px", "font-style": "normal", "font-size": "90%" }, @@ -104,16 +104,7 @@ ".MJXc-mtr:first-child > .MJXc-mtd": {"padding-top":0}, ".MJXc-mlabeledtr": {"display":"table-row!important"}, ".MJXc-mlabeledtr > .MJXc-mtd:first-child": {"padding-left":0}, - ".MJXc-mlabeledtr:first-child > .MJXc-mtd": {"padding-top":0}, - - ".MJXc-merror": { - "background-color":"#FFFF88", - color: "#CC0000", - border: "1px solid #CC0000", - padding: "1px 3px", - "font-style": "normal", - "font-size": "90%" - } + ".MJXc-mlabeledtr:first-child > .MJXc-mtd": {"padding-top":0} }; (function () { From 96e8ce84104ee29d5884a3f2e67554aaf1a67aab Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Wed, 4 Mar 2015 12:40:28 -0500 Subject: [PATCH 031/186] Maintain skew data in bbox. --- unpacked/jax/output/CommonHTML/jax.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index 7a3c2d688..c433dd7fd 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -518,6 +518,7 @@ bbox.w += C[2]; if (bbox.H < font.ascent) bbox.H = font.ascent; if (bbox.D < font.descent) bbox.D = font.descent; + if (m == 1 && font.skew && font.skew[item.n]) bbox.skew = font.skew[item.n]; } } if (node.childNodes.length) { @@ -641,6 +642,7 @@ if (cbox.h > bbox.h) bbox.h = cbox.h; if (cbox.d > bbox.d) bbox.d = cbox.d; if (cbox.ic) {bbox.ic = cbox.ic} else {delete bbox.ic} + if (cbox.skew) bbox.skew = cbox.skew; } } else if (options.forceChild) {HTML.addElement(node,"span")} }, From 09aebdbf2794d57e6bcff4db356899d1a30df40c Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Wed, 4 Mar 2015 12:51:09 -0500 Subject: [PATCH 032/186] Refactor bounding box utility routines. --- unpacked/jax/output/CommonHTML/jax.js | 32 ++++++++++++++++++--------- 1 file changed, 22 insertions(+), 10 deletions(-) diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index c433dd7fd..8d73774b2 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -596,6 +596,21 @@ return parseFloat(m); }, + zeroBBox: function () { + return {h:0, d:0, w:0, l:0, r:0, D:0, H:0}; + }, + emptyBBox: function () { + return {h:-BIGDIMEN, d:-BIGDIMEN, w:0, l:BIGDIMEN, r:-BIGDIMEN, + D:-BIGDIMEN, H:-BIGDIMEN}; + }, + cleanBBox: function (bbox) { + if (bbox.h === -BIGDIMEN) bbox.h = 0; + if (bbox.d === -BIGDIMEN) bbox.d = 0; + if (bbox.l === BIGDIMEN) bbox.l = 0; + if (bbox.r === -BIGDIMEN) bbox.r = 0; + if (bbox.H === -BIGDIMEN) bbox.H = .8; + if (bbox.D === -BIGDIMEN) bbox.D = .2; + }, scaleBBox: function (bbox,level,dlevel) { var scale = Math.pow(SCRIPTFACTOR,Math.min(2,level)-(dlevel||0)); bbox.w *= scale; bbox.h *= scale; bbox.d *= scale; @@ -623,6 +638,7 @@ this.CHTMLhandleStyle(node); this.CHTMLhandleColor(node); for (var i = 0, m = this.data.length; i < m; i++) this.CHTMLaddChild(node,i,options); + if (!options.noBBox) CHTML.cleanBBox(this.CHTML); return node; }, CHTMLaddChild: function (node,i,options) { @@ -659,7 +675,7 @@ CHTMLcreateNode: function (node) { if (!this.CHTML) this.CHTML = {}; - this.CHTML = {w:0, h:0, d:0, l:0, r:0}; + this.CHTML = CHTML.zeroBBox(); if (this.inferred) return node; if (!this.CHTMLnodeID) {this.CHTMLnodeID = CHTML.GetID()}; var id = (this.id || "MJXc-Node-"+this.CHTMLnodeID); @@ -707,8 +723,7 @@ CHTMLhandleText: function (node,text,variant) { if (node.childNodes.length === 0) { HTML.addElement(node,"mjx-char"); - this.CHTML = {h:-BIGDIMEN, d:-BIGDIMEN, w:0, l:BIGDIMEN, r:-BIGDIMEN, - D:-BIGDIMEN, H:-BIGDIMEN}; + this.CHTML = CHTML.emptyBBox(); } var bbox = this.CHTML, string = {text:text, i:0, length:text.length}; if (typeof(variant) === "string") variant = CHTML.FONTDATA.VARIANT[variant]; @@ -719,12 +734,7 @@ list.push.apply(list,CHTML.getCharList(variant,n)); } CHTML.addCharList(node.firstChild,list,bbox); - if (bbox.h === -BIGDIMEN) bbox.h = 0; - if (bbox.d === -BIGDIMEN) bbox.d = 0; - if (bbox.l === BIGDIMEN) bbox.l = 0; - if (bbox.r === -BIGDIMEN) bbox.r = 0; - if (bbox.H === -BIGDIMEN) bbox.H = .8; - if (bbox.D === -BIGDIMEN) bbox.D = .2; + CHTML.cleanBBox(bbox); bbox.h += HFUZZ; bbox.d += DFUZZ; var a = (bbox.H-bbox.D)/2; // center of font (line-height:0) node.firstChild.style.marginTop = CHTML.Em(bbox.h-a); @@ -733,7 +743,7 @@ CHTMLbboxFor: function (n) { if (this.data[n] && this.data[n].CHTML) return this.data[n].CHTML; - return {w:0, h:0, d:0, l:0, r:0}; + return CHTML.zeroBBox(); }, // // Debugging function to see if internal BBox matches actual bbox @@ -814,6 +824,7 @@ this.CHTMLadjustAccent(values); this.CHTMLadjustVariant(values); + this.CHTML = CHTML.emptyBBox(); for (var i = 0, m = this.data.length; i < m; i++) { this.CHTMLaddChild(node,i,{childOptions:{ variant: values.mathvariant, @@ -823,6 +834,7 @@ } if (values.text.length !== 1) delete this.CHTML.skew; if (values.largeop) this.CHTMLcenterOp(node); + CHTML.cleanBBox(this.CHTML); this.CHTMLhandleSpace(node); this.CHTMLhandleStyle(node); From 18e5a0ef6df4e43bec9fd8f54c012a25c8d2b4f7 Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Wed, 4 Mar 2015 12:54:46 -0500 Subject: [PATCH 033/186] Rename CHTMLstretchChild to CHTMLstretchChildV, and add CHTMLstretchChildH (still to be implemented in mo). --- unpacked/jax/output/CommonHTML/jax.js | 35 ++++++++++++++++++--------- 1 file changed, 24 insertions(+), 11 deletions(-) diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index 8d73774b2..8e6048250 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -662,14 +662,27 @@ } } else if (options.forceChild) {HTML.addElement(node,"span")} }, - CHTMLstretchChild: function (i,H,D) { + CHTMLstretchChildV: function (i,H,D) { var data = this.data[i]; if (data && data.CHTMLcanStretch("Vertical",H,D)) { var bbox = this.CHTML, dbox = data.CHTML, w = dbox.w; - data.CHTMLstretchV(H,D); - bbox.w += dbox.w - w; - if (dbox.h > bbox.h) bbox.h = dbox.h; - if (dbox.d > bbox.d) bbox.d = dbox.d; + if (dbox.h !== H || dbox.d !== D) { + data.CHTMLstretchV(H,D); + bbox.w += dbox.w - w; + if (dbox.h > bbox.h) bbox.h = dbox.h; + if (dbox.d > bbox.d) bbox.d = dbox.d; + } + } + }, + CHTMLstretchChildH: function (i,W) { + var data = this.data[i]; + if (data) { + var bbox = this.CHTML, dbox = data.CHTML; + if (dbox.w !== W) { + data.CHTMLstretchH(W); + if (dbox.h > bbox.h) bbox.h = dbox.h; + if (dbox.d > bbox.d) bbox.d = dbox.d; + } } }, @@ -1246,15 +1259,15 @@ } this.CHTMLaddChild(node,"close",{}); // - // Check for streching the elements + // Check for stretching the elements // var H = this.CHTML.h, D = this.CHTML.d; - this.CHTMLstretchChild("open",H,D); + this.CHTMLstretchChildV("open",H,D); for (i = 0, m = this.data.length; i < m; i++) { - this.CHTMLstretchChild("sep"+i,H,D); - this.CHTMLstretchChild(i,H,D); + this.CHTMLstretchChildV("sep"+i,H,D); + this.CHTMLstretchChildV(i,H,D); } - this.CHTMLstretchChild("close",H,D); + this.CHTMLstretchChildV("close",H,D); return node; } }); @@ -1263,7 +1276,7 @@ toCommonHTML: function (node) { node = this.CHTMLdefaultNode(node); var H = this.CHTML.h, D = this.CHTML.d; - for (var i = 0, m = this.data.length; i < m; i++) this.CHTMLstretchChild(i,H,D); + for (var i = 0, m = this.data.length; i < m; i++) this.CHTMLstretchChildV(i,H,D); return node; } }); From 23b66a9ae9d098f5b2a053b0ba35551a951c0b41 Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Wed, 4 Mar 2015 13:08:06 -0500 Subject: [PATCH 034/186] Implement TeX spacing for munderover, including delta offsets, skew values, proper accents, and so on. Still need stretchy characters. Still need to fix a spacing problem with accents in Safari. --- unpacked/jax/output/CommonHTML/jax.js | 248 +++++++++++++++++++++----- 1 file changed, 201 insertions(+), 47 deletions(-) diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index 8e6048250..851b5db1a 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -59,6 +59,12 @@ "mjx-denominator": {display:"table-cell", "text-align":"center"}, ".MJXc-fpad": {"padding-left":".1em", "padding-right":".1em"}, + "mjx-stack": {display:"inline-block"}, + "mjx-base": {display:"block"}, + "mjx-under": {display:"table-cell"}, + "mjx-over": {display:"block"}, + "mjx-table > mjxover": {display:"table-cell"}, + "mjx-mphantom": {"visibility":"hidden"}, "mjx-merror": { @@ -75,7 +81,7 @@ "mjx-char": {display:"block"}, "mjx-itable": {display:"inline-table"}, "mjx-row": {display:"table-row"}, - "mjx-cell": {display:"table-cell", "text-align":"center"}, + "mjx-cell": {display:"table-cell"}, "mjx-table": {display:"table", width:"100%"}, "mjx-line": {display:"block", width:"100%", "border-top":"0 solid"}, @@ -91,11 +97,6 @@ ".MJXc-script-box > span:last-child > span": {"vertical-align":"bottom"}, ".MJXc-script-box > span > span > span": {"display":"block!important"}, - ".MJXc-munderover": {"display":"inline-table!important"}, - ".MJXc-over": {"display":"inline-block!important", "text-align":"center"}, - ".MJXc-over > span": {"display":"block!important"}, - ".MJXc-munderover > span": {"display":"table-row!important"}, - ".MJXc-mtable": {"vertical-align":AXISHEIGHT+"em", "margin":"0 .125em"}, ".MJXc-mtable > span": {"display":"inline-table!important", "vertical-align":"middle"}, ".MJXc-mtr": {"display":"table-row!important"}, @@ -637,7 +638,8 @@ if (!options.noBBox) this.CHTMLhandleSpace(node); this.CHTMLhandleStyle(node); this.CHTMLhandleColor(node); - for (var i = 0, m = this.data.length; i < m; i++) this.CHTMLaddChild(node,i,options); + var m = Math.max((options.minChildren||0),this.data.length); + for (var i = 0; i < m; i++) this.CHTMLaddChild(node,i,options); if (!options.noBBox) CHTML.cleanBBox(this.CHTML); return node; }, @@ -831,13 +833,13 @@ MML.mo.Augment({ toCommonHTML: function (node) { node = this.CHTMLcreateNode(node); - + this.CHTML = CHTML.emptyBBox(); + var values = this.getValues("displaystyle","largeop","mathvariant"); values.text = this.data.join(""); this.CHTMLadjustAccent(values); this.CHTMLadjustVariant(values); - this.CHTML = CHTML.emptyBBox(); for (var i = 0, m = this.data.length; i < m; i++) { this.CHTMLaddChild(node,i,{childOptions:{ variant: values.mathvariant, @@ -1009,50 +1011,202 @@ MML.munderover.Augment({ toCommonHTML: function (node) { - var values = this.getValues("displaystyle","accent","accentunder","align"); + var values = this.getValues("displaystyle","scriptlevel","accent","accentunder","align"); if (!values.displaystyle && this.data[this.base] != null && - this.data[this.base].CoreMO().Get("movablelimits")) { - node = MML.msubsup.prototype.toCommonHTML.call(this,node); - // - // Change class to msubsup for CSS rules. - // ### FIXME: should this be handled via adding another class instead? - // - node.className = node.className.replace(/munderover/,"msubsup"); - return node; - } - node = this.CHTMLdefaultNode(node,{childNodes:"span", noBBox:true}); - var obox = this.CHTMLbboxFor(this.over), - ubox = this.CHTMLbboxFor(this.under), - bbox = this.CHTMLbboxFor(this.base), - BBOX = this.CHTML, acc = obox.acc; + this.data[this.base].CoreMO().Get("movablelimits")) + return MML.msubsup.prototype.toCommonHTML.call(this,node); + // + // Get the nodes for base and limits + // + node = this.CHTMLdefaultNode(node,{ + childNodes:["mjx-base","mjx-under","mjx-over"], noBBox:true, forceChild:true, + minChildren: 2 + }); + var base, under, over; + base = node.removeChild(node.firstChild); + under = over = node.removeChild(node.firstChild); + if (node.firstChild) over = node.removeChild(node.firstChild); + // + // Get the scale of the base and its limits + // + this.CHTMLgetScaleFactors(values,under,over); + var oscale = values.oscale, uscale = values.uscale; + // + // Get the bounding boxes and the maximum width + // + var boxes = [], W = this.CHTMLgetBBoxes(boxes,values); + var bbox = boxes[this.base], BBOX = this.CHTML; + BBOX.w = W; BBOX.h = bbox.h; BBOX.d = bbox.d; // modified below + // + // Add over- and under-scripts + // + var stack = base, delta = 0; + if (bbox.ic) {delta = 1.3*bbox.ic + .05} // make faked IC be closer to expeted results if (this.data[this.over]) { - node.lastChild.firstChild.style.marginLeft = obox.l = - node.lastChild.firstChild.style.marginRight = obox.r = 0; - var over = HTML.Element("span",{},[["span",{className:"MJXc-over"}]]); - over.firstChild.appendChild(node.lastChild); - if (node.childNodes.length > (this.data[this.under] ? 1 : 0)) - over.firstChild.appendChild(node.firstChild); - this.data[this.over].CHTMLhandleScriptlevel(over.firstChild.firstChild); - if (acc != null) { - if (obox.vec) { - over.firstChild.firstChild.firstChild.style.fontSize = "60%"; - obox.h *= .6; obox.d *= .6; obox.w *= .6; - } - acc = acc - obox.d + .1; if (bbox.t != null) {acc += bbox.t - bbox.h} - over.firstChild.firstChild.style.marginBottom = CHTML.Em(acc); - } - if (node.firstChild) {node.insertBefore(over,node.firstChild)} - else {node.appendChild(over)} + stack = this.CHTMLaddOverscript(over,boxes,values,delta,base); } if (this.data[this.under]) { - node.lastChild.firstChild.style.marginLeft = ubox.l = - node.lastChild.firstChild.marginRight = ubox.r = 0; - this.data[this.under].CHTMLhandleScriptlevel(node.lastChild); + this.CHTMLaddUnderscript(under,boxes,values,delta,node,stack); + } else { + node.appendChild(stack); } - BBOX.w = Math.max(SCRIPTFACTOR*obox.w,SCRIPTFACTOR*ubox.w,bbox.w); - BBOX.h = SCRIPTFACTOR*(obox.h+obox.d+(acc||0)) + bbox.h; - BBOX.d = bbox.d + SCRIPTFACTOR*(ubox.h+ubox.d); + // + // Handle horizontal positions + // + this.CHTMLplaceBoxes(base,under,over,values,boxes); + this.CHTMLhandleSpace(node); return node; + }, + // + // Compute scaling factors for the under- and over-scripts + // + CHTMLgetScaleFactors: function (values,under,over) { + values.oscale = values.uscale = 1; + if (values.scriptlevel < 2) { + if (!values.accent) { + values.oscale = SCRIPTFACTOR; + if (this.data[this.over]) this.data[this.over].CHTMLhandleScriptlevel(over); + } + if (!values.accentunder) { + values.uscale = SCRIPTFACTOR; + if (this.data[this.under]) this.data[this.under].CHTMLhandleScriptlevel(under); + } + } + }, + // + // Get the bounding boxes for the children, stretch + // any stretchable elements, and compute the maximum width + // + CHTMLgetBBoxes: function (bbox,values) { + var i, m = this.data.length, SCALE, + w = -BIGDIMEN, // maximum width of non-stretchy items + W = w; // maximum width of all items + // + // Get the maximum width + // + for (i = 0; i < m; i++) { + bbox[i] = this.CHTMLbboxFor(i); + if (this.data[i]) bbox[i].stretch = this.data[i].CHTMLcanStretch("Horizontal"); + SCALE = (i === this.base ? 1 : i === this.over ? values.oscale : values.uscale); + W = Math.max(W,SCALE*(bbox[i].w + (bbox[i].L||0) + (bbox[i].R||0))); + if (!bbox[i].stretch && W > w) w = W; + } + if (w === -BIGDIMEN) w = W; + // + // Stretch those parts that need it + // + for (i = 0; i < m; i++) { + if (bbox[i].stretch) { + SCALE = (i === this.base ? 1 : i === this.over ? valuses.oscale : values.uscale); + this.CHTMLstretchChildH(i,w/SCALE); + W = Math.max(W,SCALE*(bbox[i].w + (bbox[i].L||0) + (bbox[i].R||0))); + } + } + return W; + }, + // + // Add an overscript + // + CHTMLaddOverscript: function (over,boxes,values,delta,base) { + var BBOX = this.CHTML; + var w, z1, z2, z3 = CHTML.TEX.big_op_spacing5, k; + var scale = values.oscale, obox = boxes[this.over], bbox = boxes[this.base]; + // + // Put the base and script into a stack + // + var stack = HTML.Element("mjx-stack"); + if (obox.d < 0) { + // + // for negative depths, use a table to avoid unwanted baseline space + // + HTML.addElement(stack,"mjx-block",{},[["mjx-table"]]); + stack.firstChild.firstChild.appendChild(over); + stack.firstChild.firstChild.style.marginBottom = CHTML.Em(obox.d); + over = stack.firstChild; + } else { + stack.appendChild(over); + } + stack.appendChild(base); + // + // Determine the spacing + // + obox.x = 0; + if (values.accent) { + if (obox.w < .001) obox.x += (obox.r - obox.l)/2; // center combining accents + k = CHTML.TEX.rule_thickness; z3 = 0; + if (bbox.skew) { + obox.x += scale*bbox.skew; BBOX.skew = scale*bbox.skew; + if (obox.x+scale*obox.w > BBOX.w) BBOX.skew += (BBOX.w - (obox.x+scale*obox.w))/2; + } + } else { + z1 = CHTML.TEX.big_op_spacing1; + z2 = CHTML.TEX.big_op_spacing3; + k = Math.max(z1,z2-Math.max(0,scale*obox.d)); + } + obox.x += delta/2; + // + // Position the overscript + // + if (k) over.style.paddingBottom = CHTML.Em(k/scale); + if (z3) over.style.paddingTop = CHTML.Em(z3/scale); + BBOX.h += scale*(obox.h+obox.d) + k + z3; + return stack; + }, + // + // Add an underscript + // + CHTMLaddUnderscript: function (under,boxes,values,delta,node,stack) { + var BBOX = this.CHTML; + var w, x = 0, z1, z2, z3 = CHTML.TEX.big_op_spacing5, k; + var scale = values.uscale, ubox = boxes[this.under], bbox = boxes[this.base]; + // + // Create a table for the underscript + // + HTML.addElement(node,"mjx-itable",{},[ + ["mjx-row",{},[["mjx-cell"]]], + ["mjx-row"], + ]); + node.firstChild.firstChild.firstChild.appendChild(stack); + node.firstChild.lastChild.appendChild(under); + // + // determine the spacing + // + if (values.accentunder) { + k = 3*CHTML.TEX.rule_thickness; z3 = 0; + } else { + z1 = CHTML.TEX.big_op_spacing2; + z2 = CHTML.TEX.big_op_spacing4; + k = Math.max(z1,z2-scale*ubox.h); + } + ubox.x = -delta/2; + // + // Position the overscript + // + if (k) under.style.paddingTop = CHTML.Em(k/scale); + if (z3) under.style.paddingBottom = CHTML.Em(z3/scale); + BBOX.d += scale*(ubox.h+ubox.d) + z3 + k; + }, + // + // Center boxes horizontally, taking offsets into account + // + CHTMLplaceBoxes: function (base,under,over,values,boxes) { + var BBOX = this.CHTML, W = BBOX.w, i, m = boxes.length; + boxes[this.base].x = 0; var dx = 0; + for (i = 0; i < m; i++) { + var SCALE = (i === this.base ? 1 : i === this.over ? values.oscale : values.uscale); + var w = SCALE*(boxes[i].w + (boxes[i].L||0) + (boxes[i].R||0)); + boxes[i].x += (W-w)/2; + if (w + boxes[i].x > BBOX.w) BBOX.w = w + boxes[i].x; + if (boxes[i].x < dx) dx = boxes[i].x; + } + if (dx) BBOX.w += -dx; + for (i = 0; i < m; i++) { + if (boxes[i].x + dx) { + var node = (i === this.base ? base : i === this.over ? over : under); + var SCALE = (i === this.base ? 1 : i === this.over ? values.oscale : values.uscale); + node.style.paddingLeft = CHTML.Em((boxes[i].x+dx)/SCALE); + } + } } }); From e72eef13c5686966b5417130306f83be90361ef4 Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Wed, 4 Mar 2015 13:09:43 -0500 Subject: [PATCH 035/186] Mark need to rework for Safari. --- unpacked/jax/output/CommonHTML/jax.js | 1 + 1 file changed, 1 insertion(+) diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index 851b5db1a..e0e00bc65 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -1118,6 +1118,7 @@ if (obox.d < 0) { // // for negative depths, use a table to avoid unwanted baseline space + // FIXME: needs work in Safari. // HTML.addElement(stack,"mjx-block",{},[["mjx-table"]]); stack.firstChild.firstChild.appendChild(over); From f3fdb12f8cdbc023e3f045284e986e575f777abb Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Wed, 4 Mar 2015 17:03:24 -0500 Subject: [PATCH 036/186] Fix accents to work in Safari (also simplifies the structure in this case). --- unpacked/jax/output/CommonHTML/jax.js | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index e0e00bc65..7f4264830 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -1115,19 +1115,15 @@ // Put the base and script into a stack // var stack = HTML.Element("mjx-stack"); + stack.appendChild(over); stack.appendChild(base); if (obox.d < 0) { // - // for negative depths, use a table to avoid unwanted baseline space - // FIXME: needs work in Safari. + // For negative depths, set the height and align to top + // in order to avoid extra baseline space // - HTML.addElement(stack,"mjx-block",{},[["mjx-table"]]); - stack.firstChild.firstChild.appendChild(over); - stack.firstChild.firstChild.style.marginBottom = CHTML.Em(obox.d); - over = stack.firstChild; - } else { - stack.appendChild(over); + over.firstChild.style.verticalAlign = "top"; + over.style.height = obox.h+obox.d; } - stack.appendChild(base); // // Determine the spacing // From 0ba42d10b05b39baa117135e95a765a277613224 Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Wed, 4 Mar 2015 17:10:04 -0500 Subject: [PATCH 037/186] Fix depth of stack when underscript depth is negative. --- unpacked/jax/output/CommonHTML/jax.js | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index 7f4264830..ef306df97 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -1165,6 +1165,14 @@ ]); node.firstChild.firstChild.firstChild.appendChild(stack); node.firstChild.lastChild.appendChild(under); + if (ubox.d < 0) { + // + // For negative depths, set the height and align to top + // in order to avoid extra baseline space + // + under.firstChild.style.verticalAlign = "top"; + under.style.height = ubox.h+ubox.d; + } // // determine the spacing // From b8ae3b9817a9b215391a1a11d4d1ae98b8dc86e5 Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Wed, 4 Mar 2015 17:35:12 -0500 Subject: [PATCH 038/186] Actually set the height of the under- or over-script when baseline spacing is not wanted, and make sure the proper node type is created for mover. --- unpacked/jax/output/CommonHTML/jax.js | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index ef306df97..9873cdf26 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -63,7 +63,6 @@ "mjx-base": {display:"block"}, "mjx-under": {display:"table-cell"}, "mjx-over": {display:"block"}, - "mjx-table > mjxover": {display:"table-cell"}, "mjx-mphantom": {"visibility":"hidden"}, @@ -1018,9 +1017,10 @@ // // Get the nodes for base and limits // + var types = ["mjx-base","mjx-under","mjx-over"]; + if (this.over === 1) types[1] = types[2]; node = this.CHTMLdefaultNode(node,{ - childNodes:["mjx-base","mjx-under","mjx-over"], noBBox:true, forceChild:true, - minChildren: 2 + childNodes:types, noBBox:true, forceChild:true, minChildren: 2 }); var base, under, over; base = node.removeChild(node.firstChild); @@ -1116,13 +1116,13 @@ // var stack = HTML.Element("mjx-stack"); stack.appendChild(over); stack.appendChild(base); - if (obox.d < 0) { + if (obox.d < 0 || obox.h < .25) { // // For negative depths, set the height and align to top // in order to avoid extra baseline space // over.firstChild.style.verticalAlign = "top"; - over.style.height = obox.h+obox.d; + over.style.height = CHTML.Em(obox.h+obox.d); } // // Determine the spacing @@ -1165,13 +1165,13 @@ ]); node.firstChild.firstChild.firstChild.appendChild(stack); node.firstChild.lastChild.appendChild(under); - if (ubox.d < 0) { + if (ubox.d < 0 || ubox.h < .25) { // // For negative depths, set the height and align to top // in order to avoid extra baseline space // under.firstChild.style.verticalAlign = "top"; - under.style.height = ubox.h+ubox.d; + under.style.height = CHTML.Em(ubox.h+ubox.d); } // // determine the spacing From 8f0747965c6ee7fcfeb00711789a7df4e2c29c97 Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Thu, 5 Mar 2015 07:39:05 -0500 Subject: [PATCH 039/186] Implement TeX spacing for super and subscripts --- unpacked/jax/output/CommonHTML/jax.js | 182 ++++++++++++++++++-------- 1 file changed, 131 insertions(+), 51 deletions(-) diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index 9873cdf26..e7a39eefd 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -60,10 +60,13 @@ ".MJXc-fpad": {"padding-left":".1em", "padding-right":".1em"}, "mjx-stack": {display:"inline-block"}, - "mjx-base": {display:"block"}, + "mjx-op": {display:"block"}, "mjx-under": {display:"table-cell"}, "mjx-over": {display:"block"}, + "mjx-stack > mjx-sup": {display:"block"}, + "mjx-stack > mjx-sub": {display:"block"}, + "mjx-mphantom": {"visibility":"hidden"}, "mjx-merror": { @@ -91,11 +94,6 @@ ".MJXc-surd": {"vertical-align":"top"}, ".MJXc-surd > span": {"display":"block!important"}, - ".MJXc-script-box > span ": {"display":"table!important", "height":"50%"}, - ".MJXc-script-box > span > span": {"display":"table-cell!important", "vertical-align":"top"}, - ".MJXc-script-box > span:last-child > span": {"vertical-align":"bottom"}, - ".MJXc-script-box > span > span > span": {"display":"block!important"}, - ".MJXc-mtable": {"vertical-align":AXISHEIGHT+"em", "margin":"0 .125em"}, ".MJXc-mtable > span": {"display":"inline-table!important", "vertical-align":"middle"}, ".MJXc-mtr": {"display":"table-row!important"}, @@ -412,7 +410,7 @@ big_op_spacing4: .6, big_op_spacing5: .1, - scriptspace: .1, + scriptspace: .05, nulldelimiterspace: .12, delimiterfactor: 901, delimitershortfall: .3, @@ -778,6 +776,12 @@ }, + CHTMLnotEmpty: function (mml) { + while (mml && mml.data.length < 2 && (mml.type === "mrow" || mml.type === "texatom")) + mml = mml.data[0]; + return !!mml; + }, + CHTMLcanStretch: function (direction,H,D) { if (this.isEmbellished()) { var core = this.Core(); @@ -1017,7 +1021,7 @@ // // Get the nodes for base and limits // - var types = ["mjx-base","mjx-under","mjx-over"]; + var types = ["mjx-op","mjx-under","mjx-over"]; if (this.over === 1) types[1] = types[2]; node = this.CHTMLdefaultNode(node,{ childNodes:types, noBBox:true, forceChild:true, minChildren: 2 @@ -1030,7 +1034,6 @@ // Get the scale of the base and its limits // this.CHTMLgetScaleFactors(values,under,over); - var oscale = values.oscale, uscale = values.uscale; // // Get the bounding boxes and the maximum width // @@ -1193,6 +1196,7 @@ }, // // Center boxes horizontally, taking offsets into account + // ### FIXME: handle BBOX.l and BBOX.r // CHTMLplaceBoxes: function (base,under,over,values,boxes) { var BBOX = this.CHTML, W = BBOX.w, i, m = boxes.length; @@ -1217,51 +1221,127 @@ MML.msubsup.Augment({ toCommonHTML: function (node) { - node = this.CHTMLdefaultNode(node,{noBBox:true}); - if (!this.data[this.base]) { - if (node.firstChild) {node.insertBefore(HTML.Element("span"),node.firstChild)} - else {node.appendChild(HTML.Element("span"))} + var values = this.getValues("displaystyle","scriptlevel", + "subscriptshift","superscriptshift","texprimestyle"); + // + // Get the nodes for base and limits + // + var types = ["mjx-base","mjx-sub","mjx-sup"]; + if (this.sup === 1) types[1] = types[2]; + node = this.CHTMLdefaultNode(node,{ + childNodes:types, noBBox:true, forceChild:true, minChildren: 2 + }); + var base, sub, sup; base = node.firstChild; sub = sup = base.nextSibling; + if (sub.nextSibling) sup = sub.nextSibling; + if (!this.CHTMLnotEmpty(this.data[this.sub])) {node.removeChild(sub); sub = null} + if (!this.CHTMLnotEmpty(this.data[this.sup])) {node.removeChild(sup); sup = null} + if (node.childNodes.length === 3) { + var stack = HTML.addElement(node,"mjx-stack"); + stack.appendChild(sup); stack.appendChild(sub); } - var base = this.data[this.base], sub = this.data[this.sub], sup = this.data[this.sup]; - if (!base) base = {bbox: {h:.8, d:.2}}; - node.firstChild.style.marginRight = ".05em"; - var h = Math.max(.4,base.CHTML.h-.4), - d = Math.max(.2,base.CHTML.d+.1); - var bbox = this.CHTML; - if (sup && sub) { - var box = HTML.Element("span",{className:"MJXc-script-box", style:{ - height: CHTML.Em(h+sup.CHTML.h*SCRIPTFACTOR + d+sub.CHTML.d*SCRIPTFACTOR), - "vertical-align": CHTML.Em(-d-sub.CHTML.d*SCRIPTFACTOR) - }},[ - ["span",{},[["span",{},[["span",{ - style:{"margin-bottom":CHTML.Em(-(sup.CHTML.d-.05))} - }]]]]], - ["span",{},[["span",{},[["span",{ - style:{"margin-top":CHTML.Em(-(sup.CHTML.h-.05))} - }]]]]] - ]); - sub.CHTMLhandleScriptlevel(box.firstChild); - sup.CHTMLhandleScriptlevel(box.lastChild); - box.firstChild.firstChild.firstChild.appendChild(node.lastChild); - box.lastChild.firstChild.firstChild.appendChild(node.lastChild); - node.appendChild(box); - bbox.h = Math.max(base.CHTML.h,sup.CHTML.h*SCRIPTFACTOR+h); - bbox.d = Math.max(base.CHTML.d,sub.CHTML.d*SCRIPTFACTOR+d); - bbox.w = base.CHTML.w + Math.max(sup.CHTML.w,sub.CHTML.w) + .07; - } else if (sup) { - node.lastChild.style.verticalAlign = CHTML.Em(h); - sup.CHTMLhandleScriptlevel(node.lastChild); - bbox.h = Math.max(base.CHTML.h,sup.CHTML.h*SCRIPTFACTOR+h); - bbox.d = Math.max(base.CHTML.d,sup.CHTML.d*SCRIPTFACTOR-h); - bbox.w = base.CHTML.w + sup.CHTML.w + .07; - } else if (sub) { - node.lastChild.style.verticalAlign = CHTML.Em(-d); - sub.CHTMLhandleScriptlevel(node.lastChild); - bbox.h = Math.max(base.CHTML.h,sub.CHTML.h*SCRIPTFACTOR-d); - bbox.d = Math.max(base.CHTML.d,sub.CHTML.d*SCRIPTFACTOR+d); - bbox.w = base.CHTML.w + sub.CHTML.w + .07; + // + // Get the scale of the base and its limits + // + this.CHTMLgetScaleFactors(values,sub,sup); + var sscale = values.sscale; + // + // Get the bounding boxes and maximum width of scripts + // + var boxes = []; this.CHTMLgetBBoxes(boxes,values); + var BBOX = this.CHTML, + bbox = boxes[this.base], subbox = boxes[this.sub], supbox = boxes[this.sup]; + BBOX.w = bbox.w; BBOX.h = bbox.h; BBOX.d = bbox.d; // modified below + // + // Get initial values for parameters + // + var ex = CHTML.TEX.x_height, s = CHTML.TEX.scriptspace; + var q = CHTML.TEX.sup_drop * sscale, r = CHTML.TEX.sub_drop * sscale; + var u = bbox.h - q, v = bbox.d + r, delta = 0, p; + if (bbox.ic) { + BBOX.w -= bbox.ic; // remove IC (added by mo and mi) + base.style.marginRight = CHTML.Em(-bbox.ic); + delta = 1.3*bbox.ic + .05; // make faked IC be closer to expeted results } + var bmml = this.data[this.base]; + if (bmml && (bmml.type === "mi" || bmml.type === "mo")) { + if (bmml.data.join("").length === 1 && bmml.Get("scriptlevel") === 0 && + !bmml.Get("largeop")) {u = v = 0} // ### FIXME: get scale rather than use scriptlevel + } + values.subscriptshift = (values.subscriptshift === "" ? 0 : CHTML.length2em(values.subscriptshift)); + values.superscriptshift = (values.superscriptshift === "" ? 0 : CHTML.length2em(values.superscriptshift)); + // + // Add the super- and subscripts + // + if (!sup) { + if (sub) { + v = Math.max(v,CHTML.TEX.sub1,sscale*subbox.h-(4/5)*ex,values.subscriptshift); + this.CHTMLplaceSub(sub,subbox,v,s,BBOX,bbox.w,sscale,sup); + } + } else { + if (!sub) { + p = CHTML.TEX[(values.displaystyle ? "sup1" : (values.texprimestyle ? "sup3" : "sup2"))]; + u = Math.max(u,p,sscale*supbox.d+(1/4)*ex,values.superscriptshift); + this.CHTMLplaceSuper(sup,supbox,u,s,BBOX,bbox.w,delta,sscale,sub); + } else { + v = Math.max(v,CHTML.TEX.sub2); + var t = CHTML.TEX.rule_thickness; + if ((u - sscale*supbox.d) - (sscale*subbox.h - v) < 3*t) { + v = 3*t - u + sscale*(supbox.d + subbox.h); + q = (4/5)*ex - (u - sscale*supbox.d); + if (q > 0) {u += q; v -= q} + } + u = Math.max(u,values.superscriptshift); + v = Math.max(v,values.subscriptshift); + this.CHTMLplaceSuper(sup,supbox,u,s,BBOX,bbox.w,delta,sscale,sub,subbox,v,stack); + this.CHTMLplaceSub(sub,subbox,v,s,BBOX,bbox.w,sscale,sup); + } + } return node; + }, + // + // Compute scaling factors for the under- and over-scripts + // + CHTMLgetScaleFactors: function (values,sub,sup) { + values.sscale = 1; + if (values.scriptlevel < 2) { + values.sscale = SCRIPTFACTOR; + if (sub) this.data[this.sub].CHTMLhandleScriptlevel(sub); + if (sup) this.data[this.sup].CHTMLhandleScriptlevel(sup); + } + }, + // + // Get the bounding boxes for the children + // + CHTMLgetBBoxes: function (bbox,values) { + var i, m = this.data.length; + for (i = 0; i < m; i++) bbox[i] = this.CHTMLbboxFor(i); + }, + // + // Place subscript + // + CHTMLplaceSub: function (sub,subbox,v,s,BBOX,w,sscale,sup) { + if (!sup) sub.style.verticalAlign = CHTML.Em(-v/sscale); + sub.style.paddingRight = CHTML.Em(s/sscale); + BBOX.w = Math.max(BBOX.w,w+sscale*(subbox.w+(subbox.L||0)+(subbox.R||0))+s); + BBOX.h = Math.max(BBOX.h,sscale*subbox.h-v); + BBOX.d = Math.max(BBOX.d,sscale*subbox.d+v); + // ### FIXME: handle BBOX.l and BBOX.r + }, + // + // Place subscript + // + CHTMLplaceSuper: function (sup,supbox,u,s,BBOX,w,delta,sscale,sub,subbox,v,stack) { + if (sub) { + sup.style.paddingBottom = CHTML.Em((u+v)/sscale-supbox.d-subbox.h); + stack.style.verticalAlign = CHTML.Em(-v); + } else { + sup.style.verticalAlign = CHTML.Em(u/sscale); + } + sup.style.paddingLeft = CHTML.Em(delta/sscale); + sup.style.paddingRight = CHTML.Em(s/sscale); + BBOX.w = Math.max(BBOX.w,w+sscale*(supbox.w+(supbox.L||0)+(supbox.R||0))+s+delta); + BBOX.h = Math.max(BBOX.h,sscale*supbox.h+u); + BBOX.d = Math.max(BBOX.d,sscale*supbox.d-u); } }); From 09bdc86660464552aa16538c537f6376d90d899d Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Thu, 5 Mar 2015 07:59:23 -0500 Subject: [PATCH 040/186] Make msubsup one routine so that munderover can call it for moveable limits. --- unpacked/jax/output/CommonHTML/jax.js | 85 ++++++++++----------------- 1 file changed, 31 insertions(+), 54 deletions(-) diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index e7a39eefd..d142fec1e 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -1242,14 +1242,18 @@ // // Get the scale of the base and its limits // - this.CHTMLgetScaleFactors(values,sub,sup); - var sscale = values.sscale; + var sscale = 1; + if (values.scriptlevel < 2) { + sscale = SCRIPTFACTOR; + if (sub) this.data[this.sub].CHTMLhandleScriptlevel(sub); + if (sup) this.data[this.sup].CHTMLhandleScriptlevel(sup); + } // // Get the bounding boxes and maximum width of scripts // - var boxes = []; this.CHTMLgetBBoxes(boxes,values); - var BBOX = this.CHTML, - bbox = boxes[this.base], subbox = boxes[this.sub], supbox = boxes[this.sup]; + var boxes = [], BBOX = this.CHTML; + for (var i = 0, m = this.data.length; i < m; i++) boxes[i] = this.CHTMLbboxFor(i); + var bbox = boxes[this.base], subbox = boxes[this.sub], supbox = boxes[this.sup]; BBOX.w = bbox.w; BBOX.h = bbox.h; BBOX.d = bbox.d; // modified below // // Get initial values for parameters @@ -1275,13 +1279,22 @@ if (!sup) { if (sub) { v = Math.max(v,CHTML.TEX.sub1,sscale*subbox.h-(4/5)*ex,values.subscriptshift); - this.CHTMLplaceSub(sub,subbox,v,s,BBOX,bbox.w,sscale,sup); + sub.style.verticalAlign = CHTML.Em(-v/sscale); + sub.style.paddingRight = CHTML.Em(s/sscale); + BBOX.w += sscale*(subbox.w + (subbox.L||0) + (subbox.R||0)) + s; + BBOX.h = Math.max(BBOX.h,sscale*subbox.h-v); + BBOX.d = Math.max(BBOX.d,sscale*subbox.d+v); } } else { if (!sub) { p = CHTML.TEX[(values.displaystyle ? "sup1" : (values.texprimestyle ? "sup3" : "sup2"))]; u = Math.max(u,p,sscale*supbox.d+(1/4)*ex,values.superscriptshift); - this.CHTMLplaceSuper(sup,supbox,u,s,BBOX,bbox.w,delta,sscale,sub); + sup.style.verticalAlign = CHTML.Em(u/sscale); + sup.style.paddingLeft = CHTML.Em(delta/sscale); + sup.style.paddingRight = CHTML.Em(s/sscale); + BBOX.w += sscale*(supbox.w + (supbox.L||0) + (supbox.R||0)) + s + delta; + BBOX.h = Math.max(BBOX.h,sscale*supbox.h+u); + BBOX.d = Math.max(BBOX.d,sscale*supbox.d-u); } else { v = Math.max(v,CHTML.TEX.sub2); var t = CHTML.TEX.rule_thickness; @@ -1292,56 +1305,20 @@ } u = Math.max(u,values.superscriptshift); v = Math.max(v,values.subscriptshift); - this.CHTMLplaceSuper(sup,supbox,u,s,BBOX,bbox.w,delta,sscale,sub,subbox,v,stack); - this.CHTMLplaceSub(sub,subbox,v,s,BBOX,bbox.w,sscale,sup); + sub.style.paddingRight = CHTML.Em(s/sscale); + sup.style.paddingBottom = CHTML.Em((u+v)/sscale-supbox.d-subbox.h); + sup.style.paddingLeft = CHTML.Em(delta/sscale); + sup.style.paddingRight = CHTML.Em(s/sscale); + stack.style.verticalAlign = CHTML.Em(-v); + BBOX.w += Math.max( + sscale*(supbox.w + (supbox.L||0) + (supbox.R||0)) + s + delta, + sscale*(subbox.w + (subbox.L||0) + (subbox.R||0)) + s + ); + BBOX.h = Math.max(BBOX.h,sscale*supbox.h+u,sscale*subbox.h-v); + BBOX.d = Math.max(BBOX.d,sscale*supbox.d-u,sscale*subbox.d+v); } } return node; - }, - // - // Compute scaling factors for the under- and over-scripts - // - CHTMLgetScaleFactors: function (values,sub,sup) { - values.sscale = 1; - if (values.scriptlevel < 2) { - values.sscale = SCRIPTFACTOR; - if (sub) this.data[this.sub].CHTMLhandleScriptlevel(sub); - if (sup) this.data[this.sup].CHTMLhandleScriptlevel(sup); - } - }, - // - // Get the bounding boxes for the children - // - CHTMLgetBBoxes: function (bbox,values) { - var i, m = this.data.length; - for (i = 0; i < m; i++) bbox[i] = this.CHTMLbboxFor(i); - }, - // - // Place subscript - // - CHTMLplaceSub: function (sub,subbox,v,s,BBOX,w,sscale,sup) { - if (!sup) sub.style.verticalAlign = CHTML.Em(-v/sscale); - sub.style.paddingRight = CHTML.Em(s/sscale); - BBOX.w = Math.max(BBOX.w,w+sscale*(subbox.w+(subbox.L||0)+(subbox.R||0))+s); - BBOX.h = Math.max(BBOX.h,sscale*subbox.h-v); - BBOX.d = Math.max(BBOX.d,sscale*subbox.d+v); - // ### FIXME: handle BBOX.l and BBOX.r - }, - // - // Place subscript - // - CHTMLplaceSuper: function (sup,supbox,u,s,BBOX,w,delta,sscale,sub,subbox,v,stack) { - if (sub) { - sup.style.paddingBottom = CHTML.Em((u+v)/sscale-supbox.d-subbox.h); - stack.style.verticalAlign = CHTML.Em(-v); - } else { - sup.style.verticalAlign = CHTML.Em(u/sscale); - } - sup.style.paddingLeft = CHTML.Em(delta/sscale); - sup.style.paddingRight = CHTML.Em(s/sscale); - BBOX.w = Math.max(BBOX.w,w+sscale*(supbox.w+(supbox.L||0)+(supbox.R||0))+s+delta); - BBOX.h = Math.max(BBOX.h,sscale*supbox.h+u); - BBOX.d = Math.max(BBOX.d,sscale*supbox.d-u); } }); From e630f1f1f2317f078f5a420dfd6fb6de2f07bcb4 Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Thu, 5 Mar 2015 08:04:18 -0500 Subject: [PATCH 041/186] Use original bounding box for CHTMLdimen computations in mpadded. --- unpacked/jax/output/CommonHTML/jax.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index d142fec1e..3c4ddb762 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -965,7 +965,8 @@ MML.mpadded.Augment({ toCommonHTML: function (node) { node = this.CHTMLdefaultNode(node,{childNodes:"mjx-block", forceChild:true}); - var child = node.firstChild, cbox = this.CHTMLbboxFor(0), bbox = this.CHTML; + var child = node.firstChild, cbox = this.CHTMLbboxFor(0); + var bbox = MathJax.Hub.Insert({},this.CHTML); // copy to be updated without affecting CHTMLdimen() node = HTML.addElement(node,"mjx-block"); node.appendChild(child); var values = this.getValues("width","height","depth","lspace","voffset"), dimen; if (values.width !== "") { @@ -1001,6 +1002,7 @@ node.style.left = CHTML.Em(dimen.len); } } + this.CHTML = bbox; return node.parentNode; }, CHTMLdimen: function (length,d,m) { From 553a71bb44de5dff8fbc7126b13fd40ed3b7e26f Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Thu, 5 Mar 2015 15:43:36 -0500 Subject: [PATCH 042/186] Make sure that mphantom acts like a box with text, so that the sizing and baseline positioning are correct. --- unpacked/jax/output/CommonHTML/jax.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index 3c4ddb762..eddd6adc1 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -967,7 +967,8 @@ node = this.CHTMLdefaultNode(node,{childNodes:"mjx-block", forceChild:true}); var child = node.firstChild, cbox = this.CHTMLbboxFor(0); var bbox = MathJax.Hub.Insert({},this.CHTML); // copy to be updated without affecting CHTMLdimen() - node = HTML.addElement(node,"mjx-block"); node.appendChild(child); + node = HTML.addElement(node,"mjx-block"); + node.appendChild(child); HTML.addElement(child,"mjx-box"); // force box be in text mode var values = this.getValues("width","height","depth","lspace","voffset"), dimen; if (values.width !== "") { dimen = this.CHTMLdimen(values.width,"w",0); From 61db5330a73ec3466e50bddf95a77f2b7e31d8b1 Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Fri, 6 Mar 2015 11:57:21 -0500 Subject: [PATCH 043/186] Add combineBBoxes() method, and use it in mpadded and mrow. Also use bbox.t and bbox.b to indicate the actual extent of ink (which can be altered by mpadded). This will be used in zooming to determine the size of the box needed for the actual ink. These are similar to bbox.l and bbox.r, which can be outside the width of the objects. --- unpacked/jax/output/CommonHTML/jax.js | 56 ++++++++++++++++++--------- 1 file changed, 37 insertions(+), 19 deletions(-) diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index eddd6adc1..86b5b5c4d 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -509,8 +509,8 @@ } var C = font[item.n]; text += C.c; className = font.className; - if (bbox.h < C[0]) bbox.h = C[0]; - if (bbox.d < C[1]) bbox.d = C[1]; + if (bbox.h < C[0]) bbox.t = bbox.h = C[0]; + if (bbox.d < C[1]) bbox.b = bbox.d = C[1]; if (bbox.l > bbox.w+C[3]) bbox.l = bbox.w+C[3]; if (bbox.r < bbox.w+C[4]) bbox.r = bbox.w+C[4]; bbox.w += C[2]; @@ -595,27 +595,39 @@ }, zeroBBox: function () { - return {h:0, d:0, w:0, l:0, r:0, D:0, H:0}; + return {h:0, d:0, w:0, l:0, r:0, D:0, H:0, t:0, b:0}; }, emptyBBox: function () { return {h:-BIGDIMEN, d:-BIGDIMEN, w:0, l:BIGDIMEN, r:-BIGDIMEN, - D:-BIGDIMEN, H:-BIGDIMEN}; + D:-BIGDIMEN, H:-BIGDIMEN, t:-BIGDIMEN, b:-BIGDIMEN}; }, cleanBBox: function (bbox) { if (bbox.h === -BIGDIMEN) bbox.h = 0; if (bbox.d === -BIGDIMEN) bbox.d = 0; if (bbox.l === BIGDIMEN) bbox.l = 0; if (bbox.r === -BIGDIMEN) bbox.r = 0; + if (bbox.t === -BIGDIMEN) bbox.t = 0; + if (bbox.b === -BIGDIMEN) bbox.b = 0; if (bbox.H === -BIGDIMEN) bbox.H = .8; if (bbox.D === -BIGDIMEN) bbox.D = .2; }, scaleBBox: function (bbox,level,dlevel) { var scale = Math.pow(SCRIPTFACTOR,Math.min(2,level)-(dlevel||0)); bbox.w *= scale; bbox.h *= scale; bbox.d *= scale; - bbox.l *= scale; bbox.r *= scale; + bbox.l *= scale; bbox.r *= scale; bbox.t *= scale; bbox.b *= scale; if (bbox.L) bbox.L *= scale; if (bbox.R) bbox.R *= scale; }, + combineBBoxes: function (bbox,cbox,x,y,scale) { + if (x + scale*cbox.r > bbox.r) bbox.r = x + scale*cbox.r; + if (x + scale*cbox.l < bbox.l) bbox.l = x + scale*cbox.l; + if (x + scale*(cbox.w+(cbox.L||0)+(cbox.R||0)) > bbox.w) + bbox.w = x + scale*(cbox.w + (cbox.L||0) + (cbox.R||0)); + if (y + scale*cbox.h > bbox.h) bbox.h = y + scale*cbox.h; + if (scale*cbox.d - y > bbox.d) bbox.d = scale*cbox.d - y; + if (y + scale*cbox.t > bbox.t) bbox.t = y + scale*cbox.t; + if (scale*cbox.b - y > bbox.b) bbox.b = scale*cbox.b - y; + }, arrayEntry: function (a,i) {return a[Math.max(0,Math.min(i,a.length-1))]} @@ -651,11 +663,7 @@ child.toCommonHTML(node,options.childOptions); if (!options.noBBox) { var bbox = this.CHTML, cbox = child.CHTML; - if (cbox.r + bbox.w > bbox.r) bbox.r = bbox.w + cbox.r; - if (cbox.l + bbox.w < bbox.l) bbox.l = bbox.w + cbox.l; - bbox.w += cbox.w + (cbox.L||0) + (cbox.R||0); - if (cbox.h > bbox.h) bbox.h = cbox.h; - if (cbox.d > bbox.d) bbox.d = cbox.d; + CHTML.combineBBoxes(bbox,cbox,bbox.w,0,1); if (cbox.ic) {bbox.ic = cbox.ic} else {delete bbox.ic} if (cbox.skew) bbox.skew = cbox.skew; } @@ -670,6 +678,8 @@ bbox.w += dbox.w - w; if (dbox.h > bbox.h) bbox.h = dbox.h; if (dbox.d > bbox.d) bbox.d = dbox.d; + if (dbox.t > bbox.t) bbox.t = dbox.t; + if (dbox.b > bbox.b) bbox.b = dbox.b; } } }, @@ -681,6 +691,8 @@ data.CHTMLstretchH(W); if (dbox.h > bbox.h) bbox.h = dbox.h; if (dbox.d > bbox.d) bbox.d = dbox.d; + if (dbox.t > bbox.t) bbox.t = dbox.t; + if (dbox.b > bbox.b) bbox.b = dbox.b; } } }, @@ -748,6 +760,7 @@ CHTML.addCharList(node.firstChild,list,bbox); CHTML.cleanBBox(bbox); bbox.h += HFUZZ; bbox.d += DFUZZ; + bbox.t += HFUZZ; bbox.b += DFUZZ; var a = (bbox.H-bbox.D)/2; // center of font (line-height:0) node.firstChild.style.marginTop = CHTML.Em(bbox.h-a); node.firstChild.style.marginBottom = CHTML.Em(bbox.d+a); @@ -966,43 +979,48 @@ toCommonHTML: function (node) { node = this.CHTMLdefaultNode(node,{childNodes:"mjx-block", forceChild:true}); var child = node.firstChild, cbox = this.CHTMLbboxFor(0); - var bbox = MathJax.Hub.Insert({},this.CHTML); // copy to be updated without affecting CHTMLdimen() node = HTML.addElement(node,"mjx-block"); node.appendChild(child); HTML.addElement(child,"mjx-box"); // force box be in text mode - var values = this.getValues("width","height","depth","lspace","voffset"), dimen; + var values = this.getValues("width","height","depth","lspace","voffset"); + var dimen, x = 0, y = 0, w = cbox.w, h = cbox.h, d = cbox.d; if (values.width !== "") { dimen = this.CHTMLdimen(values.width,"w",0); if (dimen.pm) dimen.len += cbox.w; if (dimen.len < 0) dimen.len = 0; if (dimen.len !== cbox.w) node.style.width = CHTML.Em(dimen.len); - bbox.w = dimen.len; + w = dimen.len; } if (values.height !== "") { dimen = this.CHTMLdimen(values.height,"h",0); - if (dimen.pm) {bbox.h += dimen.len} else {bbox.h = dimen.len; dimen.len += -cbox.h} - if (dimen.len+cbox.h < 0) dimen.len = -cbox.h; + if (dimen.pm) {h += dimen.len} else {h = dimen.len; dimen.len += -cbox.h} + if (dimen.len+cbox.h < 0) {dimen.len = -cbox.h; h = 0} if (dimen.len) child.style.marginTop = CHTML.Em(dimen.len); } if (values.depth !== "") { dimen = this.CHTMLdimen(values.depth,"d",0); - if (dimen.pm) {bbox.d += dimen.len} else {bbox.d = dimen.len; dimen.len += -cbox.d} - if (dimen.len+cbox.d < 0) dimen.len = -cbox.d; + if (dimen.pm) {d += dimen.len} else {d = dimen.len; dimen.len += -cbox.d} + if (dimen.len+cbox.d < 0) {dimen.len = -cbox.d; d = 0} if (dimen.len) child.style.marginBottom = CHTML.Em(dimen.len); } if (values.voffset !== "") { dimen = this.CHTMLdimen(values.voffset); if (dimen.len) { + y = dimen.len; node.style.position = "relative"; - node.style.top = CHTML.Em(-dimen.len); + node.style.top = CHTML.Em(-y); } } if (values.lspace !== "") { dimen = this.CHTMLdimen(values.lspace); if (dimen.len) { + x = dimen.len; node.style.position = "relative"; - node.style.left = CHTML.Em(dimen.len); + node.style.left = CHTML.Em(x); } } + var bbox = {w:w, h:h, d:d, l:0, r:w, t:h, b:d}; + CHTML.combineBBoxes(bbox,cbox,x,y,1); + bbox.w = w; bbox.h = h; bbox.d = d; this.CHTML = bbox; return node.parentNode; }, From c502910eb7d1af3a11e687eccfd378a54106fe42 Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Sat, 7 Mar 2015 10:54:46 -0500 Subject: [PATCH 044/186] Better handling of bboxes in mfrac, msubsup, munderover, mspace. --- unpacked/jax/output/CommonHTML/jax.js | 60 ++++++++++++--------------- 1 file changed, 27 insertions(+), 33 deletions(-) diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index 86b5b5c4d..8b6e47b23 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -966,7 +966,7 @@ h = CHTML.length2em(values.height), d = CHTML.length2em(values.depth); var bbox = this.CHTML; - bbox.w = w; bbox.h = h; bbox.d = d; + bbox.w = bbox.r = w; bbox.h = bbox.t = h; bbox.d = bbox.b = d; bbox.l = 0; if (w < 0) {node.style.marginRight = CHTML.Em(w); w = 0} node.style.width = CHTML.Em(w); node.style.height = CHTML.Em(h+d); @@ -980,7 +980,7 @@ node = this.CHTMLdefaultNode(node,{childNodes:"mjx-block", forceChild:true}); var child = node.firstChild, cbox = this.CHTMLbboxFor(0); node = HTML.addElement(node,"mjx-block"); - node.appendChild(child); HTML.addElement(child,"mjx-box"); // force box be in text mode + node.appendChild(child); HTML.addElement(child,"mjx-box"); // force box to be in text mode var values = this.getValues("width","height","depth","lspace","voffset"); var dimen, x = 0, y = 0, w = cbox.w, h = cbox.h, d = cbox.d; if (values.width !== "") { @@ -1164,13 +1164,12 @@ z2 = CHTML.TEX.big_op_spacing3; k = Math.max(z1,z2-Math.max(0,scale*obox.d)); } - obox.x += delta/2; + obox.x += delta/2; obox.y = BBOX.h + k + z3; // // Position the overscript // if (k) over.style.paddingBottom = CHTML.Em(k/scale); if (z3) over.style.paddingTop = CHTML.Em(z3/scale); - BBOX.h += scale*(obox.h+obox.d) + k + z3; return stack; }, // @@ -1207,35 +1206,34 @@ z2 = CHTML.TEX.big_op_spacing4; k = Math.max(z1,z2-scale*ubox.h); } - ubox.x = -delta/2; + ubox.x = -delta/2; ubox.y = -(BBOX.d + k + z3 + scale*ubox.h); // // Position the overscript // if (k) under.style.paddingTop = CHTML.Em(k/scale); if (z3) under.style.paddingBottom = CHTML.Em(z3/scale); - BBOX.d += scale*(ubox.h+ubox.d) + z3 + k; }, // // Center boxes horizontally, taking offsets into account // ### FIXME: handle BBOX.l and BBOX.r // CHTMLplaceBoxes: function (base,under,over,values,boxes) { - var BBOX = this.CHTML, W = BBOX.w, i, m = boxes.length; - boxes[this.base].x = 0; var dx = 0; + var W = this.CHTML.w, i, m = boxes.length; + var BBOX = this.CHTML = CHTML.zeroBBox(); + boxes[this.base].x = boxes[this.base].y = 0; var dx = BIGDIMEN; for (i = 0; i < m; i++) { var SCALE = (i === this.base ? 1 : i === this.over ? values.oscale : values.uscale); var w = SCALE*(boxes[i].w + (boxes[i].L||0) + (boxes[i].R||0)); boxes[i].x += (W-w)/2; - if (w + boxes[i].x > BBOX.w) BBOX.w = w + boxes[i].x; if (boxes[i].x < dx) dx = boxes[i].x; } - if (dx) BBOX.w += -dx; for (i = 0; i < m; i++) { - if (boxes[i].x + dx) { - var node = (i === this.base ? base : i === this.over ? over : under); var SCALE = (i === this.base ? 1 : i === this.over ? values.oscale : values.uscale); - node.style.paddingLeft = CHTML.Em((boxes[i].x+dx)/SCALE); + if (boxes[i].x - dx) { + var node = (i === this.base ? base : i === this.over ? over : under); + node.style.paddingLeft = CHTML.Em((boxes[i].x-dx)/SCALE); } + CHTML.combineBBoxes(BBOX,boxes[i],boxes[i].x-dx,boxes[i].y,SCALE) } } }); @@ -1272,10 +1270,10 @@ // // Get the bounding boxes and maximum width of scripts // - var boxes = [], BBOX = this.CHTML; + var boxes = [], BBOX = this.CHTML = CHTML.emptyBBox(); for (var i = 0, m = this.data.length; i < m; i++) boxes[i] = this.CHTMLbboxFor(i); var bbox = boxes[this.base], subbox = boxes[this.sub], supbox = boxes[this.sup]; - BBOX.w = bbox.w; BBOX.h = bbox.h; BBOX.d = bbox.d; // modified below + CHTML.combineBBoxes(BBOX,bbox,0,0,1); // // Get initial values for parameters // @@ -1297,14 +1295,13 @@ // // Add the super- and subscripts // + var x = BBOX.w; subbox.w += s; supbox.w += s; if (!sup) { if (sub) { v = Math.max(v,CHTML.TEX.sub1,sscale*subbox.h-(4/5)*ex,values.subscriptshift); sub.style.verticalAlign = CHTML.Em(-v/sscale); sub.style.paddingRight = CHTML.Em(s/sscale); - BBOX.w += sscale*(subbox.w + (subbox.L||0) + (subbox.R||0)) + s; - BBOX.h = Math.max(BBOX.h,sscale*subbox.h-v); - BBOX.d = Math.max(BBOX.d,sscale*subbox.d+v); + CHTML.combineBBoxes(BBOX,subbox,x,-v,sscale); } } else { if (!sub) { @@ -1313,9 +1310,7 @@ sup.style.verticalAlign = CHTML.Em(u/sscale); sup.style.paddingLeft = CHTML.Em(delta/sscale); sup.style.paddingRight = CHTML.Em(s/sscale); - BBOX.w += sscale*(supbox.w + (supbox.L||0) + (supbox.R||0)) + s + delta; - BBOX.h = Math.max(BBOX.h,sscale*supbox.h+u); - BBOX.d = Math.max(BBOX.d,sscale*supbox.d-u); + CHTML.combineBBoxes(BBOX,supbox,x+delta,u,sscale); } else { v = Math.max(v,CHTML.TEX.sub2); var t = CHTML.TEX.rule_thickness; @@ -1331,14 +1326,11 @@ sup.style.paddingLeft = CHTML.Em(delta/sscale); sup.style.paddingRight = CHTML.Em(s/sscale); stack.style.verticalAlign = CHTML.Em(-v); - BBOX.w += Math.max( - sscale*(supbox.w + (supbox.L||0) + (supbox.R||0)) + s + delta, - sscale*(subbox.w + (subbox.L||0) + (subbox.R||0)) + s - ); - BBOX.h = Math.max(BBOX.h,sscale*supbox.h+u,sscale*subbox.h-v); - BBOX.d = Math.max(BBOX.d,sscale*supbox.d-u,sscale*subbox.d+v); + CHTML.combineBBoxes(BBOX,supbox,x+delta,u,sscale); + CHTML.combineBBoxes(BBOX,subbox,x,-v,sscale); } } + CHTML.cleanBBox(BBOX); return node; } }); @@ -1377,7 +1369,7 @@ // Get the bounding boxes for the parts, and determine the placement // of the numerator and denominator // - var nbox = this.CHTMLbboxFor(0), dbox = this.CHTMLbboxFor(1), bbox = this.CHTML; + var nbox = this.CHTMLbboxFor(0), dbox = this.CHTMLbboxFor(1); values.linethickness = Math.max(0,CHTML.length2em(values.linethickness||"0",0)); var mt = CHTML.TEX.min_rule_thickness/CHTML.em/scale, a = CHTML.TEX.axis_height; var t = values.linethickness, p,q, u,v; @@ -1399,14 +1391,16 @@ var rule = HTML.Element("mjx-row",{},[["mjx-cell",{},[["mjx-line"]]]]); num.parentNode.appendChild(rule); rule = rule.firstChild.firstChild; rule.style.borderTop = CHTML.Em(t)+" solid"; - num.firstChild.className += " MJXc-fpad"; - denom.firstChild.className += " MJXc-fpad"; + num.firstChild.className += " MJXc-fpad"; nbox.L = nbox.R = .1; + denom.firstChild.className += " MJXc-fpad"; dbox.L = dbox.R = .1; } // // Determine the new bounding box and place the parts // - bbox.w = sscale*Math.max(nbox.w,dbox.w); - bbox.h = sscale*nbox.h+u; bbox.d = sscale*dbox.d+v; + this.CHTML = CHTML.emptyBBox(); + CHTML.combineBBoxes(this.CHTML,nbox,0,u,sscale); + CHTML.combineBBoxes(this.CHTML,dbox,0,-v,sscale); + CHTML.cleanBBox(this.CHTML); u -= sscale*nbox.d + a + t/2; v -= sscale*dbox.h - a + t/2; if (u > 0) num.firstChild.style.paddingBottom = CHTML.Em(u); if (v > 0) denom.firstChild.style.paddingTop = CHTML.Em(v); @@ -1415,7 +1409,7 @@ // (TeXBook pg 150 and Appendix G rule 15e) // if (!this.texWithDelims && !this.useMMLspacing) - bbox.L = bbox.R = CHTML.TEX.nulldelimiterspace; + this.CHTML.L = this.CHTML.R = CHTML.TEX.nulldelimiterspace; this.CHTMLhandleSpace(node); // // Return the completed fraction From f9849b87d3b769ec93de7a3f2c1ec9868047afaa Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Sat, 7 Mar 2015 10:55:47 -0500 Subject: [PATCH 045/186] Convert tabls to spaces --- unpacked/jax/output/CommonHTML/jax.js | 114 +++++++++++++------------- 1 file changed, 57 insertions(+), 57 deletions(-) diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index 8b6e47b23..4cd2ed9cd 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -181,15 +181,15 @@ jax = script.MathJax.elementJax; if (!jax) continue; jax.CHTML = {display: (jax.root.Get("display") === "block")} span = div = HTML.Element("span",{ - className:"MathJax_CHTML", id:jax.inputID+"-Frame", isMathJax:true, jaxID:this.id, + className:"MathJax_CHTML", id:jax.inputID+"-Frame", isMathJax:true, jaxID:this.id, oncontextmenu:EVENT.Menu, onmousedown: EVENT.Mousedown, onmouseover:EVENT.Mouseover, onmouseout:EVENT.Mouseout, onmousemove:EVENT.Mousemove, - onclick:EVENT.Click, ondblclick:EVENT.DblClick + onclick:EVENT.Click, ondblclick:EVENT.DblClick }); - if (HUB.Browser.noContextMenu) { - span.ontouchstart = TOUCH.start; - span.ontouchend = TOUCH.end; - } + if (HUB.Browser.noContextMenu) { + span.ontouchstart = TOUCH.start; + span.ontouchend = TOUCH.end; + } if (jax.CHTML.display) { div = HTML.Element("div",{className:"MathJax_CHTML_Display"}); div.appendChild(span); @@ -249,17 +249,17 @@ jax.CHTML.preview = script.MathJax.preview; delete script.MathJax.preview; } - /* - * // - * // Check if we should show this chunk of equations - * // - * state.CHTMLeqn += (state.i - state.CHTMLi); state.CHTMLi = state.i; - * if (state.CHTMLeqn >= state.CHTMLlast + state.CHTMLchunk) { - * this.postTranslate(state); - * state.CHTMLchunk = Math.floor(state.CHTMLchunk*this.config.EqnChunkFactor); - * state.CHTMLdelay = true; // delay if there are more scripts - * } - */ + /* + * // + * // Check if we should show this chunk of equations + * // + * state.CHTMLeqn += (state.i - state.CHTMLi); state.CHTMLi = state.i; + * if (state.CHTMLeqn >= state.CHTMLlast + state.CHTMLchunk) { + * this.postTranslate(state); + * state.CHTMLchunk = Math.floor(state.CHTMLchunk*this.config.EqnChunkFactor); + * state.CHTMLdelay = true; // delay if there are more scripts + * } + */ } }, @@ -723,7 +723,7 @@ CHTMLhandleSpace: function (node) { if (!this.useMMLspacing) { - var space = this.texSpacing(); + var space = this.texSpacing(); if (space !== "") this.CHTML.L = CHTML.length2em(space) + (this.CHTML.L||0); if (this.CHTML.L) node.style.marginLeft = CHTML.Em(this.CHTML.L); if (this.CHTML.R) node.style.marginRight = CHTML.Em(this.CHTML.R); @@ -790,9 +790,9 @@ CHTMLnotEmpty: function (mml) { - while (mml && mml.data.length < 2 && (mml.type === "mrow" || mml.type === "texatom")) + while (mml && mml.data.length < 2 && (mml.type === "mrow" || mml.type === "texatom")) mml = mml.data[0]; - return !!mml; + return !!mml; }, CHTMLcanStretch: function (direction,H,D) { @@ -875,7 +875,7 @@ }, CHTMLhandleSpace: function (node) { if (this.useMMLspacing) { - var values = this.getValues("scriptlevel","lspace","rspace"); + var values = this.getValues("scriptlevel","lspace","rspace"); values.lspace = Math.max(0,CHTML.length2em(values.lspace)); values.rspace = Math.max(0,CHTML.length2em(values.rspace)); if (values.scriptlevel > 0) { @@ -884,9 +884,9 @@ } var core = this, parent = this.Parent(); while (parent && parent.isEmbellished() && parent.Core() === core) - {core = parent; parent = parent.Parent(); node = core.CHTMLnodeElement()} + {core = parent; parent = parent.Parent(); node = core.CHTMLnodeElement()} if (values.lspace) {node.style.paddingLeft = CHTML.Em(values.lspace)} - if (values.rspace) {node.style.paddingRight = CHTML.Em(values.rspace)} + if (values.rspace) {node.style.paddingRight = CHTML.Em(values.rspace)} } else { this.SUPER(arguments).CHTMLhandleSpace.apply(this,arguments); } @@ -1035,9 +1035,9 @@ MML.munderover.Augment({ toCommonHTML: function (node) { - var values = this.getValues("displaystyle","scriptlevel","accent","accentunder","align"); - if (!values.displaystyle && this.data[this.base] != null && - this.data[this.base].CoreMO().Get("movablelimits")) + var values = this.getValues("displaystyle","scriptlevel","accent","accentunder","align"); + if (!values.displaystyle && this.data[this.base] != null && + this.data[this.base].CoreMO().Get("movablelimits")) return MML.msubsup.prototype.toCommonHTML.call(this,node); // // Get the nodes for base and limits @@ -1059,7 +1059,7 @@ // Get the bounding boxes and the maximum width // var boxes = [], W = this.CHTMLgetBBoxes(boxes,values); - var bbox = boxes[this.base], BBOX = this.CHTML; + var bbox = boxes[this.base], BBOX = this.CHTML; BBOX.w = W; BBOX.h = bbox.h; BBOX.d = bbox.d; // modified below // // Add over- and under-scripts @@ -1240,7 +1240,7 @@ MML.msubsup.Augment({ toCommonHTML: function (node) { - var values = this.getValues("displaystyle","scriptlevel", + var values = this.getValues("displaystyle","scriptlevel", "subscriptshift","superscriptshift","texprimestyle"); // // Get the nodes for base and limits @@ -1272,53 +1272,53 @@ // var boxes = [], BBOX = this.CHTML = CHTML.emptyBBox(); for (var i = 0, m = this.data.length; i < m; i++) boxes[i] = this.CHTMLbboxFor(i); - var bbox = boxes[this.base], subbox = boxes[this.sub], supbox = boxes[this.sup]; + var bbox = boxes[this.base], subbox = boxes[this.sub], supbox = boxes[this.sup]; CHTML.combineBBoxes(BBOX,bbox,0,0,1); // // Get initial values for parameters // var ex = CHTML.TEX.x_height, s = CHTML.TEX.scriptspace; - var q = CHTML.TEX.sup_drop * sscale, r = CHTML.TEX.sub_drop * sscale; - var u = bbox.h - q, v = bbox.d + r, delta = 0, p; - if (bbox.ic) { + var q = CHTML.TEX.sup_drop * sscale, r = CHTML.TEX.sub_drop * sscale; + var u = bbox.h - q, v = bbox.d + r, delta = 0, p; + if (bbox.ic) { BBOX.w -= bbox.ic; // remove IC (added by mo and mi) base.style.marginRight = CHTML.Em(-bbox.ic); delta = 1.3*bbox.ic + .05; // make faked IC be closer to expeted results } var bmml = this.data[this.base]; - if (bmml && (bmml.type === "mi" || bmml.type === "mo")) { - if (bmml.data.join("").length === 1 && bmml.Get("scriptlevel") === 0 && - !bmml.Get("largeop")) {u = v = 0} // ### FIXME: get scale rather than use scriptlevel - } - values.subscriptshift = (values.subscriptshift === "" ? 0 : CHTML.length2em(values.subscriptshift)); - values.superscriptshift = (values.superscriptshift === "" ? 0 : CHTML.length2em(values.superscriptshift)); + if (bmml && (bmml.type === "mi" || bmml.type === "mo")) { + if (bmml.data.join("").length === 1 && bmml.Get("scriptlevel") === 0 && + !bmml.Get("largeop")) {u = v = 0} // ### FIXME: get scale rather than use scriptlevel + } + values.subscriptshift = (values.subscriptshift === "" ? 0 : CHTML.length2em(values.subscriptshift)); + values.superscriptshift = (values.superscriptshift === "" ? 0 : CHTML.length2em(values.superscriptshift)); // // Add the super- and subscripts // var x = BBOX.w; subbox.w += s; supbox.w += s; - if (!sup) { - if (sub) { - v = Math.max(v,CHTML.TEX.sub1,sscale*subbox.h-(4/5)*ex,values.subscriptshift); + if (!sup) { + if (sub) { + v = Math.max(v,CHTML.TEX.sub1,sscale*subbox.h-(4/5)*ex,values.subscriptshift); sub.style.verticalAlign = CHTML.Em(-v/sscale); sub.style.paddingRight = CHTML.Em(s/sscale); CHTML.combineBBoxes(BBOX,subbox,x,-v,sscale); - } - } else { - if (!sub) { - p = CHTML.TEX[(values.displaystyle ? "sup1" : (values.texprimestyle ? "sup3" : "sup2"))]; - u = Math.max(u,p,sscale*supbox.d+(1/4)*ex,values.superscriptshift); + } + } else { + if (!sub) { + p = CHTML.TEX[(values.displaystyle ? "sup1" : (values.texprimestyle ? "sup3" : "sup2"))]; + u = Math.max(u,p,sscale*supbox.d+(1/4)*ex,values.superscriptshift); sup.style.verticalAlign = CHTML.Em(u/sscale); sup.style.paddingLeft = CHTML.Em(delta/sscale); sup.style.paddingRight = CHTML.Em(s/sscale); CHTML.combineBBoxes(BBOX,supbox,x+delta,u,sscale); - } else { - v = Math.max(v,CHTML.TEX.sub2); - var t = CHTML.TEX.rule_thickness; - if ((u - sscale*supbox.d) - (sscale*subbox.h - v) < 3*t) { - v = 3*t - u + sscale*(supbox.d + subbox.h); - q = (4/5)*ex - (u - sscale*supbox.d); - if (q > 0) {u += q; v -= q} - } + } else { + v = Math.max(v,CHTML.TEX.sub2); + var t = CHTML.TEX.rule_thickness; + if ((u - sscale*supbox.d) - (sscale*subbox.h - v) < 3*t) { + v = 3*t - u + sscale*(supbox.d + subbox.h); + q = (4/5)*ex - (u - sscale*supbox.d); + if (q > 0) {u += q; v -= q} + } u = Math.max(u,values.superscriptshift); v = Math.max(v,values.subscriptshift); sub.style.paddingRight = CHTML.Em(s/sscale); @@ -1328,8 +1328,8 @@ stack.style.verticalAlign = CHTML.Em(-v); CHTML.combineBBoxes(BBOX,supbox,x+delta,u,sscale); CHTML.combineBBoxes(BBOX,subbox,x,-v,sscale); - } - } + } + } CHTML.cleanBBox(BBOX); return node; } @@ -1408,7 +1408,7 @@ // Add nulldelimiterspace around the fraction // (TeXBook pg 150 and Appendix G rule 15e) // - if (!this.texWithDelims && !this.useMMLspacing) + if (!this.texWithDelims && !this.useMMLspacing) this.CHTML.L = this.CHTML.R = CHTML.TEX.nulldelimiterspace; this.CHTMLhandleSpace(node); // From 3619421fabed226f9374235e76f5132e4e74ec5d Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Sat, 7 Mar 2015 11:00:49 -0500 Subject: [PATCH 046/186] Add some comments to separate the methods from one another --- unpacked/jax/output/CommonHTML/jax.js | 73 +++++++++++++++++++++++++-- 1 file changed, 68 insertions(+), 5 deletions(-) diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index 4cd2ed9cd..38d73e84d 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -118,6 +118,8 @@ } })(); + /************************************************************/ + var BIGDIMEN = 1000000; var V = "V", H = "H"; @@ -125,6 +127,8 @@ settings: HUB.config.menuSettings, config: {styles: STYLES}, + /********************************************/ + Config: function () { if (!this.require) {this.require = []} this.SUPER(arguments).Config.call(this); var settings = this.settings; @@ -160,6 +164,8 @@ InitializeCHTML: function () { }, + /********************************************/ + preTranslate: function (state) { var scripts = state.jax[this.id], i, m = scripts.length, script, prev, span, div, jax; @@ -205,6 +211,8 @@ */ }, + /********************************************/ + Translate: function (script,state) { if (!script.parentNode) return; @@ -263,6 +271,10 @@ } }, + initCHTML: function (math,span) {}, + + /********************************************/ + postTranslate: function (state) { var scripts = state.jax[this.id]; if (!this.hideProcessedMath) return; @@ -314,6 +326,8 @@ */ }, + /********************************************/ + getJaxFromMath: function (math) { if (math.parentNode.className === "MathJax_CHTML_Display") {math = math.parentNode} do {math = math.nextSibling} while (math && math.nodeName.toLowerCase() !== "script"); @@ -345,8 +359,6 @@ return {Y:-EVENT.getBBox(span).h, mW:mW, mH:mH, zW:zW, zH:zH}; }, - initCHTML: function (math,span) {}, - Remove: function (jax) { var span = document.getElementById(jax.inputID+"-Frame"); if (span) { @@ -356,6 +368,8 @@ delete jax.CHTML; }, + /********************************************/ + ID: 0, idPostfix: "", GetID: function () {this.ID++; return this.ID}, @@ -418,6 +432,8 @@ min_rule_thickness: 1.25 // in pixels }, + /********************************************************/ + getUnicode: function (string) { var n = string.text.charCodeAt(string.i); string.i++; if (n >= 0xD800 && n < 0xDBFF) { @@ -496,6 +512,8 @@ }, unknownChar: function (variant,n) {}, + /********************************************************/ + addCharList: function (node,list,bbox) { var text = "", className; for (var i = 0, m = list.length; i < m; i++) { @@ -527,9 +545,8 @@ } }, - - // ### FIXME: add more here - + /********************************************************/ + DELIMITERS: { "(": {dir:V}, "{": {dir:V, w:.58}, @@ -560,6 +577,8 @@ "\u23B1": {dir:V, w:.6} }, + /********************************************************/ + // // ### FIXME: Handle mu's // @@ -594,6 +613,8 @@ return parseFloat(m); }, + /********************************************************/ + zeroBBox: function () { return {h:0, d:0, w:0, l:0, r:0, D:0, H:0, t:0, b:0}; }, @@ -629,13 +650,19 @@ if (scale*cbox.b - y > bbox.b) bbox.b = scale*cbox.b - y; }, + /********************************************************/ + arrayEntry: function (a,i) {return a[Math.max(0,Math.min(i,a.length-1))]} }); + /**********************************************************/ + MathJax.Hub.Register.StartupHook("mml Jax Ready",function () { MML = MathJax.ElementJax.mml; + /********************************************************/ + MML.mbase.Augment({ toCommonHTML: function (node,options) { return this.CHTMLdefaultNode(node,options); @@ -807,6 +834,8 @@ }); + /********************************************************/ + MML.chars.Augment({ toCommonHTML: function (node,options) { if (options == null) options = {}; @@ -826,6 +855,8 @@ } }); + /********************************************************/ + MML.math.Augment({ toCommonHTML: function (node) { node = this.CHTMLdefaultNode(node); @@ -834,6 +865,8 @@ } }); + /********************************************************/ + MML.mi.Augment({ toCommonHTML: function (node) { node = this.CHTMLdefaultNode(node); @@ -846,6 +879,8 @@ } }); + /********************************************************/ + MML.mo.Augment({ toCommonHTML: function (node) { node = this.CHTMLcreateNode(node); @@ -956,6 +991,8 @@ } }); + /********************************************************/ + MML.mspace.Augment({ toCommonHTML: function (node) { node = this.CHTMLcreateNode(node); @@ -975,6 +1012,8 @@ } }); + /********************************************************/ + MML.mpadded.Augment({ toCommonHTML: function (node) { node = this.CHTMLdefaultNode(node,{childNodes:"mjx-block", forceChild:true}); @@ -1033,6 +1072,8 @@ } }); + /********************************************************/ + MML.munderover.Augment({ toCommonHTML: function (node) { var values = this.getValues("displaystyle","scriptlevel","accent","accentunder","align"); @@ -1238,6 +1279,8 @@ } }); + /********************************************************/ + MML.msubsup.Augment({ toCommonHTML: function (node) { var values = this.getValues("displaystyle","scriptlevel", @@ -1335,6 +1378,8 @@ } }); + /********************************************************/ + MML.mfrac.Augment({ toCommonHTML: function (node) { node = this.CHTMLdefaultNode(node,{ @@ -1418,6 +1463,8 @@ } }); + /********************************************************/ + MML.msqrt.Augment({ toCommonHTML: function (node) { node = this.CHTMLdefaultNode(node,{ @@ -1452,6 +1499,8 @@ } }); + /********************************************************/ + MML.mroot.Augment({ toCommonHTML: function (node) { node = this.CHTMLdefaultNode(node,{ @@ -1473,6 +1522,8 @@ CHTMLlayoutRoot: MML.msqrt.prototype.CHTMLlayoutRoot }); + /********************************************************/ + MML.mfenced.Augment({ toCommonHTML: function (node) { node = this.CHTMLcreateNode(node); @@ -1503,6 +1554,8 @@ } }); + /********************************************************/ + MML.mrow.Augment({ toCommonHTML: function (node) { node = this.CHTMLdefaultNode(node); @@ -1512,6 +1565,8 @@ } }); + /********************************************************/ + MML.mstyle.Augment({ toCommonHTML: function (node) { node = this.CHTMLdefaultNode(node); @@ -1526,6 +1581,8 @@ } }); + /********************************************************/ + MML.TeXAtom.Augment({ toCommonHTML: function (node) { node = this.CHTMLdefaultNode(node); @@ -1535,6 +1592,8 @@ } }); + /********************************************************/ + MML.mtable.Augment({ toCommonHTML: function (node) { node = this.CHTMLdefaultNode(node,{noBBox:true}); @@ -1597,6 +1656,8 @@ } }); + /********************************************************/ + MML.semantics.Augment({ toCommonHTML: function (node) { node = this.CHTMLcreateNode(node); @@ -1610,6 +1671,8 @@ MML.annotation.Augment({toCommonHTML: function(node) {}}); MML["annotation-xml"].Augment({toCommonHTML: function(node) {}}); + /********************************************************/ + // // Loading isn't complete until the element jax is modified, // but can't call loadComplete within the callback for "mml Jax Ready" From dc923adf8f7db0e7c68f7051b73c065002ecdef2 Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Sat, 7 Mar 2015 11:11:36 -0500 Subject: [PATCH 047/186] Fix comments at top of file. --- unpacked/jax/output/CommonHTML/jax.js | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index 38d73e84d..82917ab23 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -3,11 +3,12 @@ /************************************************************* * - * MathJax/jax/output/HTML2/jax.js + * MathJax/jax/output/CommonHTML/jax.js * - * Implements the HTML2 OutputJax that displays mathematics - * using HTML to position the characters from math fonts - * in their proper locations. + * Implements the CommonHTML OutputJax that displays mathematics + * using HTML and CSS to position the characters from math fonts + * in their proper locations. Unlike the HTML-CSS output jax, + * this HTML is browswer and OS independent. * * --------------------------------------------------------------------- * From d6bb1f55d5127f447aee6dbf0a02c730cbe3a8d1 Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Sat, 7 Mar 2015 11:12:01 -0500 Subject: [PATCH 048/186] Fix \mathchoice to use renamed CHTMLcreateNode function --- unpacked/extensions/TeX/mathchoice.js | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/unpacked/extensions/TeX/mathchoice.js b/unpacked/extensions/TeX/mathchoice.js index eae6dc031..193ee77b4 100644 --- a/unpacked/extensions/TeX/mathchoice.js +++ b/unpacked/extensions/TeX/mathchoice.js @@ -77,12 +77,12 @@ MathJax.Hub.Register.StartupHook("TeX Jax Ready",function () { this.SVGsaveData(svg); return svg; }, - toCommonHTML: function (span) { - span = this.CHTMLcreateSpan(span); - this.CHTMLhandleStyle(span); - this.CHTMLhandleColor(span); - this.CHTMLaddChild(span,this.choice(),{}); - return span; + toCommonHTML: function (node) { + node = this.CHTMLcreateNode(node); + this.CHTMLhandleStyle(node); + this.CHTMLhandleColor(node); + this.CHTMLaddChild(node,this.choice(),{}); + return node; } }); From 8b9c18e1b4d54c251edef182abe77c75309cba77 Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Sat, 7 Mar 2015 11:18:55 -0500 Subject: [PATCH 049/186] Only update bbox widths when the boxes exist --- unpacked/jax/output/CommonHTML/jax.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index 82917ab23..7c2893b53 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -1339,7 +1339,7 @@ // // Add the super- and subscripts // - var x = BBOX.w; subbox.w += s; supbox.w += s; + var x = BBOX.w; if (sub) subbox.w += s; if (sup) supbox.w += s; if (!sup) { if (sub) { v = Math.max(v,CHTML.TEX.sub1,sscale*subbox.h-(4/5)*ex,values.subscriptshift); From 7764748a631a0b79d2f1b0b37ba30a06af0bb366 Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Sun, 8 Mar 2015 09:48:49 -0400 Subject: [PATCH 050/186] Get position of overscript correct, and don't combine bboxes unnecessarily. --- unpacked/jax/output/CommonHTML/jax.js | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index 7c2893b53..febd04594 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -1151,7 +1151,7 @@ // Get the maximum width // for (i = 0; i < m; i++) { - bbox[i] = this.CHTMLbboxFor(i); + bbox[i] = this.CHTMLbboxFor(i); bbox[i].x = bbox[i].y = 0; if (this.data[i]) bbox[i].stretch = this.data[i].CHTMLcanStretch("Horizontal"); SCALE = (i === this.base ? 1 : i === this.over ? values.oscale : values.uscale); W = Math.max(W,SCALE*(bbox[i].w + (bbox[i].L||0) + (bbox[i].R||0))); @@ -1206,7 +1206,7 @@ z2 = CHTML.TEX.big_op_spacing3; k = Math.max(z1,z2-Math.max(0,scale*obox.d)); } - obox.x += delta/2; obox.y = BBOX.h + k + z3; + obox.x += delta/2; obox.y = BBOX.h + k + z3 + scale*obox.d; // // Position the overscript // @@ -1270,12 +1270,14 @@ if (boxes[i].x < dx) dx = boxes[i].x; } for (i = 0; i < m; i++) { - var SCALE = (i === this.base ? 1 : i === this.over ? values.oscale : values.uscale); - if (boxes[i].x - dx) { - var node = (i === this.base ? base : i === this.over ? over : under); - node.style.paddingLeft = CHTML.Em((boxes[i].x-dx)/SCALE); + if (this.data[i]) { + var SCALE = (i === this.base ? 1 : i === this.over ? values.oscale : values.uscale); + if (boxes[i].x - dx) { + var node = (i === this.base ? base : i === this.over ? over : under); + node.style.paddingLeft = CHTML.Em((boxes[i].x-dx)/SCALE); + } + CHTML.combineBBoxes(BBOX,boxes[i],boxes[i].x-dx,boxes[i].y,SCALE); } - CHTML.combineBBoxes(BBOX,boxes[i],boxes[i].x-dx,boxes[i].y,SCALE) } } }); From 1e826519af5c76a89efbeb5adf51f2ce8d7054f2 Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Sun, 8 Mar 2015 15:04:57 -0400 Subject: [PATCH 051/186] Add vertical stretchy delimiters --- .../output/CommonHTML/fonts/TeX/fontdata.js | 2 + unpacked/jax/output/CommonHTML/jax.js | 366 ++++++++++++------ 2 files changed, 259 insertions(+), 109 deletions(-) diff --git a/unpacked/jax/output/CommonHTML/fonts/TeX/fontdata.js b/unpacked/jax/output/CommonHTML/fonts/TeX/fontdata.js index 241220928..c253ea12f 100644 --- a/unpacked/jax/output/CommonHTML/fonts/TeX/fontdata.js +++ b/unpacked/jax/output/CommonHTML/fonts/TeX/fontdata.js @@ -1547,6 +1547,8 @@ CHTML.FONTDATA.FONTS[MAIN][0x22EE][0] += 400; // adjust height for \vdots CHTML.FONTDATA.FONTS[MAIN][0x22F1][0] += 700; // adjust height for \ddots + CHTML.FONTDATA.FONTS[SIZE4][0x23AA][0] -= 20; + CHTML.FONTDATA.FONTS[SIZE4][0x23AA][1] += 5; CHTML.FONTDATA.FONTS[SIZE4][0xE154][0] += 200; // adjust height for brace extender CHTML.FONTDATA.FONTS[SIZE4][0xE154][1] += 200; // adjust depth for brace extender CHTML.FONTDATA.FONTS[MAIN][0x2245][2] -= 222; // fix error in character's right bearing diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index febd04594..e79f26447 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -68,6 +68,8 @@ "mjx-stack > mjx-sup": {display:"block"}, "mjx-stack > mjx-sub": {display:"block"}, + "mjx-delim > mjx-char": {transform:"scale(1)"}, // for Firefox to get horizontal alignment better + "mjx-mphantom": {"visibility":"hidden"}, "mjx-merror": { @@ -106,18 +108,6 @@ ".MJXc-mlabeledtr:first-child > .MJXc-mtd": {"padding-top":0} }; - (function () { - for (var i = 0; i < 10; i++) { - var scale = "scaleX(."+i+")"; - STYLES[".MJXc-scale"+i] = { - "-webkit-transform":scale, - "-moz-transform":scale, - "-ms-transform":scale, - "-o-transform":scale, - "transform":scale - } - } - })(); /************************************************************/ @@ -542,42 +532,186 @@ HTML.addElement(node,"span",{className:className},[text]); } else { HTML.addText(node,text); - node.className += " "+className; + node.className = className; } }, - - /********************************************************/ - - DELIMITERS: { - "(": {dir:V}, - "{": {dir:V, w:.58}, - "[": {dir:V}, - "|": {dir:V, w:.275}, - ")": {dir:V}, - "}": {dir:V, w:.58}, - "]": {dir:V}, - "/": {dir:V}, - "\\": {dir:V}, - "\u2223": {dir:V, w:.275}, - "\u2225": {dir:V, w:.55}, - "\u230A": {dir:V, w:.5}, - "\u230B": {dir:V, w:.5}, - "\u2308": {dir:V, w:.5}, - "\u2309": {dir:V, w:.5}, - "\u27E8": {dir:V, w:.5}, - "\u27E9": {dir:V, w:.5}, - "\u2191": {dir:V, w:.65}, - "\u2193": {dir:V, w:.65}, - "\u21D1": {dir:V, w:.75}, - "\u21D3": {dir:V, w:.75}, - "\u2195": {dir:V, w:.65}, - "\u21D5": {dir:V, w:.75}, - "\u27EE": {dir:V, w:.275}, - "\u27EF": {dir:V, w:.275}, - "\u23B0": {dir:V, w:.6}, - "\u23B1": {dir:V, w:.6} + + handleText: function (node,text,variant,bbox) { + if (node.childNodes.length === 0) { + HTML.addElement(node,"mjx-char"); + bbox = CHTML.emptyBBox(); + } + var string = {text:text, i:0, length:text.length}; + if (typeof(variant) === "string") variant = this.FONTDATA.VARIANT[variant]; + if (!variant) variant = this.FONTDATA.VARIANT[MML.VARIANT.NORMAL]; + var list = []; + while (string.i < string.length) { + var n = this.getUnicode(string); + list.push.apply(list,this.getCharList(variant,n)); + } + this.addCharList(node.firstChild,list,bbox); + this.cleanBBox(bbox); + bbox.h += HFUZZ; bbox.d += DFUZZ; + bbox.t += HFUZZ; bbox.b += DFUZZ; + var a = (bbox.H-bbox.D)/2; // center of font (line-height:0) + if (a < bbox.h) {node.firstChild.style.paddingTop = this.Em(bbox.h-a)} + else {node.firstChild.style.marginTop = this.Em(bbox.h-a)} + // ### FIXME: Safari doesn't center, so clip bbox.d at 0 and adjust later? + if (bbox.d+1 > 0) {node.firstChild.style.paddingBottom = this.Em(bbox.d+a)} + else {node.firstChild.style.marginBottom = this.Em(bbox.d+a)} + return bbox; }, - + + /********************************************************/ + + createDelimiter: function (node,code,HW,scale,font) { + var bbox = this.zeroBBox(); + if (!code) { + bbox.w = bbox.r = this.TEX.nulldelimiterspace; + HTML.addElement(node,"mjx-box",{style:{width:bbox.w}}); + return bbox; + } + if (!scale) scale = 1; + if (!(HW instanceof Array)) HW = [HW,HW]; + var hw = HW[1]; HW = HW[0]; + var delim = {alias: code}; + while (delim.alias) { + code = delim.alias; delim = this.FONTDATA.DELIMITERS[code]; + if (!delim) {delim = {HW: [0,this.FONTDATA.VARIANT[MML.VARIANT.NORMAL]]}} + } +// if (delim.load) {HUB.RestartAfter(AJAX.Require(this.fontDir+"/fontdata-"+delim.load+".js"))} + for (var i = 0, m = delim.HW.length; i < m; i++) { + if (delim.HW[i][0]*scale >= HW-.01 || (i == m-1 && !delim.stretch)) { + if (delim.HW[i][2]) scale *= delim.HW[i][2]; + if (delim.HW[i][3]) code = delim.HW[i][3]; + return this.createChar(node,[code,delim.HW[i][1]],scale,font); + } + } + if (!delim.stretch) return bbox; + return this["extendDelimiter"+delim.dir](node,hw,delim.stretch,scale,font); + }, + extendDelimiterV: function (node,H,delim,scale,font) { + node = HTML.addElement(node,"mjx-delim"); var tmp = HTML.Element("span"); + var top, bot, mid, ext, tbox, bbox, mbox, ebox, k = 1; + tbox = this.createChar(tmp,(delim.top||delim.ext),scale,font); top = tmp.removeChild(tmp.firstChild); + bbox = this.createChar(tmp,(delim.bot||delim.ext),scale,font); bot = tmp.removeChild(tmp.firstChild); + mbox = ebox = this.zeroBBox(); + var h = tbox.h + tbox.d + bbox.h + bbox.d; + node.appendChild(top); + if (delim.mid) { + mbox = this.createChar(tmp,delim.mid,scale,font); mid = tmp.removeChild(tmp.firstChild); + h += mbox.h + mbox.d; k = 2; + } + if (delim.min && H < h*delim.min) H = h*delim.min; + if (H > h) { + ebox = this.createChar(tmp,delim.ext,scale,font); ext = tmp.removeChild(tmp.firstChild); + var s = 1.1*(H - h)/k + .2*k; // space to cover by extender + s /= (ebox.h+ebox.d); // scale factor; + var a = (ebox.H-ebox.D)/2; // center of font + ext.style.WebkitTransform = + ext.style.transform = "translate(0,"+CHTML.Em(-(a+ebox.d)+.05)+") scaleY("+s.toFixed(3).replace(/0+$/,"")+")"; + ext.style.WebkitTransformOrigin = + ext.style.transformOrigin = "left "+CHTML.Em(a+ebox.d); + ext.style.paddingTop=ext.style.paddingBottom = 0; + top.style.marginBottom = CHTML.Em((H-h)/k); + node.appendChild(ext); + if (delim.mid) { + node.appendChild(mid); + mid.style.marginBottom = CHTML.Em((H-h)/2); + node.appendChild(ext.cloneNode(true)); HTML.addElement(node,"mjx-block"); + } + } else { + H = h - .25; top.style.marginBottom = "-.25em"; + if (delim.mid) { + node.appendChild(mid); + mid.style.marginBottom = "-.3em"; H -= .1; + } + } + node.appendChild(bot); + return { + w: Math.max(tbox.w,ebox.w,bbox.w,mbox.w), + l: Math.min(tbox.l,ebox.l,bbox.l,mbox.l), + r: Math.max(tbox.r,ebox.r,bbox.r,mbox.r), + h: H-bbox.d, d: bbox.d, t: H-bbox.d, b: bbox.d + }; + }, + /* + * extendDelimiterH: function (span,W,delim,scale,font) { + * var stack = this.createStack(span,true); + * var left = this.createBox(stack), right = this.createBox(stack); + * this.createChar(left,(delim.left||delim.rep),scale,font); + * this.createChar(right,(delim.right||delim.rep),scale,font); + * var rep = this.Element("span"); this.createChar(rep,delim.rep,scale,font); + * var mid = {bbox: {h:-this.BIGDIMEN, d:-this.BIGDIMEN}}, REP; + * this.placeBox(left,-left.bbox.lw,0,true); + * var w = (left.bbox.rw - left.bbox.lw) + (right.bbox.rw - right.bbox.lw) - .05, + * x = left.bbox.rw - left.bbox.lw - .025, dx; + * if (delim.mid) { + * mid = this.createBox(stack); this.createChar(mid,delim.mid,scale,font); + * w += mid.bbox.w; + * } + * if (delim.min && W < w*delim.min) {W = w*delim.min} + * if (W > w) { + * var rW = rep.bbox.rw-rep.bbox.lw, rw = rW - .05, n, N, k = (delim.mid ? 2 : 1); + * N = n = Math.min(Math.ceil((W-w)/(k*rw)), this.maxStretchyParts); + * if (!delim.fillExtenders) {rw = (W-w)/(k*n)} + * dx = (n/(n+1))*(rW - rw); rw = rW - dx; x -= rep.bbox.lw + dx; + * while (k-- > 0) { + * while (n-- > 0) { + * if (!this.cloneNodeBug) {REP = rep.cloneNode(true)} + * else {REP = this.Element("span"); this.createChar(REP,delim.rep,scale,font)} + * REP.bbox = rep.bbox; + * this.placeBox(this.addBox(stack,REP),x,0,true); x += rw; + * } + * if (delim.mid && k) {this.placeBox(mid,x,0,true); x += mid.bbox.w - dx; n = N} + * } + * } else { + * x -= (w - W)/2; + * if (delim.mid) {this.placeBox(mid,x,0,true); x += mid.bbox.w}; + * x -= (w - W)/2; + * } + * this.placeBox(right,x,0,true); + * span.bbox = { + * w: x+right.bbox.rw, lw: 0, rw: x+right.bbox.rw, + * H: Math.max(left.bbox.h,rep.bbox.h,right.bbox.h,mid.bbox.h), + * D: Math.max(left.bbox.d,rep.bbox.d,right.bbox.d,mid.bbox.d), + * h: rep.bbox.h, d: rep.bbox.d, exactW: true + * } + * span.scale = scale; + * span.isMultiChar = true; + * this.setStackWidth(stack,span.bbox.w); + * }, + */ + createChar: function (node,data,scale,font) { + // ### FIXME: handle cache better (by data[1] and font) + var text = "", variant = {fonts: [data[1]], noRemap:true, cache:{}}; + if (font && font === MML.VARIANT.BOLD) variant.fonts = [data[1]+"-bold",data[1]]; + if (typeof(data[1]) !== "string") variant = data[1]; + if (data[0] instanceof Array) { + for (var i = 0, m = data[0].length; i < m; i++) text += String.fromCharCode(data[0][i]); + } else text = String.fromCharCode(data[0]); + if (data[4]) scale *= data[4]; + if (scale !== 1) node.style.fontSize = this.Percent(scale); + var bbox = this.handleText(node,text,variant); + if (data[2]) { // x offset + node.style.paddingLeft = this.Em(data[2]); + bbox.w += data[2]; bbox.r += data[2]; + } + if (data[3]) { // y offset + node.style.verticalAlign = this.Em(data[3]); + bbox.h += data[3]; if (bbox.h < 0) bbox.h = 0; + } + if (data[5]) { // extra height + node.style.marginTop = this.Em(data[5]); + bbox.h += data[5]; bbox.t += data[5]; + } + if (data[6]) { // extra depth + node.style.marginBottom = this.Em(data[6]); + bbox.d += data[6]; bbox.b += data[6]; + } + return bbox; + }, + /********************************************************/ // @@ -614,6 +748,10 @@ return parseFloat(m); }, + Percent: function (m) { + return (100*m).toFixed(1).replace(/\.?0+$/,"") + "%"; + }, + /********************************************************/ zeroBBox: function () { @@ -654,7 +792,7 @@ /********************************************************/ arrayEntry: function (a,i) {return a[Math.max(0,Math.min(i,a.length-1))]} - + }); /**********************************************************/ @@ -699,10 +837,12 @@ }, CHTMLstretchChildV: function (i,H,D) { var data = this.data[i]; - if (data && data.CHTMLcanStretch("Vertical",H,D)) { - var bbox = this.CHTML, dbox = data.CHTML, w = dbox.w; - if (dbox.h !== H || dbox.d !== D) { + if (data) { + var bbox = this.CHTML; + if (bbox.stretch || (bbox.stretch == null && data.CHTMLcanStretch("Vertical",H,D))) { + var w = data.CHTML.w; data.CHTMLstretchV(H,D); + var dbox = data.CHTML; bbox.w += dbox.w - w; if (dbox.h > bbox.h) bbox.h = dbox.h; if (dbox.d > bbox.d) bbox.d = dbox.d; @@ -725,6 +865,18 @@ } }, + CHTMLcanStretch: function (direction,H,D) { + var stretch = false; + if (this.isEmbellished()) { + var core = this.Core(); + if (core && core !== this) stretch = core.CHTMLcanStretch(direction,H,D); + } + this.CHTML.stretch = stretch; + return stretch; + }, + CHTMLstretchV: function (h,d) {}, + CHTMLstretchH: function (w) {}, + CHTMLcreateNode: function (node) { if (!this.CHTML) this.CHTML = {}; this.CHTML = CHTML.zeroBBox(); @@ -773,25 +925,7 @@ }, CHTMLhandleText: function (node,text,variant) { - if (node.childNodes.length === 0) { - HTML.addElement(node,"mjx-char"); - this.CHTML = CHTML.emptyBBox(); - } - var bbox = this.CHTML, string = {text:text, i:0, length:text.length}; - if (typeof(variant) === "string") variant = CHTML.FONTDATA.VARIANT[variant]; - if (!variant) {variant = CHTML.FONTDATA.VARIANT[MML.VARIANT.NORMAL]} - var list = []; - while (string.i < string.length) { - var n = CHTML.getUnicode(string); - list.push.apply(list,CHTML.getCharList(variant,n)); - } - CHTML.addCharList(node.firstChild,list,bbox); - CHTML.cleanBBox(bbox); - bbox.h += HFUZZ; bbox.d += DFUZZ; - bbox.t += HFUZZ; bbox.b += DFUZZ; - var a = (bbox.H-bbox.D)/2; // center of font (line-height:0) - node.firstChild.style.marginTop = CHTML.Em(bbox.h-a); - node.firstChild.style.marginBottom = CHTML.Em(bbox.d+a); + this.CHTML = CHTML.handleText(node,text,variant,this.CHTML); }, CHTMLbboxFor: function (n) { @@ -821,17 +955,7 @@ while (mml && mml.data.length < 2 && (mml.type === "mrow" || mml.type === "texatom")) mml = mml.data[0]; return !!mml; - }, - - CHTMLcanStretch: function (direction,H,D) { - if (this.isEmbellished()) { - var core = this.Core(); - if (core && core !== this) {return core.CHTMLcanStretch(direction,H,D)} - } - return false; - }, - CHTMLstretchV: function (h,d) {}, - CHTMLstretchH: function (w) {} + } }); @@ -889,20 +1013,24 @@ var values = this.getValues("displaystyle","largeop","mathvariant"); values.text = this.data.join(""); - this.CHTMLadjustAccent(values); - this.CHTMLadjustVariant(values); + if (values.text == "") { + if (this.fence) node.style.width = CHTML.Em(CHTML.TEX.nulldelimiterspace); + } else { + this.CHTMLadjustAccent(values); + this.CHTMLadjustVariant(values); - for (var i = 0, m = this.data.length; i < m; i++) { - this.CHTMLaddChild(node,i,{childOptions:{ - variant: values.mathvariant, - remap: this.remap, - remapchars: values.mapchars - }}); + for (var i = 0, m = this.data.length; i < m; i++) { + this.CHTMLaddChild(node,i,{childOptions:{ + variant: values.mathvariant, + remap: this.remap, + remapchars: values.mapchars + }}); + } + if (values.text.length !== 1) delete this.CHTML.skew; + if (values.largeop) this.CHTMLcenterOp(node); } - if (values.text.length !== 1) delete this.CHTML.skew; - if (values.largeop) this.CHTMLcenterOp(node); - CHTML.cleanBBox(this.CHTML); + CHTML.cleanBBox(this.CHTML); this.CHTMLhandleSpace(node); this.CHTMLhandleStyle(node); this.CHTMLhandleColor(node); @@ -960,35 +1088,54 @@ } }, CHTMLcanStretch: function (direction,H,D) { - if (!this.Get("stretchy")) {return false} - var c = this.data.join(""); - if (c.length > 1) {return false} - c = CHTML.DELIMITERS[c]; + if (!this.Get("stretchy")) return false; + var c = this.data.join(""); if (c.length !== 1) return false; + var values = {text: c}; + this.CHTMLadjustAccent(values); + if (values.remapchars) c = values.remapchars[c]||c; + c = CHTML.FONTDATA.DELIMITERS[c.charCodeAt(0)]; var stretch = (c && c.dir === direction.substr(0,1)); if (stretch) { stretch = (this.CHTML.h !== H || this.CHTML.d !== D || - (this.Get("minsize",true) || this.Get("maxsize",true))); + !!this.Get("minsize",true) || !!this.Get("maxsize",true)); + if (stretch) this.CHTML.stretch = true; } return stretch; }, CHTMLstretchV: function (h,d) { - var node = this.CHTMLnodeElement(), bbox = this.CHTML; //bbox.w = .4; // ## adjust width + var node = this.CHTMLnodeElement(), bbox = this.CHTML; var values = this.getValues("symmetric","maxsize","minsize"); - var a = CHTML.TEX.axis_height; + // + // Determine the height needed + // + var H, a = CHTML.TEX.axis_height; if (values.symmetric) {H = 2*Math.max(h-a,d+a)} else {H = h + d} values.maxsize = CHTML.length2em(values.maxsize,bbox.h+bbox.d); values.minsize = CHTML.length2em(values.minsize,bbox.h+bbox.d); H = Math.max(values.minsize,Math.min(values.maxsize,H)); - var scale = H/(bbox.h+bbox.d-.3); // ### adjusted for extra tall bbox - var box = HTML.Element("span",{style:{"font-size":CHTML.Em(scale)}}); - if (scale > 1.25) { - var sX = Math.ceil(1.25/scale * 10); - box.className = "MJXc-right MJXc-scale"+sX; - box.style.marginLeft = CHTML.Em(bbox.w*(sX/10-1)+.07); - bbox.w *= scale*sX/10; + // + // If we are not already stretched to this height + // + if (H !== bbox.sH) { + // + // Get a delimiter of the proper height and save the height + // + if (H != values.minsize) + {H = [Math.max(H*CHTML.TEX.delimiterfactor/1000,H-CHTML.TEX.delimitershortfall),H]} + while (node.firstChild) node.removeChild(node.firstChild); + this.CHTML = bbox = CHTML.createDelimiter(node,this.data.join("").charCodeAt(0),H,1); + bbox.sH = (H instanceof Array ? H[1] : H); + // + // Reposition as needed + // + if (values.symmetric) {H = (bbox.h + bbox.d)/2 + a} + else {H = (bbox.h + bbox.d) * h/(h + d)} + H -= bbox.h; + if (Math.abs(H) > .05) { + node.style.verticalAlign = CHTML.Em(H); + bbox.h += H; bbox.d -= H; bbox.t += H; bbox.b -= H; + } } - box.appendChild(node.firstChild); node.appendChild(box); - if (values.symmetric) node.style.verticalAlign = CHTML.Em(a*(1-scale)); } }); @@ -1562,7 +1709,7 @@ MML.mrow.Augment({ toCommonHTML: function (node) { node = this.CHTMLdefaultNode(node); - var H = this.CHTML.h, D = this.CHTML.d; + var bbox = this.CHTML, H = bbox.h, D = bbox.d; for (var i = 0, m = this.data.length; i < m; i++) this.CHTMLstretchChildV(i,H,D); return node; } @@ -1588,9 +1735,10 @@ MML.TeXAtom.Augment({ toCommonHTML: function (node) { - node = this.CHTMLdefaultNode(node); // ### FIXME: handle TeX class? - node.className = "MJXc-mrow"; + node = this.CHTMLdefaultNode(node); + var H = this.CHTML.h, D = this.CHTML.d; + for (var i = 0, m = this.data.length; i < m; i++) this.CHTMLstretchChildV(i,H,D); return node; } }); From af043917bdc132172b3e0027e7f82d7ab4607cd6 Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Mon, 9 Mar 2015 09:31:09 -0400 Subject: [PATCH 052/186] Handle horizontal stretchy characters. (still need to add some font data and check overbraces when extenders aren't needed.) --- unpacked/jax/output/CommonHTML/jax.js | 183 ++++++++++++++++---------- 1 file changed, 111 insertions(+), 72 deletions(-) diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index e79f26447..a10a26123 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -68,7 +68,13 @@ "mjx-stack > mjx-sup": {display:"block"}, "mjx-stack > mjx-sub": {display:"block"}, - "mjx-delim > mjx-char": {transform:"scale(1)"}, // for Firefox to get horizontal alignment better + "mjx-delim-v > mjx-char": {transform:"scale(1)"}, // for Firefox to get horizontal alignment better + "mjx-delim-h": {display:"block"}, + "mjx-delim-h > mjx-char": { + transform:"scale(1)", + display:"inline-block", + "vertical-align":"top" + }, "mjx-mphantom": {"visibility":"hidden"}, @@ -591,7 +597,7 @@ return this["extendDelimiter"+delim.dir](node,hw,delim.stretch,scale,font); }, extendDelimiterV: function (node,H,delim,scale,font) { - node = HTML.addElement(node,"mjx-delim"); var tmp = HTML.Element("span"); + node = HTML.addElement(node,"mjx-delim-v"); var tmp = HTML.Element("span"); var top, bot, mid, ext, tbox, bbox, mbox, ebox, k = 1; tbox = this.createChar(tmp,(delim.top||delim.ext),scale,font); top = tmp.removeChild(tmp.firstChild); bbox = this.createChar(tmp,(delim.bot||delim.ext),scale,font); bot = tmp.removeChild(tmp.firstChild); @@ -608,17 +614,17 @@ var s = 1.1*(H - h)/k + .2*k; // space to cover by extender s /= (ebox.h+ebox.d); // scale factor; var a = (ebox.H-ebox.D)/2; // center of font - ext.style.WebkitTransform = - ext.style.transform = "translate(0,"+CHTML.Em(-(a+ebox.d)+.05)+") scaleY("+s.toFixed(3).replace(/0+$/,"")+")"; - ext.style.WebkitTransformOrigin = - ext.style.transformOrigin = "left "+CHTML.Em(a+ebox.d); + this.Transform(ext, + "translateY("+CHTML.Em(-(a+ebox.d)+.05)+") scaleY("+s.toFixed(3).replace(/0+$/,"")+")", + "left "+CHTML.Em(a+ebox.d) + ); ext.style.paddingTop=ext.style.paddingBottom = 0; top.style.marginBottom = CHTML.Em((H-h)/k); node.appendChild(ext); if (delim.mid) { node.appendChild(mid); - mid.style.marginBottom = CHTML.Em((H-h)/2); - node.appendChild(ext.cloneNode(true)); HTML.addElement(node,"mjx-block"); + mid.style.marginBottom = top.style.marginBottom; + node.appendChild(ext.cloneNode(true)); } } else { H = h - .25; top.style.marginBottom = "-.25em"; @@ -635,53 +641,65 @@ h: H-bbox.d, d: bbox.d, t: H-bbox.d, b: bbox.d }; }, - /* - * extendDelimiterH: function (span,W,delim,scale,font) { - * var stack = this.createStack(span,true); - * var left = this.createBox(stack), right = this.createBox(stack); - * this.createChar(left,(delim.left||delim.rep),scale,font); - * this.createChar(right,(delim.right||delim.rep),scale,font); - * var rep = this.Element("span"); this.createChar(rep,delim.rep,scale,font); - * var mid = {bbox: {h:-this.BIGDIMEN, d:-this.BIGDIMEN}}, REP; - * this.placeBox(left,-left.bbox.lw,0,true); - * var w = (left.bbox.rw - left.bbox.lw) + (right.bbox.rw - right.bbox.lw) - .05, - * x = left.bbox.rw - left.bbox.lw - .025, dx; - * if (delim.mid) { - * mid = this.createBox(stack); this.createChar(mid,delim.mid,scale,font); - * w += mid.bbox.w; - * } - * if (delim.min && W < w*delim.min) {W = w*delim.min} - * if (W > w) { - * var rW = rep.bbox.rw-rep.bbox.lw, rw = rW - .05, n, N, k = (delim.mid ? 2 : 1); - * N = n = Math.min(Math.ceil((W-w)/(k*rw)), this.maxStretchyParts); - * if (!delim.fillExtenders) {rw = (W-w)/(k*n)} - * dx = (n/(n+1))*(rW - rw); rw = rW - dx; x -= rep.bbox.lw + dx; - * while (k-- > 0) { - * while (n-- > 0) { - * if (!this.cloneNodeBug) {REP = rep.cloneNode(true)} - * else {REP = this.Element("span"); this.createChar(REP,delim.rep,scale,font)} - * REP.bbox = rep.bbox; - * this.placeBox(this.addBox(stack,REP),x,0,true); x += rw; - * } - * if (delim.mid && k) {this.placeBox(mid,x,0,true); x += mid.bbox.w - dx; n = N} - * } - * } else { - * x -= (w - W)/2; - * if (delim.mid) {this.placeBox(mid,x,0,true); x += mid.bbox.w}; - * x -= (w - W)/2; - * } - * this.placeBox(right,x,0,true); - * span.bbox = { - * w: x+right.bbox.rw, lw: 0, rw: x+right.bbox.rw, - * H: Math.max(left.bbox.h,rep.bbox.h,right.bbox.h,mid.bbox.h), - * D: Math.max(left.bbox.d,rep.bbox.d,right.bbox.d,mid.bbox.d), - * h: rep.bbox.h, d: rep.bbox.d, exactW: true - * } - * span.scale = scale; - * span.isMultiChar = true; - * this.setStackWidth(stack,span.bbox.w); - * }, - */ + extendDelimiterH: function (node,W,delim,scale,font) { + node = HTML.addElement(node,"mjx-delim-h"); var tmp = HTML.Element("span"); + var left, right, mid, ext, ext2, lbox, rbox, mbox, ebox, k = 1; + lbox = this.createChar(tmp,(delim.left||delim.rep),scale,font); left = tmp.removeChild(tmp.firstChild); + rbox = this.createChar(tmp,(delim.right||delim.rep),scale,font); right = tmp.removeChild(tmp.firstChild); + mbox = ebox = this.emptyBBox(); + node.appendChild(left); left.style.marginLeft = CHTML.Em(-lbox.l); + var w = (lbox.r - lbox.l) + (rbox.r - rbox.l) - .05; + if (delim.mid) { + mbox = this.createChar(tmp,delim.mid,scale,font); + mid = tmp.removeChild(tmp.firstChild); + w += mbox.w; k = 2; + } + if (delim.min && W < w*delim.min) W = w*delim.min; + if (W > w) { + ebox = this.createChar(tmp,delim.rep,scale,font); ext = tmp.removeChild(tmp.firstChild); + var s = (W - w)/k + .2; // space to cover by extender + s /= (ebox.r - ebox.l); // scale factor + this.Transform(ext, + "translateX("+CHTML.Em(-ebox.l-.1)+") scaleX("+s.toFixed(3).replace(/0+$/,"")+")", + CHTML.Em(ebox.l)+" center" + ); + ext.style.width = 0; + right.style.marginLeft = CHTML.Em((W-w-(lbox.w-lbox.r)-rbox.l)/k); + node.appendChild(ext); + if (delim.mid) { + node.appendChild(mid); + mid.style.marginLeft = right.style.marginLeft; + ext2 = node.appendChild(ext.cloneNode(true)); + } + } else { + W = w - .1; right.style.marginLeft = "-.1em"; + if (delim.mid) { + node.appendChild(mid); + mid.style.marginLeft = "-.1em"; W -= .1; + } + } + this.adjustTops([left,ext,mid,ext2,right]); + var t = Math.max(lbox.t,rbox.t,ebox.t,mbox.t), + b = Math.max(lbox.b,rbox.b,ebox.b,mbox.b); + node.appendChild(right); + if (t !== ebox.h) node.style.marginTop = CHTML.Em(ebox.h - t); + if (b !== ebox.d) node.style.marginBottom = CHTML.Em(ebox.d - b); + return {w: W, l: 0, r: W, t: t, b: b, h: ebox.h, d: ebox.d}; + }, + adjustTops: function (nodes) { + // + // to get alignment right in horizontal delimiters, we force all + // the elements to the same height and align to top + // + var i, m = nodes.length, T = 0; + for (i = 0; i < m; i++) { + if (nodes[i] && nodes[i].style.paddingTop) { + var t = this.unEm(nodes[i].style.paddingTop); + if (t > T) T = t; + } + } + for (i = 0; i < m; i++) if (nodes[i]) nodes[i].style.paddingTop = CHTML.Em(T); + }, createChar: function (node,data,scale,font) { // ### FIXME: handle cache better (by data[1] and font) var text = "", variant = {fonts: [data[1]], noRemap:true, cache:{}}; @@ -751,6 +769,13 @@ Percent: function (m) { return (100*m).toFixed(1).replace(/\.?0+$/,"") + "%"; }, + + Transform: function (node,trans,origin) { + var style = node.style; + style.transform = style.WebkitTransform = style.MozTransform = trans; + if (origin) + style.transformOrigin = style.WebkitTransformOrigin = style.MozTransformOrigin = origin; + }, /********************************************************/ @@ -851,16 +876,13 @@ } } }, - CHTMLstretchChildH: function (i,W) { + CHTMLstretchChildH: function (i,W,nodes) { var data = this.data[i]; if (data) { - var bbox = this.CHTML, dbox = data.CHTML; - if (dbox.w !== W) { - data.CHTMLstretchH(W); - if (dbox.h > bbox.h) bbox.h = dbox.h; - if (dbox.d > bbox.d) bbox.d = dbox.d; - if (dbox.t > bbox.t) bbox.t = dbox.t; - if (dbox.b > bbox.b) bbox.b = dbox.b; + var bbox = this.CHTML; + if (bbox.stretch || (bbox.stretch == null && data.CHTMLcanStretch("Horizontal",W))) { + data.CHTMLstretchH(nodes[i].firstChild,W); + MathJax.Hub.Insert(this.CHTML,data.CHTML); } } }, @@ -875,7 +897,7 @@ return stretch; }, CHTMLstretchV: function (h,d) {}, - CHTMLstretchH: function (w) {}, + CHTMLstretchH: function (node,w) {}, CHTMLcreateNode: function (node) { if (!this.CHTML) this.CHTML = {}; @@ -1136,7 +1158,23 @@ bbox.h += H; bbox.d -= H; bbox.t += H; bbox.b -= H; } } + }, + CHTMLstretchH: function (node,W) { + var bbox = this.CHTML; + var values = this.getValues("maxsize","minsize","mathvariant","fontweight"); + // FIXME: should take style="font-weight:bold" into account as well + if ((values.fontweight === "bold" || parseInt(values.fontweight) >= 600) && + !this.Get("mathvariant",true)) values.mathvariant = MML.VARIANT.BOLD; + values.maxsize = CHTML.length2em(values.maxsize,bbox.w); + values.minsize = CHTML.length2em(values.minsize,bbox.w); + W = Math.max(values.minsize,Math.min(values.maxsize,W)); + if (W !== bbox.sW) { + while (node.firstChild) node.removeChild(node.firstChild); + this.CHTML = bbox = CHTML.createDelimiter(node,this.data.join("").charCodeAt(0),W,1,values.mathvariant); + bbox.sW = W; + } } + }); /********************************************************/ @@ -1236,10 +1274,10 @@ node = this.CHTMLdefaultNode(node,{ childNodes:types, noBBox:true, forceChild:true, minChildren: 2 }); - var base, under, over; - base = node.removeChild(node.firstChild); - under = over = node.removeChild(node.firstChild); - if (node.firstChild) over = node.removeChild(node.firstChild); + var base, under, over, nodes = []; + nodes[0] = base = node.removeChild(node.firstChild); + nodes[1] = under = over = node.removeChild(node.firstChild); + if (node.firstChild) nodes[2] = over = node.removeChild(node.firstChild); // // Get the scale of the base and its limits // @@ -1247,7 +1285,7 @@ // // Get the bounding boxes and the maximum width // - var boxes = [], W = this.CHTMLgetBBoxes(boxes,values); + var boxes = [], W = this.CHTMLgetBBoxes(boxes,nodes,values); var bbox = boxes[this.base], BBOX = this.CHTML; BBOX.w = W; BBOX.h = bbox.h; BBOX.d = bbox.d; // modified below // @@ -1290,7 +1328,7 @@ // Get the bounding boxes for the children, stretch // any stretchable elements, and compute the maximum width // - CHTMLgetBBoxes: function (bbox,values) { + CHTMLgetBBoxes: function (bbox,nodes,values) { var i, m = this.data.length, SCALE, w = -BIGDIMEN, // maximum width of non-stretchy items W = w; // maximum width of all items @@ -1310,8 +1348,9 @@ // for (i = 0; i < m; i++) { if (bbox[i].stretch) { - SCALE = (i === this.base ? 1 : i === this.over ? valuses.oscale : values.uscale); - this.CHTMLstretchChildH(i,w/SCALE); + SCALE = (i === this.base ? 1 : i === this.over ? values.oscale : values.uscale); + this.CHTMLstretchChildH(i,w/SCALE,nodes); + bbox[i] = this.CHTMLbboxFor(i); bbox[i].x = bbox[i].y = 0; W = Math.max(W,SCALE*(bbox[i].w + (bbox[i].L||0) + (bbox[i].R||0))); } } From f629bfe7835476e8134150a40f4539bd6c9deb06 Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Mon, 9 Mar 2015 10:14:39 -0400 Subject: [PATCH 053/186] Better bounding boxes for horizontal stretchy characters, and handle case where no extenders are needed. --- unpacked/jax/output/CommonHTML/jax.js | 32 ++++++++++++++++++--------- 1 file changed, 21 insertions(+), 11 deletions(-) diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index a10a26123..b2d18b9be 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -646,17 +646,27 @@ var left, right, mid, ext, ext2, lbox, rbox, mbox, ebox, k = 1; lbox = this.createChar(tmp,(delim.left||delim.rep),scale,font); left = tmp.removeChild(tmp.firstChild); rbox = this.createChar(tmp,(delim.right||delim.rep),scale,font); right = tmp.removeChild(tmp.firstChild); - mbox = ebox = this.emptyBBox(); - node.appendChild(left); left.style.marginLeft = CHTML.Em(-lbox.l); + node.appendChild(left); + var BBOX = this.zeroBBox(); + BBOX.h = Math.max(lbox.h,rbox.h); BBOX.d = Math.max(lbox.d,rbox.d); + left.style.marginLeft = CHTML.Em(-lbox.l); left.style.marginRight = CHTML.Em(lbox.r-lbox.w); + right.style.marginleft = CHTML.Em(-rbox.l); right.style.marginRight = CHTML.Em(rbox.r-rbox.w); var w = (lbox.r - lbox.l) + (rbox.r - rbox.l) - .05; if (delim.mid) { mbox = this.createChar(tmp,delim.mid,scale,font); mid = tmp.removeChild(tmp.firstChild); w += mbox.w; k = 2; + if (mbox.h > BBOX.h) BBOX.h = mbox.h; + if (mbox.d < BBOX.d) BBOX.d = mbox.d; } if (delim.min && W < w*delim.min) W = w*delim.min; + right.style.marginLeft = CHTML.Em((W-w-rbox.l)/k); + BBOX.w = BBOX.r = W; BBOX.H = lbox.H; BBOX.D = lbox.D; if (W > w) { ebox = this.createChar(tmp,delim.rep,scale,font); ext = tmp.removeChild(tmp.firstChild); + if (ebox.h > BBOX.h) BBOX.h = ebox.h; + if (ebox.d < BBOX.d) BBOX.d = ebox.d; + BBOX.H = ebox.H; BBOX.D = ebox.D; var s = (W - w)/k + .2; // space to cover by extender s /= (ebox.r - ebox.l); // scale factor this.Transform(ext, @@ -664,7 +674,6 @@ CHTML.Em(ebox.l)+" center" ); ext.style.width = 0; - right.style.marginLeft = CHTML.Em((W-w-(lbox.w-lbox.r)-rbox.l)/k); node.appendChild(ext); if (delim.mid) { node.appendChild(mid); @@ -672,19 +681,20 @@ ext2 = node.appendChild(ext.cloneNode(true)); } } else { - W = w - .1; right.style.marginLeft = "-.1em"; if (delim.mid) { node.appendChild(mid); - mid.style.marginLeft = "-.1em"; W -= .1; + mid.style.marginLeft = CHTML.Em((W-w)/k); } } - this.adjustTops([left,ext,mid,ext2,right]); - var t = Math.max(lbox.t,rbox.t,ebox.t,mbox.t), - b = Math.max(lbox.b,rbox.b,ebox.b,mbox.b); node.appendChild(right); - if (t !== ebox.h) node.style.marginTop = CHTML.Em(ebox.h - t); - if (b !== ebox.d) node.style.marginBottom = CHTML.Em(ebox.d - b); - return {w: W, l: 0, r: W, t: t, b: b, h: ebox.h, d: ebox.d}; + this.adjustTops([left,ext,mid,ext2,right]); + BBOX.t = BBOX.h; BBOX.b = BBOX.d; + if (ext) { + if (BBOX.h !== ebox.h) node.style.marginTop = CHTML.Em(ebox.h - BBOX.h); + if (BBOX.d !== ebox.d) node.style.marginBottom = CHTML.Em(ebox.d - BBOX.d); + BBOX.h = ebox.h; BBOX.d = ebox.d; + } + return BBOX; }, adjustTops: function (nodes) { // From 36da633619f5a03d46bce95a221c2a54e1030704 Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Mon, 9 Mar 2015 15:40:26 -0400 Subject: [PATCH 054/186] Implement TeX rules for radicals. --- unpacked/jax/output/CommonHTML/jax.js | 110 ++++++++++++++------------ 1 file changed, 59 insertions(+), 51 deletions(-) diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index b2d18b9be..77ce12f08 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -76,7 +76,9 @@ "vertical-align":"top" }, - "mjx-mphantom": {"visibility":"hidden"}, + "mjx-surd": {"vertical-align":"top!important"}, + + "mjx-mphantom": {visibility:"hidden"}, "mjx-merror": { "background-color":"#FFFF88", @@ -100,9 +102,6 @@ /*********************************/ - ".MJXc-surd": {"vertical-align":"top"}, - ".MJXc-surd > span": {"display":"block!important"}, - ".MJXc-mtable": {"vertical-align":AXISHEIGHT+"em", "margin":"0 .125em"}, ".MJXc-mtable > span": {"display":"inline-table!important", "vertical-align":"middle"}, ".MJXc-mtr": {"display":"table-row!important"}, @@ -421,6 +420,8 @@ big_op_spacing4: .6, big_op_spacing5: .1, + surd_height: .1, + scriptspace: .05, nulldelimiterspace: .12, delimiterfactor: 901, @@ -590,7 +591,9 @@ if (delim.HW[i][0]*scale >= HW-.01 || (i == m-1 && !delim.stretch)) { if (delim.HW[i][2]) scale *= delim.HW[i][2]; if (delim.HW[i][3]) code = delim.HW[i][3]; - return this.createChar(node,[code,delim.HW[i][1]],scale,font); + var BBOX = this.createChar(node,[code,delim.HW[i][1]],scale,font); + BBOX.offset = .6 * BBOX.w; + return BBOX; } } if (!delim.stretch) return bbox; @@ -611,6 +614,10 @@ if (delim.min && H < h*delim.min) H = h*delim.min; if (H > h) { ebox = this.createChar(tmp,delim.ext,scale,font); ext = tmp.removeChild(tmp.firstChild); + if (delim.fullExtenders) { + var n = Math.ceil((H-h)/(k*(ebox.h+ebox.d)*.9)); + H = .9*n*k*(ebox.h+ebox.d) + h; + } var s = 1.1*(H - h)/k + .2*k; // space to cover by extender s /= (ebox.h+ebox.d); // scale factor; var a = (ebox.H-ebox.D)/2; // center of font @@ -634,12 +641,14 @@ } } node.appendChild(bot); - return { + var BBOX = { w: Math.max(tbox.w,ebox.w,bbox.w,mbox.w), l: Math.min(tbox.l,ebox.l,bbox.l,mbox.l), r: Math.max(tbox.r,ebox.r,bbox.r,mbox.r), h: H-bbox.d, d: bbox.d, t: H-bbox.d, b: bbox.d }; + BBOX.offset = .5 * BBOX.w; + return BBOX; }, extendDelimiterH: function (node,W,delim,scale,font) { node = HTML.addElement(node,"mjx-delim-h"); var tmp = HTML.Element("span"); @@ -970,7 +979,7 @@ CHTMLdrawBBox: function (node) { var bbox = this.CHTML; HTML.addElement(node.parentNode,"mjx-box", - {style:{opacity:.5,"margin-left":CHTML.Em(-bbox.w-(bbox.R||0))}},[ + {style:{opacity:.25,"margin-left":CHTML.Em(-bbox.w-(bbox.R||0))}},[ ["mjx-box",{style:{ height:CHTML.Em(bbox.h),width:CHTML.Em(bbox.w),"background-color":"red"} }], @@ -1667,58 +1676,57 @@ MML.msqrt.Augment({ toCommonHTML: function (node) { node = this.CHTMLdefaultNode(node,{ - childNodes:"mjx-box", forceChild:true, noBBox:true + childNodes:["mjx-box","mjx-root"], forceChild:true, noBBox:true }); - this.CHTMLlayoutRoot(node,node.firstChild); - return node; + var base = node.firstChild; + var sqrt = HTML.addElement(node,"mjx-box"); sqrt.appendChild(base); + var bbox = this.CHTMLbboxFor(0), BBOX = this.CHTML = CHTML.emptyBBox(); + var t = CHTML.TEX.surd_height, p = t, q, H; + if (this.Get("displaystyle")) p = CHTML.TEX.x_height; + q = t + p/4; + H = bbox.h + bbox.d + q + t; + var surd = HTML.Element("mjx-surd"); sqrt.insertBefore(surd,base); + var sbox = CHTML.createDelimiter(surd,0x221A,H,1); + if (sbox.h + sbox.d > H) q = ((sbox.h+sbox.d) - (H-t))/2; + H = bbox.h + q + t; + var x = this.CHTMLaddRoot(node,sbox,sbox.h+sbox.d-H); + surd.style.verticalAlign = CHTML.Em(H-sbox.h); + base.style.paddingTop = CHTML.Em(q); + base.style.borderTop = CHTML.Em(t)+" solid"; + sqrt.style.paddingTop = CHTML.Em(t); + bbox.h += q + 2*t; + CHTML.combineBBoxes(BBOX,sbox,x,H-sbox.h,1); + CHTML.combineBBoxes(BBOX,bbox,x+sbox.w,0,1); + return node; }, - CHTMLlayoutRoot: function (node,base) { - var bbox = this.CHTMLbboxFor(0); - var scale = Math.ceil((bbox.h+bbox.d+.14)*100), t = CHTML.Em(14/scale); - var surd = HTML.Element("span",{className:"MJXc-surd"},[ - ["span",{style:{"font-size":scale+"%","margin-top":t}},["\u221A"]] - ]); - var root = HTML.Element("span",{className:"MJXc-root"},[ - ["span",{className:"MJXc-rule",style:{"border-top":".08em solid"}}] - ]); - var W = (1.2/2.2)*scale/100; // width-of-surd = (height/H-to-W-ratio) - if (scale > 150) { - var sX = Math.ceil(150/scale * 10); - surd.firstChild.className = "MJXc-right MJXc-scale"+sX; - surd.firstChild.style.marginLeft = CHTML.Em(W*(sX/10-1)/scale*100); - W = W*sX/10; - root.firstChild.style.borderTopWidth = CHTML.Em(.08/Math.sqrt(sX/10)); - } - root.appendChild(base); - node.appendChild(surd); - node.appendChild(root); - this.CHTML.h = bbox.h + .18; this.CHTML.d = bbox.d; - this.CHTML.w = bbox.w + W; - return node; - } + CHTMLaddRoot: function () {return 0} }); /********************************************************/ MML.mroot.Augment({ - toCommonHTML: function (node) { - node = this.CHTMLdefaultNode(node,{ - childNodes:"mjx-box", forceChild:true, noBBox:true - }); - var rbox = this.CHTMLbboxFor(1), root = node.removeChild(node.lastChild); - var sqrt = this.CHTMLlayoutRoot(HTML.Element("span"),node.firstChild); - root.className = "MJXc-script"; // ### FIXME: should be scriptscript - var scale = parseInt(sqrt.firstChild.firstChild.style.fontSize); - var v = .55*(scale/120) + rbox.d*SCRIPTFACTOR, r = -.6*(scale/120); - if (scale > 150) {r *= .95*Math.ceil(150/scale*10)/10} - root.style.marginRight = CHTML.Em(r); root.style.verticalAlign = CHTML.Em(v); - if (-r > rbox.w*SCRIPTFACTOR) root.style.marginLeft = CHTML.Em(-r-rbox.w*SCRIPTFACTOR); // ### depends on rbox.w - node.appendChild(root); node.appendChild(sqrt); - this.CHTML.w += Math.max(0,rbox.w*SCRIPTFACTOR+r); - this.CHTML.h = Math.max(this.CHTML.h,rbox.h*SCRIPTFACTOR+v); - return node; + toCommonHTML: MML.msqrt.prototype.toCommonHTML, + CHTMLaddRoot: function (sqrt,sbox,d) { + if (!this.data[1]) return; + var BBOX = this.CHTML, bbox = this.data[1].CHTML, + root = sqrt.firstChild; + var dlevel = Math.min(2,this.Get("scriptlevel")), + level = Math.min(2,this.data[1].Get("scriptlevel")); + scale = Math.pow(SCRIPTFACTOR,level-dlevel); + if (scale !== 1) this.data[1].CHTMLhandleScriptlevel(root,dlevel); + var h = this.CHTMLrootHeight(bbox,sbox,scale)-d; + var w = Math.min(bbox.w,bbox.r); // remove extra right-hand padding, if any + var dx = Math.max(w,sbox.offset/scale); + if (h) root.style.verticalAlign = CHTML.Em(h/scale); + if (dx > w) root.firstChild.style.paddingLeft = CHTML.Em(dx-w); + dx -= sbox.offset/scale; + root.style.width = CHTML.Em(dx); + CHTML.combineBBoxes(BBOX,bbox,0,h,scale); + return dx*scale; }, - CHTMLlayoutRoot: MML.msqrt.prototype.CHTMLlayoutRoot + CHTMLrootHeight: function (bbox,sbox,scale) { + return .45*(sbox.h+sbox.d-.9)+sbox.offset + Math.max(0,bbox.d-.075); + } }); /********************************************************/ From e5a09146dd26673b5e6f323f48033bc95953a1f6 Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Mon, 9 Mar 2015 15:59:16 -0400 Subject: [PATCH 055/186] Use proper thickness for separation of root from base. --- unpacked/jax/output/CommonHTML/jax.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index 77ce12f08..736152045 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -1681,7 +1681,7 @@ var base = node.firstChild; var sqrt = HTML.addElement(node,"mjx-box"); sqrt.appendChild(base); var bbox = this.CHTMLbboxFor(0), BBOX = this.CHTML = CHTML.emptyBBox(); - var t = CHTML.TEX.surd_height, p = t, q, H; + var t = CHTML.TEX.surd_height, p = CHTML.TEX.rule_thickness, q, H; if (this.Get("displaystyle")) p = CHTML.TEX.x_height; q = t + p/4; H = bbox.h + bbox.d + q + t; From 434606ae1fcbdce6cdad2f3efec684c52ec0057f Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Mon, 9 Mar 2015 16:23:00 -0400 Subject: [PATCH 056/186] Use proper spacing before msubsup. --- unpacked/jax/output/CommonHTML/jax.js | 1 + 1 file changed, 1 insertion(+) diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index 736152045..98bc81540 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -1582,6 +1582,7 @@ } } CHTML.cleanBBox(BBOX); + this.CHTMLhandleSpace(node); return node; } }); From 9ed49e85e4108f729553c860465dc6a58085f319 Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Tue, 10 Mar 2015 13:38:23 -0400 Subject: [PATCH 057/186] Alter fonts to make ascent=descent so that line-height:0 makes its axis along the baseline. That should simplify things (though it may make unknown characters harder to handle -- we'll see). --- .../output/CommonHTML/fonts/TeX/fontdata.js | 18 ------------------ unpacked/jax/output/CommonHTML/jax.js | 13 +++---------- 2 files changed, 3 insertions(+), 28 deletions(-) diff --git a/unpacked/jax/output/CommonHTML/fonts/TeX/fontdata.js b/unpacked/jax/output/CommonHTML/fonts/TeX/fontdata.js index c253ea12f..59261b9c9 100644 --- a/unpacked/jax/output/CommonHTML/fonts/TeX/fontdata.js +++ b/unpacked/jax/output/CommonHTML/fonts/TeX/fontdata.js @@ -586,8 +586,6 @@ CHTML.FONTDATA.FONTS['MathJax_Caligraphic'] = { directory: 'Caligraphic/Regular', - ascent: .789, - descent: .216, skew: { 0x41: 0.194, 0x42: 0.139, @@ -659,8 +657,6 @@ CHTML.FONTDATA.FONTS['MathJax_Main-bold'] = { directory: 'Main/Bold', weight: 'bold', - ascent: .951, - descent: .267, skew: { 0x131: 0.0319, 0x237: 0.0958, @@ -797,8 +793,6 @@ CHTML.FONTDATA.FONTS['MathJax_Main-italic'] = { directory: 'Main/Italic', style: 'italic', - ascent: .750, - descent: .250, Ranges: [ [0xA0,0xFF,"Latin1Supplement"], [0x300,0x36F,"CombDiacritMarks"], @@ -910,8 +904,6 @@ CHTML.FONTDATA.FONTS['MathJax_Main'] = { directory: 'Main/Regular', - ascent: .900, - descent: .272, skew: { 0x131: 0.0278, 0x237: 0.0833, @@ -1192,8 +1184,6 @@ CHTML.FONTDATA.FONTS['MathJax_Math-italic'] = { directory: 'Math/Italic', style: 'italic', - ascent: .717, - descent: .218, skew: { 0x41: 0.139, 0x42: 0.0833, @@ -1372,8 +1362,6 @@ CHTML.FONTDATA.FONTS['MathJax_Size1'] = { directory: 'Size1/Regular', - ascent: .850, - descent: .350, 0x20: [0,0,250,0,0], // SPACE 0x28: [850,349,458,152,422], // LEFT PARENTHESIS 0x29: [850,349,458,35,305], // RIGHT PARENTHESIS @@ -1423,8 +1411,6 @@ CHTML.FONTDATA.FONTS['MathJax_Size2'] = { directory: 'Size2/Regular', - ascent: 1.360, - descent: .862, 0x20: [0,0,250,0,0], // SPACE 0x28: [1150,649,597,180,561], // LEFT PARENTHESIS 0x29: [1150,649,597,35,416], // RIGHT PARENTHESIS @@ -1466,8 +1452,6 @@ CHTML.FONTDATA.FONTS['MathJax_Size3'] = { directory: 'Size3/Regular', - ascent: 1.450, - descent: .950, 0x20: [0,0,250,0,0], // SPACE 0x28: [1450,949,736,209,701], // LEFT PARENTHESIS 0x29: [1450,949,736,34,526], // RIGHT PARENTHESIS @@ -1493,8 +1477,6 @@ CHTML.FONTDATA.FONTS['MathJax_Size4'] = { directory: 'Size4/Regular', - ascent: 1.750, - descent: 1.250, 0x20: [0,0,250,0,0], // SPACE 0x28: [1750,1249,792,237,758], // LEFT PARENTHESIS 0x29: [1750,1249,792,33,554], // RIGHT PARENTHESIS diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index 98bc81540..b128efc5f 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -34,8 +34,7 @@ var EVENT, TOUCH, HOVER; // filled in later var SCRIPTFACTOR = Math.sqrt(1/2), - AXISHEIGHT = .25, - HFUZZ = .05, DFUZZ = 0; // adjustments to bounding box of character boxes + AXISHEIGHT = .25; var STYLES = { ".MathJax_CHTML_Display": { @@ -558,14 +557,8 @@ } this.addCharList(node.firstChild,list,bbox); this.cleanBBox(bbox); - bbox.h += HFUZZ; bbox.d += DFUZZ; - bbox.t += HFUZZ; bbox.b += DFUZZ; - var a = (bbox.H-bbox.D)/2; // center of font (line-height:0) - if (a < bbox.h) {node.firstChild.style.paddingTop = this.Em(bbox.h-a)} - else {node.firstChild.style.marginTop = this.Em(bbox.h-a)} - // ### FIXME: Safari doesn't center, so clip bbox.d at 0 and adjust later? - if (bbox.d+1 > 0) {node.firstChild.style.paddingBottom = this.Em(bbox.d+a)} - else {node.firstChild.style.marginBottom = this.Em(bbox.d+a)} + node.firstChild.style.paddingTop = this.Em(bbox.h); + node.firstChild.style.paddingBottom = this.Em(bbox.d); return bbox; }, From d878d3add209b10790e3de7c4c3f0603d53bdaa7 Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Tue, 10 Mar 2015 16:00:42 -0400 Subject: [PATCH 058/186] Don't need bbox.H and bbox.D now that ascent and descent are equal (so center is baseline). --- unpacked/jax/output/CommonHTML/jax.js | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index b128efc5f..31a098fbc 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -529,8 +529,6 @@ if (bbox.l > bbox.w+C[3]) bbox.l = bbox.w+C[3]; if (bbox.r < bbox.w+C[4]) bbox.r = bbox.w+C[4]; bbox.w += C[2]; - if (bbox.H < font.ascent) bbox.H = font.ascent; - if (bbox.D < font.descent) bbox.D = font.descent; if (m == 1 && font.skew && font.skew[item.n]) bbox.skew = font.skew[item.n]; } } @@ -613,10 +611,9 @@ } var s = 1.1*(H - h)/k + .2*k; // space to cover by extender s /= (ebox.h+ebox.d); // scale factor; - var a = (ebox.H-ebox.D)/2; // center of font this.Transform(ext, - "translateY("+CHTML.Em(-(a+ebox.d)+.05)+") scaleY("+s.toFixed(3).replace(/0+$/,"")+")", - "left "+CHTML.Em(a+ebox.d) + "translateY("+CHTML.Em(-ebox.d+.05)+") scaleY("+s.toFixed(3).replace(/0+$/,"")+")", + "left "+CHTML.Em(ebox.d) ); ext.style.paddingTop=ext.style.paddingBottom = 0; top.style.marginBottom = CHTML.Em((H-h)/k); @@ -663,12 +660,11 @@ } if (delim.min && W < w*delim.min) W = w*delim.min; right.style.marginLeft = CHTML.Em((W-w-rbox.l)/k); - BBOX.w = BBOX.r = W; BBOX.H = lbox.H; BBOX.D = lbox.D; + BBOX.w = BBOX.r = W; if (W > w) { ebox = this.createChar(tmp,delim.rep,scale,font); ext = tmp.removeChild(tmp.firstChild); if (ebox.h > BBOX.h) BBOX.h = ebox.h; if (ebox.d < BBOX.d) BBOX.d = ebox.d; - BBOX.H = ebox.H; BBOX.D = ebox.D; var s = (W - w)/k + .2; // space to cover by extender s /= (ebox.r - ebox.l); // scale factor this.Transform(ext, @@ -792,11 +788,11 @@ /********************************************************/ zeroBBox: function () { - return {h:0, d:0, w:0, l:0, r:0, D:0, H:0, t:0, b:0}; + return {h:0, d:0, w:0, l:0, r:0, t:0, b:0}; }, emptyBBox: function () { return {h:-BIGDIMEN, d:-BIGDIMEN, w:0, l:BIGDIMEN, r:-BIGDIMEN, - D:-BIGDIMEN, H:-BIGDIMEN, t:-BIGDIMEN, b:-BIGDIMEN}; + t:-BIGDIMEN, b:-BIGDIMEN}; }, cleanBBox: function (bbox) { if (bbox.h === -BIGDIMEN) bbox.h = 0; @@ -805,8 +801,6 @@ if (bbox.r === -BIGDIMEN) bbox.r = 0; if (bbox.t === -BIGDIMEN) bbox.t = 0; if (bbox.b === -BIGDIMEN) bbox.b = 0; - if (bbox.H === -BIGDIMEN) bbox.H = .8; - if (bbox.D === -BIGDIMEN) bbox.D = .2; }, scaleBBox: function (bbox,level,dlevel) { var scale = Math.pow(SCRIPTFACTOR,Math.min(2,level)-(dlevel||0)); From a6f9e65af3c6aa4db2da09720cf397774c4153da Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Tue, 10 Mar 2015 19:08:32 -0400 Subject: [PATCH 059/186] Simplify mfrac layout. (Don't try to force the division line to be on the baseline so that it is always raised to the correct place by a vertical align of .25em; instead, just shift the whole stack appropriately. This may cause misalignment if we can't measure the parts exactly, however, but should speed things up a bit.) --- unpacked/jax/output/CommonHTML/jax.js | 50 +++++++++++---------------- 1 file changed, 20 insertions(+), 30 deletions(-) diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index 31a098fbc..dface4c11 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -34,7 +34,8 @@ var EVENT, TOUCH, HOVER; // filled in later var SCRIPTFACTOR = Math.sqrt(1/2), - AXISHEIGHT = .25; + AXISHEIGHT = .25, + HFUZZ = .05, DFUZZ = 0; // adjustments to bounding box of character boxes var STYLES = { ".MathJax_CHTML_Display": { @@ -52,11 +53,8 @@ }, "mjx-math *": {display:"inline-block", "text-align":"left"}, - "mjx-mfrac": {"vertical-align":".25em"}, - "mjx-fbox": {width:"100%"}, - "mjx-ftable": {display:"table", width:"100%"}, - "mjx-numerator": {display:"table-cell", "text-align":"center"}, - "mjx-denominator": {display:"table-cell", "text-align":"center"}, + "mjx-numerator": {display:"block", "text-align":"center"}, + "mjx-denominator": {display:"block", "text-align":"center"}, ".MJXc-fpad": {"padding-left":".1em", "padding-right":".1em"}, "mjx-stack": {display:"inline-block"}, @@ -555,8 +553,9 @@ } this.addCharList(node.firstChild,list,bbox); this.cleanBBox(bbox); - node.firstChild.style.paddingTop = this.Em(bbox.h); - node.firstChild.style.paddingBottom = this.Em(bbox.d); + bbox.h += HFUZZ; bbox.d += DFUZZ; bbox.t += HFUZZ; bbox.b += DFUZZ; + node.firstChild.style[bbox.h < 0 ? "marginTop" : "paddingTop"] = this.Em(bbox.h); + node.firstChild.style[bbox.d < 0 ? "marginBottom": "paddingBottom"] = this.Em(bbox.d); return bbox; }, @@ -911,7 +910,7 @@ if (this.inferred) return node; if (!this.CHTMLnodeID) {this.CHTMLnodeID = CHTML.GetID()}; var id = (this.id || "MJXc-Node-"+this.CHTMLnodeID); - return HTML.addElement(node,"mjx-"+this.type,{className:"MJXc-"+this.type, id:id}); + return HTML.addElement(node,"mjx-"+this.type,{id:id}); }, CHTMLnodeElement: function () { if (!this.CHTMLnodeID) {return null} @@ -1580,7 +1579,7 @@ toCommonHTML: function (node) { node = this.CHTMLdefaultNode(node,{ childNodes:["mjx-numerator","mjx-denominator"], - forceChild:true, noBBox:true + forceChild:true, noBBox:true, childCount:2 }); var values = this.getValues("linethickness","displaystyle","scriptlevel", "numalign","denomalign","bevelled"); @@ -1597,15 +1596,11 @@ // // Create the table for the fraction and set the alignment // - var frac = HTML.addElement(node,"mjx-itable",{},[ - ["mjx-row",{},[["mjx-fbox",{},[["mjx-ftable",{},[["mjx-row"]]]]]]], - ["mjx-row"] - ]); - var num = frac.firstChild.firstChild.firstChild.firstChild, denom = frac.lastChild; - num.appendChild(node.firstChild); - denom.appendChild(node.firstChild); - if (values.numalign !== "center") num.firstChild.style.textAlign = values.numalign; - if (values.denomalign !== "center") denom.firstChild.style.textAlign = values.denomalign; + var num = node.firstChild, denom = node.lastChild; + var frac = HTML.addElement(node,"mjx-box"); + frac.appendChild(num); frac.appendChild(denom); node.appendChild(frac); + if (values.numalign !== "center") num.style.textAlign = values.numalign; + if (values.denomalign !== "center") denom.style.textAlign = values.denomalign; // // Get the bounding boxes for the parts, and determine the placement // of the numerator and denominator @@ -1625,15 +1620,10 @@ t = Math.max(t,mt); q = (u - nbox.d*sscale) - (a + t/2); if (q < p) u += (p - q); q = (a - t/2) - (dbox.h*sscale - v); if (q < p) v += (p - q); - node.style.verticalAlign = CHTML.Em(a-t/2); - // - // Add the rule to the table - // - var rule = HTML.Element("mjx-row",{},[["mjx-cell",{},[["mjx-line"]]]]); - num.parentNode.appendChild(rule); rule = rule.firstChild.firstChild; - rule.style.borderTop = CHTML.Em(t)+" solid"; - num.firstChild.className += " MJXc-fpad"; nbox.L = nbox.R = .1; - denom.firstChild.className += " MJXc-fpad"; dbox.L = dbox.R = .1; + frac.style.verticalAlign = CHTML.Em(t/2-v); + num.style.borderBottom = CHTML.Em(t)+" solid"; + num.className += " MJXc-fpad"; nbox.L = nbox.R = .1; + denom.className += " MJXc-fpad"; dbox.L = dbox.R = .1; } // // Determine the new bounding box and place the parts @@ -1643,8 +1633,8 @@ CHTML.combineBBoxes(this.CHTML,dbox,0,-v,sscale); CHTML.cleanBBox(this.CHTML); u -= sscale*nbox.d + a + t/2; v -= sscale*dbox.h - a + t/2; - if (u > 0) num.firstChild.style.paddingBottom = CHTML.Em(u); - if (v > 0) denom.firstChild.style.paddingTop = CHTML.Em(v); + if (u > 0) num.style.paddingBottom = CHTML.Em(u); + if (v > 0) denom.style.paddingTop = CHTML.Em(v); // // Add nulldelimiterspace around the fraction // (TeXBook pg 150 and Appendix G rule 15e) From fdb10e64c4fb9c08934ff675d690983485839df6 Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Tue, 10 Mar 2015 19:39:09 -0400 Subject: [PATCH 060/186] Rework radicals to match TeX results better for nested radicals (spacing is critical, since the stretchy parts are designed to add up properly with the algorithm). --- unpacked/jax/output/CommonHTML/jax.js | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index dface4c11..8d1738f1c 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -73,7 +73,7 @@ "vertical-align":"top" }, - "mjx-surd": {"vertical-align":"top!important"}, + "mjx-surd": {"vertical-align":"top"}, "mjx-mphantom": {visibility:"hidden"}, @@ -1659,19 +1659,18 @@ var base = node.firstChild; var sqrt = HTML.addElement(node,"mjx-box"); sqrt.appendChild(base); var bbox = this.CHTMLbboxFor(0), BBOX = this.CHTML = CHTML.emptyBBox(); - var t = CHTML.TEX.surd_height, p = CHTML.TEX.rule_thickness, q, H; + var t = CHTML.TEX.rule_thickness, T = CHTML.TEX.surd_height, p = t, q, H; if (this.Get("displaystyle")) p = CHTML.TEX.x_height; q = t + p/4; H = bbox.h + bbox.d + q + t; var surd = HTML.Element("mjx-surd"); sqrt.insertBefore(surd,base); - var sbox = CHTML.createDelimiter(surd,0x221A,H,1); + var sbox = CHTML.createDelimiter(surd,0x221A,[H-.04,H],1); if (sbox.h + sbox.d > H) q = ((sbox.h+sbox.d) - (H-t))/2; H = bbox.h + q + t; var x = this.CHTMLaddRoot(node,sbox,sbox.h+sbox.d-H); - surd.style.verticalAlign = CHTML.Em(H-sbox.h); base.style.paddingTop = CHTML.Em(q); - base.style.borderTop = CHTML.Em(t)+" solid"; - sqrt.style.paddingTop = CHTML.Em(t); + base.style.borderTop = CHTML.Em(T)+" solid"; + sqrt.style.paddingTop = CHTML.Em(2*t-T); // use wider line, but don't affect height bbox.h += q + 2*t; CHTML.combineBBoxes(BBOX,sbox,x,H-sbox.h,1); CHTML.combineBBoxes(BBOX,bbox,x+sbox.w,0,1); From 1968831dd026683c4d282d0dc091da1873b62580 Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Tue, 10 Mar 2015 19:47:27 -0400 Subject: [PATCH 061/186] Use correct offset for \atop and friends --- unpacked/jax/output/CommonHTML/jax.js | 1 + 1 file changed, 1 insertion(+) diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index 8d1738f1c..e04896bfd 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -1615,6 +1615,7 @@ p = Math.max((isDisplay ? 7 : 3) * CHTML.TEX.rule_thickness, 2*mt); // force to at least 2 px q = (u - nbox.d*sscale) - (dbox.h*sscale - v); if (q < p) {u += (p - q)/2; v += (p - q)/2} + frac.style.verticalAlign = CHTML.Em(-v); } else { // \over p = Math.max((isDisplay ? 3 : 0) * t, mt); // force to be at least 1px t = Math.max(t,mt); From 117f29096df30b4195db4d6f8d5dc62965e4aa7b Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Tue, 10 Mar 2015 19:54:28 -0400 Subject: [PATCH 062/186] Fix wrong property name --- unpacked/jax/output/CommonHTML/jax.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index e04896bfd..16cedaac9 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -1579,7 +1579,7 @@ toCommonHTML: function (node) { node = this.CHTMLdefaultNode(node,{ childNodes:["mjx-numerator","mjx-denominator"], - forceChild:true, noBBox:true, childCount:2 + forceChild:true, noBBox:true, minChildren:2 }); var values = this.getValues("linethickness","displaystyle","scriptlevel", "numalign","denomalign","bevelled"); From 59c9f45592c8e53e3354e9037c0f3bf2408de5f5 Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Tue, 10 Mar 2015 20:17:33 -0400 Subject: [PATCH 063/186] Fix some spacing, and a few minor formatting issues. --- unpacked/jax/output/CommonHTML/jax.js | 66 ++++++++++++--------------- 1 file changed, 30 insertions(+), 36 deletions(-) diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index 16cedaac9..60ba91c8f 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -1150,29 +1150,29 @@ if (H != values.minsize) {H = [Math.max(H*CHTML.TEX.delimiterfactor/1000,H-CHTML.TEX.delimitershortfall),H]} while (node.firstChild) node.removeChild(node.firstChild); - this.CHTML = bbox = CHTML.createDelimiter(node,this.data.join("").charCodeAt(0),H,1); + this.CHTML = bbox = CHTML.createDelimiter(node,this.data.join("").charCodeAt(0),H,1); bbox.sH = (H instanceof Array ? H[1] : H); // // Reposition as needed // - if (values.symmetric) {H = (bbox.h + bbox.d)/2 + a} - else {H = (bbox.h + bbox.d) * h/(h + d)} - H -= bbox.h; - if (Math.abs(H) > .05) { - node.style.verticalAlign = CHTML.Em(H); - bbox.h += H; bbox.d -= H; bbox.t += H; bbox.b -= H; - } + if (values.symmetric) {H = (bbox.h + bbox.d)/2 + a} + else {H = (bbox.h + bbox.d) * h/(h + d)} + H -= bbox.h; + if (Math.abs(H) > .05) { + node.style.verticalAlign = CHTML.Em(H); + bbox.h += H; bbox.d -= H; bbox.t += H; bbox.b -= H; + } } }, CHTMLstretchH: function (node,W) { var bbox = this.CHTML; - var values = this.getValues("maxsize","minsize","mathvariant","fontweight"); + var values = this.getValues("maxsize","minsize","mathvariant","fontweight"); // FIXME: should take style="font-weight:bold" into account as well - if ((values.fontweight === "bold" || parseInt(values.fontweight) >= 600) && + if ((values.fontweight === "bold" || parseInt(values.fontweight) >= 600) && !this.Get("mathvariant",true)) values.mathvariant = MML.VARIANT.BOLD; - values.maxsize = CHTML.length2em(values.maxsize,bbox.w); - values.minsize = CHTML.length2em(values.minsize,bbox.w); - W = Math.max(values.minsize,Math.min(values.maxsize,W)); + values.maxsize = CHTML.length2em(values.maxsize,bbox.w); + values.minsize = CHTML.length2em(values.minsize,bbox.w); + W = Math.max(values.minsize,Math.min(values.maxsize,W)); if (W !== bbox.sW) { while (node.firstChild) node.removeChild(node.firstChild); this.CHTML = bbox = CHTML.createDelimiter(node,this.data.join("").charCodeAt(0),W,1,values.mathvariant); @@ -1298,14 +1298,9 @@ // var stack = base, delta = 0; if (bbox.ic) {delta = 1.3*bbox.ic + .05} // make faked IC be closer to expeted results - if (this.data[this.over]) { - stack = this.CHTMLaddOverscript(over,boxes,values,delta,base); - } - if (this.data[this.under]) { - this.CHTMLaddUnderscript(under,boxes,values,delta,node,stack); - } else { - node.appendChild(stack); - } + if (this.data[this.over]) stack = this.CHTMLaddOverscript(over,boxes,values,delta,base); + if (this.data[this.under]) this.CHTMLaddUnderscript(under,boxes,values,delta,node,stack); + else node.appendChild(stack); // // Handle horizontal positions // @@ -1373,7 +1368,7 @@ // var stack = HTML.Element("mjx-stack"); stack.appendChild(over); stack.appendChild(base); - if (obox.d < 0 || obox.h < .25) { + if (obox.d < 0) { // // For negative depths, set the height and align to top // in order to avoid extra baseline space @@ -1421,7 +1416,7 @@ ]); node.firstChild.firstChild.firstChild.appendChild(stack); node.firstChild.lastChild.appendChild(under); - if (ubox.d < 0 || ubox.h < .25) { + if (ubox.d < 0) { // // For negative depths, set the height and align to top // in order to avoid extra baseline space @@ -1448,7 +1443,6 @@ }, // // Center boxes horizontally, taking offsets into account - // ### FIXME: handle BBOX.l and BBOX.r // CHTMLplaceBoxes: function (base,under,over,values,boxes) { var W = this.CHTML.w, i, m = boxes.length; @@ -1660,14 +1654,14 @@ var base = node.firstChild; var sqrt = HTML.addElement(node,"mjx-box"); sqrt.appendChild(base); var bbox = this.CHTMLbboxFor(0), BBOX = this.CHTML = CHTML.emptyBBox(); - var t = CHTML.TEX.rule_thickness, T = CHTML.TEX.surd_height, p = t, q, H; - if (this.Get("displaystyle")) p = CHTML.TEX.x_height; + var t = CHTML.TEX.rule_thickness, T = CHTML.TEX.surd_height, p = t, q, H; + if (this.Get("displaystyle")) p = CHTML.TEX.x_height; q = t + p/4; - H = bbox.h + bbox.d + q + t; + H = bbox.h + bbox.d + q + t; var surd = HTML.Element("mjx-surd"); sqrt.insertBefore(surd,base); var sbox = CHTML.createDelimiter(surd,0x221A,[H-.04,H],1); - if (sbox.h + sbox.d > H) q = ((sbox.h+sbox.d) - (H-t))/2; - H = bbox.h + q + t; + if (sbox.h + sbox.d > H) q = ((sbox.h+sbox.d) - (H-t))/2; + H = bbox.h + q + t; var x = this.CHTMLaddRoot(node,sbox,sbox.h+sbox.d-H); base.style.paddingTop = CHTML.Em(q); base.style.borderTop = CHTML.Em(T)+" solid"; @@ -1675,7 +1669,7 @@ bbox.h += q + 2*t; CHTML.combineBBoxes(BBOX,sbox,x,H-sbox.h,1); CHTML.combineBBoxes(BBOX,bbox,x+sbox.w,0,1); - return node; + return node; }, CHTMLaddRoot: function () {return 0} }); @@ -1686,24 +1680,24 @@ toCommonHTML: MML.msqrt.prototype.toCommonHTML, CHTMLaddRoot: function (sqrt,sbox,d) { if (!this.data[1]) return; - var BBOX = this.CHTML, bbox = this.data[1].CHTML, + var BBOX = this.CHTML, bbox = this.data[1].CHTML, root = sqrt.firstChild; var dlevel = Math.min(2,this.Get("scriptlevel")), level = Math.min(2,this.data[1].Get("scriptlevel")); scale = Math.pow(SCRIPTFACTOR,level-dlevel); if (scale !== 1) this.data[1].CHTMLhandleScriptlevel(root,dlevel); - var h = this.CHTMLrootHeight(bbox,sbox,scale)-d; - var w = Math.min(bbox.w,bbox.r); // remove extra right-hand padding, if any - var dx = Math.max(w,sbox.offset/scale); + var h = this.CHTMLrootHeight(bbox,sbox,scale)-d; + var w = Math.min(bbox.w,bbox.r); // remove extra right-hand padding, if any + var dx = Math.max(w,sbox.offset/scale); if (h) root.style.verticalAlign = CHTML.Em(h/scale); if (dx > w) root.firstChild.style.paddingLeft = CHTML.Em(dx-w); dx -= sbox.offset/scale; root.style.width = CHTML.Em(dx); CHTML.combineBBoxes(BBOX,bbox,0,h,scale); - return dx*scale; + return dx*scale; }, CHTMLrootHeight: function (bbox,sbox,scale) { - return .45*(sbox.h+sbox.d-.9)+sbox.offset + Math.max(0,bbox.d-.075); + return .45*(sbox.h+sbox.d-.9)+sbox.offset + Math.max(0,bbox.d-.075); } }); From ba50c5c690a2fc7bcd0ea7228b29b9c9276ecce0 Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Tue, 10 Mar 2015 21:22:27 -0400 Subject: [PATCH 064/186] Handle spacing via classes, get bbox right for MathML spacing, and temporarily restore table formatting. --- unpacked/jax/output/CommonHTML/jax.js | 48 +++++++++++++++++---------- 1 file changed, 31 insertions(+), 17 deletions(-) diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index 60ba91c8f..c3a8bf6a7 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -96,18 +96,21 @@ "mjx-line": {display:"block", width:"100%", "border-top":"0 solid"}, ".MJXc-script": {"font-size":SCRIPTFACTOR+"em"}, + ".MJXc-space1": {"margin-left":".167em"}, + ".MJXc-space2": {"margin-left":".222em"}, + ".MJXc-space3": {"margin-left":".278em"}, /*********************************/ - ".MJXc-mtable": {"vertical-align":AXISHEIGHT+"em", "margin":"0 .125em"}, - ".MJXc-mtable > span": {"display":"inline-table!important", "vertical-align":"middle"}, - ".MJXc-mtr": {"display":"table-row!important"}, - ".MJXc-mtd": {"display":"table-cell!important", "text-align":"center", "padding":".5em 0 0 .5em"}, - ".MJXc-mtr > .MJXc-mtd:first-child": {"padding-left":0}, - ".MJXc-mtr:first-child > .MJXc-mtd": {"padding-top":0}, - ".MJXc-mlabeledtr": {"display":"table-row!important"}, - ".MJXc-mlabeledtr > .MJXc-mtd:first-child": {"padding-left":0}, - ".MJXc-mlabeledtr:first-child > .MJXc-mtd": {"padding-top":0} + "mjx-mtable": {"vertical-align":AXISHEIGHT+"em", "margin":"0 .125em"}, + "mjx-mtable > span": {"display":"inline-table!important", "vertical-align":"middle"}, + "mjx-mtr": {"display":"table-row!important"}, + "mjx-mtd": {"display":"table-cell!important", "text-align":"center", "padding":".5em 0 0 .5em"}, + "mjx-mtr > mjx-mtd:first-child": {"padding-left":0}, + "mjx-mtr:first-child > mjx-mtd": {"padding-top":0}, + "mjx-mlabeledtr": {"display":"table-row!important"}, + "mjx-mlabeledtr > mjx-mtd:first-child": {"padding-left":0}, + "mjx-mlabeledtr:first-child > mjx-mtd": {"padding-top":0} }; @@ -388,6 +391,11 @@ infinity: BIGDIMEN }, + SPACECLASS: { + thinmathspace: "MJXc-space1", + mediummathspace: "MJXc-space2", + thickmathspace: "MJXc-space3" + }, pxPerInch: 96, em: 16, @@ -931,9 +939,10 @@ CHTMLhandleSpace: function (node) { if (!this.useMMLspacing) { var space = this.texSpacing(); - if (space !== "") this.CHTML.L = CHTML.length2em(space) + (this.CHTML.L||0); - if (this.CHTML.L) node.style.marginLeft = CHTML.Em(this.CHTML.L); - if (this.CHTML.R) node.style.marginRight = CHTML.Em(this.CHTML.R); + if (space !== "") { + this.CHTML.L = CHTML.length2em(space); + node.className += " "+CHTML.SPACECLASS[space]; + } } }, @@ -1076,8 +1085,9 @@ var core = this, parent = this.Parent(); while (parent && parent.isEmbellished() && parent.Core() === core) {core = parent; parent = parent.Parent(); node = core.CHTMLnodeElement()} - if (values.lspace) {node.style.paddingLeft = CHTML.Em(values.lspace)} - if (values.rspace) {node.style.paddingRight = CHTML.Em(values.rspace)} + if (values.lspace) node.style.paddingLeft = CHTML.Em(values.lspace); + if (values.rspace) node.style.paddingRight = CHTML.Em(values.rspace); + this.CHTML.L = values.lspace; this.CHTML.R = values.rspace; } else { this.SUPER(arguments).CHTMLhandleSpace.apply(this,arguments); } @@ -1634,8 +1644,11 @@ // Add nulldelimiterspace around the fraction // (TeXBook pg 150 and Appendix G rule 15e) // - if (!this.texWithDelims && !this.useMMLspacing) - this.CHTML.L = this.CHTML.R = CHTML.TEX.nulldelimiterspace; + if (!this.texWithDelims && !this.useMMLspacing) { + var space = CHTML.TEX.nulldelimiterspace, BBOX = this.CHTML; + frac.style.padding = "0 "+CHTML.Em(space); + BBOX.l += space; BBOX.r += space; BBOX.w += 2*space; + } this.CHTMLhandleSpace(node); // // Return the completed fraction @@ -1669,6 +1682,7 @@ bbox.h += q + 2*t; CHTML.combineBBoxes(BBOX,sbox,x,H-sbox.h,1); CHTML.combineBBoxes(BBOX,bbox,x+sbox.w,0,1); + this.CHTMLhandleSpace(node); return node; }, CHTMLaddRoot: function () {return 0} @@ -1793,7 +1807,7 @@ for (i = 0, m = CSPACE.length; i < m; i++) {CSPACE[i] = CHTML.length2em(CSPACE[i])} for (i = 0, m = RSPACE.length; i < m; i++) {RSPACE[i] = CHTML.length2em(RSPACE[i])} - var table = HTML.Element("node"); + var table = HTML.Element("span"); while (node.firstChild) table.appendChild(node.firstChild); node.appendChild(table); var H = 0, W = 0; From a406adcb4d164e19d2a89c8879c9eb66dfbb6cce Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Wed, 11 Mar 2015 15:52:03 -0400 Subject: [PATCH 065/186] Add support for space characters, and adjust fuzz to work better with Chrome. --- .../jax/output/CommonHTML/fonts/TeX/fontdata.js | 11 +++++++++++ unpacked/jax/output/CommonHTML/jax.js | 13 +++++++++++-- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/unpacked/jax/output/CommonHTML/fonts/TeX/fontdata.js b/unpacked/jax/output/CommonHTML/fonts/TeX/fontdata.js index 59261b9c9..ef09a3505 100644 --- a/unpacked/jax/output/CommonHTML/fonts/TeX/fontdata.js +++ b/unpacked/jax/output/CommonHTML/fonts/TeX/fontdata.js @@ -1548,6 +1548,17 @@ // Add some spacing characters // MathJax.Hub.Insert(CHTML.FONTDATA.FONTS[MAIN],{ + 0x2000: [0,0,500,0,0,{space:1}], // en space + 0x2001: [0,0,1000,0,0,{space:1}], // em quad + 0x2002: [0,0,500,0,0,{space:1}], // en quad + 0x2003: [0,0,1000,0,0,{space:1}], // em space + 0x2004: [0,0,333,0,0,{space:1}], // 3-per-em space + 0x2005: [0,0,250,0,0,{space:1}], // 4-per-em space + 0x2006: [0,0,167,0,0,{space:1}], // 6-per-em space + 0x2009: [0,0,167,0,0,{space:1}], // thin space + 0x200A: [0,0,100,0,0,{space:1}], // hair space + 0x200B: [0,0,0,0,0,{space:1}], // zero-width space + 0x200C: [0,0,0,0,0,{space:1}], // zero-width non-joiner space 0x2061: [0,0,0,0,0,{space:1}], // function application 0x2062: [0,0,0,0,0,{space:1}], // invisible times 0x2063: [0,0,0,0,0,{space:1}], // invisible separator diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index c3a8bf6a7..2fdde0115 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -35,7 +35,7 @@ var SCRIPTFACTOR = Math.sqrt(1/2), AXISHEIGHT = .25, - HFUZZ = .05, DFUZZ = 0; // adjustments to bounding box of character boxes + HFUZZ = .025, DFUZZ = .025; // adjustments to bounding box of character boxes var STYLES = { ".MathJax_CHTML_Display": { @@ -494,7 +494,7 @@ // if (typeof(font) === "string") this.loadFont(font); var C = font[n]; if (C) { -// ### FIXME: implement aliases, spaces, etc. +// ### FIXME: implement aliases if (C.length === 5) C[5] = {}; if (C.c == null) { C[0] /= 1000; C[1] /= 1000; C[2] /= 1000; C[3] /= 1000; C[4] /= 1000; @@ -506,6 +506,7 @@ + String.fromCharCode((N&0x3FF)+0xDC00); } } + if (C[5].space) return {type:"space", w:C[2]}; return {type:"char", font:font, n:n}; } // else load block files? } @@ -536,6 +537,14 @@ if (bbox.r < bbox.w+C[4]) bbox.r = bbox.w+C[4]; bbox.w += C[2]; if (m == 1 && font.skew && font.skew[item.n]) bbox.skew = font.skew[item.n]; + break; + + case "space": + if (item.w) { + HTML.addElement(node,"mjx-space",{style:{"margin-left":CHTML.Em(item.w)}}); + bbox.w += item.w; + } + break; } } if (node.childNodes.length) { From 1b6393cb3dbac6bcc7719cb02d9fb05e4d0b0fc1 Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Wed, 11 Mar 2015 20:34:47 -0400 Subject: [PATCH 066/186] Handle rfix in fontdata (won't be necessary if the fonts are rebuilt, but need it for now), fix spaces so that they are relative to the correct font, and make sure they come after any pending text. --- unpacked/jax/output/CommonHTML/jax.js | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index 2fdde0115..5f6749e64 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -506,7 +506,7 @@ + String.fromCharCode((N&0x3FF)+0xDC00); } } - if (C[5].space) return {type:"space", w:C[2]}; + if (C[5].space) return {type:"space", w:C[2], font:font}; return {type:"char", font:font, n:n}; } // else load block files? } @@ -537,21 +537,33 @@ if (bbox.r < bbox.w+C[4]) bbox.r = bbox.w+C[4]; bbox.w += C[2]; if (m == 1 && font.skew && font.skew[item.n]) bbox.skew = font.skew[item.n]; + if (C[5].rfix) { + HTML.addElement(node,"span",{ + className:className, style:{"margin-right":CHTML.Em(C[5].rfix/1000)} + },[text]); + text = ""; className = null; + } break; case "space": if (item.w) { - HTML.addElement(node,"mjx-space",{style:{"margin-left":CHTML.Em(item.w)}}); + if (text === "") className = item.font.className; + HTML.addElement(node,"span",{ + className:className, style:{"margin-right":CHTML.Em(item.w)} + },[text]); + text = ""; className = null; bbox.w += item.w; } break; } } - if (node.childNodes.length) { - HTML.addElement(node,"span",{className:className},[text]); - } else { - HTML.addText(node,text); - node.className = className; + if (text !== "") { + if (node.childNodes.length) { + HTML.addElement(node,"span",{className:className},[text]); + } else { + HTML.addText(node,text); + node.className = className; + } } }, From 5f8821a0a8df5bad771578b28e0d112846e0017b Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Thu, 12 Mar 2015 19:47:38 -0400 Subject: [PATCH 067/186] Another try at getting mpadded correct (especially for boxes with small heights). --- unpacked/jax/output/CommonHTML/jax.js | 35 +++++++++++++++------------ 1 file changed, 20 insertions(+), 15 deletions(-) diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index 5f6749e64..9bba6a147 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -35,6 +35,7 @@ var SCRIPTFACTOR = Math.sqrt(1/2), AXISHEIGHT = .25, + STRUTHEIGHT = 1, HFUZZ = .025, DFUZZ = .025; // adjustments to bounding box of character boxes var STYLES = { @@ -94,6 +95,7 @@ "mjx-cell": {display:"table-cell"}, "mjx-table": {display:"table", width:"100%"}, "mjx-line": {display:"block", width:"100%", "border-top":"0 solid"}, + "mjx-strut": {width:0, "padding-top":STRUTHEIGHT+"em"}, ".MJXc-script": {"font-size":SCRIPTFACTOR+"em"}, ".MJXc-space1": {"margin-left":".167em"}, @@ -1238,47 +1240,50 @@ MML.mpadded.Augment({ toCommonHTML: function (node) { - node = this.CHTMLdefaultNode(node,{childNodes:"mjx-block", forceChild:true}); + node = this.CHTMLdefaultNode(node,{childNodes:"mjx-box", forceChild:true}); var child = node.firstChild, cbox = this.CHTMLbboxFor(0); - node = HTML.addElement(node,"mjx-block"); - node.appendChild(child); HTML.addElement(child,"mjx-box"); // force box to be in text mode + node = HTML.addElement(node,"mjx-block"); node.appendChild(child); + HTML.addElement(node,"mjx-strut"); // force proper alignment of short heights var values = this.getValues("width","height","depth","lspace","voffset"); var dimen, x = 0, y = 0, w = cbox.w, h = cbox.h, d = cbox.d; + child.style.width = 0; child.style.margin = CHTML.Em(-h)+" 0 "+CHTML.Em(-d); if (values.width !== "") { dimen = this.CHTMLdimen(values.width,"w",0); - if (dimen.pm) dimen.len += cbox.w; + if (dimen.pm) dimen.len += w; if (dimen.len < 0) dimen.len = 0; - if (dimen.len !== cbox.w) node.style.width = CHTML.Em(dimen.len); w = dimen.len; } if (values.height !== "") { dimen = this.CHTMLdimen(values.height,"h",0); - if (dimen.pm) {h += dimen.len} else {h = dimen.len; dimen.len += -cbox.h} - if (dimen.len+cbox.h < 0) {dimen.len = -cbox.h; h = 0} - if (dimen.len) child.style.marginTop = CHTML.Em(dimen.len); + if (dimen.pm) dimen.len += h; + if (dimen.len < 0) dimen.len = 0 + h = dimen.len; } if (values.depth !== "") { dimen = this.CHTMLdimen(values.depth,"d",0); - if (dimen.pm) {d += dimen.len} else {d = dimen.len; dimen.len += -cbox.d} - if (dimen.len+cbox.d < 0) {dimen.len = -cbox.d; d = 0} - if (dimen.len) child.style.marginBottom = CHTML.Em(dimen.len); + if (dimen.pm) dimen.len += d; + if (dimen.len < 0) dimen.len = 0 + d = dimen.len; } if (values.voffset !== "") { dimen = this.CHTMLdimen(values.voffset); if (dimen.len) { y = dimen.len; - node.style.position = "relative"; - node.style.top = CHTML.Em(-y); + child.style.position = "relative"; + child.style.top = CHTML.Em(-y); } } if (values.lspace !== "") { dimen = this.CHTMLdimen(values.lspace); if (dimen.len) { x = dimen.len; - node.style.position = "relative"; - node.style.left = CHTML.Em(x); + child.style.position = "relative"; + child.style.left = CHTML.Em(x); } } + node.style.width = 0; + node.style.marginTop = CHTML.Em(h-STRUTHEIGHT); + node.style.padding = "0 "+CHTML.Em(w)+" "+CHTML.Em(d)+" 0"; var bbox = {w:w, h:h, d:d, l:0, r:w, t:h, b:d}; CHTML.combineBBoxes(bbox,cbox,x,y,1); bbox.w = w; bbox.h = h; bbox.d = d; From d786c11add1b9c28500bb0a2c1e461c6c911db6f Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Thu, 12 Mar 2015 20:01:28 -0400 Subject: [PATCH 068/186] Simplify the handling of dimensions in mpadded --- unpacked/jax/output/CommonHTML/jax.js | 38 +++++++++------------------ 1 file changed, 12 insertions(+), 26 deletions(-) diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index 9bba6a147..7fa29dc13 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -1247,36 +1247,19 @@ var values = this.getValues("width","height","depth","lspace","voffset"); var dimen, x = 0, y = 0, w = cbox.w, h = cbox.h, d = cbox.d; child.style.width = 0; child.style.margin = CHTML.Em(-h)+" 0 "+CHTML.Em(-d); - if (values.width !== "") { - dimen = this.CHTMLdimen(values.width,"w",0); - if (dimen.pm) dimen.len += w; - if (dimen.len < 0) dimen.len = 0; - w = dimen.len; - } - if (values.height !== "") { - dimen = this.CHTMLdimen(values.height,"h",0); - if (dimen.pm) dimen.len += h; - if (dimen.len < 0) dimen.len = 0 - h = dimen.len; - } - if (values.depth !== "") { - dimen = this.CHTMLdimen(values.depth,"d",0); - if (dimen.pm) dimen.len += d; - if (dimen.len < 0) dimen.len = 0 - d = dimen.len; - } + if (values.width !== "") w = this.CHTMLdimen(values.width,"w",w,0); + if (values.height !== "") h = this.CHTMLdimen(values.height,"h",h,0); + if (values.depth !== "") d = this.CHTMLdimen(values.depth,"d",w,0); if (values.voffset !== "") { - dimen = this.CHTMLdimen(values.voffset); - if (dimen.len) { - y = dimen.len; + y = this.CHTMLdimen(values.voffset); + if (y) { child.style.position = "relative"; child.style.top = CHTML.Em(-y); } } if (values.lspace !== "") { - dimen = this.CHTMLdimen(values.lspace); - if (dimen.len) { - x = dimen.len; + x = this.CHTMLdimen(values.lspace); + if (x) { child.style.position = "relative"; child.style.left = CHTML.Em(x); } @@ -1290,12 +1273,15 @@ this.CHTML = bbox; return node.parentNode; }, - CHTMLdimen: function (length,d,m) { + CHTMLdimen: function (length,d,D,m) { if (m == null) {m = -BIGDIMEN} length = String(length); var match = length.match(/width|height|depth/); var size = (match ? this.CHTML[match[0].charAt(0)] : (d ? this.CHTML[d] : 0)); - return {len: CHTML.length2em(length,size)||0, pm: !!length.match(/^[-+]/)}; + var dimen = (CHTML.length2em(length,size)||0); + if (length.match(/^[-+]/)) dimen += D; + if (m != null) dimen = Math.max(m,dimen); + return dimen; } }); From 29efa89877444b1a256c23e662641b90feb840da Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Fri, 13 Mar 2015 13:12:12 -0400 Subject: [PATCH 069/186] Fix computation of depths to not use width as the default (oops). --- unpacked/jax/output/CommonHTML/jax.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index 7fa29dc13..1d3c91574 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -1249,7 +1249,7 @@ child.style.width = 0; child.style.margin = CHTML.Em(-h)+" 0 "+CHTML.Em(-d); if (values.width !== "") w = this.CHTMLdimen(values.width,"w",w,0); if (values.height !== "") h = this.CHTMLdimen(values.height,"h",h,0); - if (values.depth !== "") d = this.CHTMLdimen(values.depth,"d",w,0); + if (values.depth !== "") d = this.CHTMLdimen(values.depth,"d",d,0); if (values.voffset !== "") { y = this.CHTMLdimen(values.voffset); if (y) { From 563dd09fa7fde956b3a63dbede2f992bb906dd3c Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Fri, 13 Mar 2015 13:34:29 -0400 Subject: [PATCH 070/186] Handle undefined characters (these need measurement,so cause reflows). --- unpacked/jax/output/CommonHTML/jax.js | 185 +++++++++++++++++++------- 1 file changed, 136 insertions(+), 49 deletions(-) diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index 1d3c91574..8e0807b83 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -36,7 +36,9 @@ var SCRIPTFACTOR = Math.sqrt(1/2), AXISHEIGHT = .25, STRUTHEIGHT = 1, - HFUZZ = .025, DFUZZ = .025; // adjustments to bounding box of character boxes + AFUZZ = .08, HFUZZ = .025, DFUZZ = .025; // adjustments to bounding box of character boxes + + var UNKNOWNFAMILY = "STIXGeneral,'Cambria Math','Arial Unicode MS',serif"; var STYLES = { ".MathJax_CHTML_Display": { @@ -101,6 +103,17 @@ ".MJXc-space1": {"margin-left":".167em"}, ".MJXc-space2": {"margin-left":".222em"}, ".MJXc-space3": {"margin-left":".278em"}, + + ".MJXc-TeX-unknown": {"font-family":UNKNOWNFAMILY}, + "mjx-chartest": { + display:"block", + position:"absolute", top:0, + "line-height":"normal", + "font-size":"500%", + "font-family":UNKNOWNFAMILY + }, + "mjx-chartest mjx-char": {display:"inline"}, + "mjx-chartest mjx-box": {"padding-top": "500px"}, /*********************************/ @@ -439,6 +452,17 @@ /********************************************************/ + // + // Get a unicode character by number (even when it takes two character) + // + unicodeChar: function (n) { + if (n < 0xFFFF) return String.fromCharCode(n); + n -= 0x10000; + return String.fromCharCode((n>>10)+0xD800) + String.fromCharCode((N&0x3FF)+0xDC00); + }, + // + // Get the unicode number of a (possibly multi-character) string + // getUnicode: function (string) { var n = string.text.charCodeAt(string.i); string.i++; if (n >= 0xD800 && n < 0xDBFF) { @@ -447,6 +471,12 @@ } return n; }, + // + // Get the list of actions for a given character in a given variant + // (processing remaps, multi-character results, and so on). Results are + // cached so that future lookups for the same variant/n pair will not + // require looking through the data again. + // getCharList: function (variant,n) { var id, M, list = [], cache = variant.cache, N = n; if (cache[n]) return cache[n]; @@ -489,6 +519,12 @@ cache[N] = list; return list; }, + // + // After all remapping has been done, look up a character + // in the fonts for a given variant, chaining to other + // variants as needed. Return an undefined character if + // it isnt' found in the given variant. + // lookupChar: function (variant,n) { while (variant) { for (var i = 0, m = variant.fonts.length; i < m; i++) { @@ -500,13 +536,7 @@ if (C.length === 5) C[5] = {}; if (C.c == null) { C[0] /= 1000; C[1] /= 1000; C[2] /= 1000; C[3] /= 1000; C[4] /= 1000; - if (n <= 0xFFFF) { - C.c = String.fromCharCode(n); - } else { - var N = n - 0x10000; - C.c = String.fromCharCode((N>>10)+0xD800) - + String.fromCharCode((N&0x3FF)+0xDC00); - } + C.c = this.unicodeChar(n); } if (C[5].space) return {type:"space", w:C[2], font:font}; return {type:"char", font:font, n:n}; @@ -516,59 +546,115 @@ } return this.unknownChar(variant,n); }, - unknownChar: function (variant,n) {}, + // + // Create a fake font entry for an unknown character. + // + unknownChar: function (variant,n) { + HUB.signal.Post(["CommonHTML Jax - unknown char",n,variant]); + var c = this.unicodeChar(n); + var HDW = this.getHDW(c); var a = (HDW.h-HDW.d)/2+AFUZZ; // ### FIXME: is this really the axis of the surrounding text? + var unknown = {type:"unknown", n:n, font:{className:"MJXc-TeX-unknown"}}; + unknown.font[n] = [.8,.2,HDW.w,0,HDW.w,{a:a, A:HDW.h-a, d:HDW.d}]; + unknown.font[n].c = c + return unknown; + }, + // + // Get the height, depth and width of a character + // (height and depth are of the font, not the character). + // WARNING: causes reflow of the page! + // + getHDW: function (c) { + var test1 = HTML.addElement(document.body,"mjx-chartest",{},[["mjx-char",{},[c]]]); + var test2 = HTML.addElement(document.body,"mjx-chartest",{},[["mjx-char",{},[c,["mjx-box"]]]]); + var em = window.parseFloat(window.getComputedStyle(test1).fontSize); + var d = (test2.offsetHeight-500)/em; + var w = test1.offsetWidth/em, h = test1.offsetHeight/em - d; + document.body.removeChild(test1); + document.body.removeChild(test2); + return {h:h, d:d, w:w} + }, /********************************************************/ + // + // Process a character list into a given node and return + // the updated bounding box. + // addCharList: function (node,list,bbox) { - var text = "", className; + var state = {text:"", className:null}; for (var i = 0, m = list.length; i < m; i++) { var item = list[i]; - switch (item.type) { - case "char": - var font = item.font; - if (className && font.className !== className) { - HTML.addElement(node,"span",{className:className},[text]); - text = ""; className = null; - } - var C = font[item.n]; - text += C.c; className = font.className; - if (bbox.h < C[0]) bbox.t = bbox.h = C[0]; - if (bbox.d < C[1]) bbox.b = bbox.d = C[1]; - if (bbox.l > bbox.w+C[3]) bbox.l = bbox.w+C[3]; - if (bbox.r < bbox.w+C[4]) bbox.r = bbox.w+C[4]; - bbox.w += C[2]; - if (m == 1 && font.skew && font.skew[item.n]) bbox.skew = font.skew[item.n]; - if (C[5].rfix) { - HTML.addElement(node,"span",{ - className:className, style:{"margin-right":CHTML.Em(C[5].rfix/1000)} - },[text]); - text = ""; className = null; - } - break; - - case "space": - if (item.w) { - if (text === "") className = item.font.className; - HTML.addElement(node,"span",{ - className:className, style:{"margin-right":CHTML.Em(item.w)} - },[text]); - text = ""; className = null; - bbox.w += item.w; - } - break; - } + if (this.charList[item.type]) (this.charList[item.type])(item,node,bbox,state,m); } - if (text !== "") { + if (state.text !== "") { if (node.childNodes.length) { - HTML.addElement(node,"span",{className:className},[text]); + HTML.addElement(node,"span",{className:state.className},[state.text]); } else { - HTML.addText(node,text); - node.className = className; + HTML.addText(node,state.text); + node.className = state.className; } } }, + // + // The various item types are processed by these + // functions. + // + charList: { + // + // Character from the known fonts + // + char: function (item,node,bbox,state,m) { + var font = item.font; + if (state.className && font.className !== state.className) this.flushText(node,state); + var C = font[item.n]; + state.text += C.c; state.className = font.className; + if (bbox.h < C[0]) bbox.t = bbox.h = C[0]; + if (bbox.d < C[1]) bbox.b = bbox.d = C[1]; + if (bbox.l > bbox.w+C[3]) bbox.l = bbox.w+C[3]; + if (bbox.r < bbox.w+C[4]) bbox.r = bbox.w+C[4]; + bbox.w += C[2]; + if (m == 1 && font.skew && font.skew[item.n]) bbox.skew = font.skew[item.n]; + if (C[5].rfix) this.flushText(node,state).style.marginRight = CHTML.Em(C[5].rfix/1000); + }, + // + // Space characters (not actually in the fonts) + // + space: function (item,node,bbox,state) { + if (item.w) { + if (state.text === "") state.className = item.font.className; + this.flushText(node,state).style.marginRight = CHTML.Em(item.w); + bbox.w += item.w; + } + }, + // + // An unknown character (one not in the font data) + // + unknown: function (item,node,bbox,state) { + this.char(item,node,bbox,state,0); + node = this.flushText(node,state); + node.style.lineHeight = "normal"; + var C = item.font[item.n]; + node.style.marginTop = CHTML.Em(-C[5].A-HFUZZ); + node.style.marginBottom = CHTML.Em(-C[5].d-DFUZZ); + node.style.width = CHTML.Em(C[2]); + if (!bbox.a || C[5].a > bbox.a) bbox.a = C[5].a; + }, + // + // Put the pending text into a box of the class, and + // reset the data about the text. + // + flushText: function (node,state) { + node = HTML.addElement(node,"mjx-charbox",{className:state.className},[state.text]); + state.text = ""; state.className = null; + return node; + } + }, + // + // Add the given text (in the given variant) into the given node, and + // update the bounding box of the result. Make sure the node's DOM + // bounding box matches the contents. + // handleText: function (node,text,variant,bbox) { if (node.childNodes.length === 0) { HTML.addElement(node,"mjx-char"); @@ -585,7 +671,7 @@ this.addCharList(node.firstChild,list,bbox); this.cleanBBox(bbox); bbox.h += HFUZZ; bbox.d += DFUZZ; bbox.t += HFUZZ; bbox.b += DFUZZ; - node.firstChild.style[bbox.h < 0 ? "marginTop" : "paddingTop"] = this.Em(bbox.h); + node.firstChild.style[bbox.h < 0 ? "marginTop" : "paddingTop"] = this.Em(bbox.h-(bbox.a||0)); node.firstChild.style[bbox.d < 0 ? "marginBottom": "paddingBottom"] = this.Em(bbox.d); return bbox; }, @@ -1060,6 +1146,7 @@ bbox.ic = bbox.r - bbox.w; bbox.w = bbox.r; node.style.paddingRight = CHTML.Em(bbox.ic); } + return node; } }); From c58b546ad7a51ad033039b5ca360cd009111c5ab Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Fri, 13 Mar 2015 14:42:24 -0400 Subject: [PATCH 071/186] Cache measurements of unknown characters so they don't have to be remeasured later. --- .../output/CommonHTML/fonts/TeX/fontdata.js | 7 ++++ unpacked/jax/output/CommonHTML/jax.js | 34 ++++++++++++------- 2 files changed, 29 insertions(+), 12 deletions(-) diff --git a/unpacked/jax/output/CommonHTML/fonts/TeX/fontdata.js b/unpacked/jax/output/CommonHTML/fonts/TeX/fontdata.js index ef09a3505..5485122d4 100644 --- a/unpacked/jax/output/CommonHTML/fonts/TeX/fontdata.js +++ b/unpacked/jax/output/CommonHTML/fonts/TeX/fontdata.js @@ -69,6 +69,13 @@ "MathJax_Typewriter": "Typewriter/Regular/Main.js", "MathJax_Caligraphic-bold": "Caligraphic/Bold/Main.js" }, + + UNKNOWN: { + R: {className:"MJXc-TeX-unknown-R"}, + I: {className:"MJXc-TeX-unknown-I"}, + B: {className:"MJXc-TeX-unknown-B"}, + BI: {className:"MJXc-TeX-unknown-BI"} + }, VARIANT: { "normal": {fonts:[MAIN,SIZE1,AMS], cache: {}, diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index 8e0807b83..754823231 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -104,13 +104,16 @@ ".MJXc-space2": {"margin-left":".222em"}, ".MJXc-space3": {"margin-left":".278em"}, - ".MJXc-TeX-unknown": {"font-family":UNKNOWNFAMILY}, + ".MJXc-TeX-unknown-R": {"font-family":UNKNOWNFAMILY, "font-style":"normal", "font-weight":"normal"}, + ".MJXc-TeX-unknown-I": {"font-family":UNKNOWNFAMILY, "font-style":"italic", "font-weight":"normal"}, + ".MJXc-TeX-unknown-B": {"font-family":UNKNOWNFAMILY, "font-style":"normal", "font-weight":"bold"}, + ".MJXc-TeX-unknown-BI": {"font-family":UNKNOWNFAMILY, "font-style":"italic","font-weight":"bold"}, + "mjx-chartest": { display:"block", position:"absolute", top:0, "line-height":"normal", - "font-size":"500%", - "font-family":UNKNOWNFAMILY + "font-size":"500%" }, "mjx-chartest mjx-char": {display:"inline"}, "mjx-chartest mjx-box": {"padding-top": "500px"}, @@ -526,6 +529,7 @@ // it isnt' found in the given variant. // lookupChar: function (variant,n) { + var VARIANT = variant; while (variant) { for (var i = 0, m = variant.fonts.length; i < m; i++) { var font = this.FONTDATA.FONTS[variant.fonts[i]]; @@ -544,28 +548,34 @@ } variant = this.FONTDATA.VARIANT[variant.chain]; } - return this.unknownChar(variant,n); + return this.unknownChar(VARIANT,n); }, // // Create a fake font entry for an unknown character. // unknownChar: function (variant,n) { HUB.signal.Post(["CommonHTML Jax - unknown char",n,variant]); + var id = ""; if (variant.bold) id += "B"; if (variant.italic) id += "I"; + var unknown = this.FONTDATA.UNKNOWN[id||"R"]; // cache of previously measured characters + if (!unknown[n]) this.getUnknownChar(unknown,n); + return {type:"unknown", n:n, font:unknown}; + }, + getUnknownChar: function (unknown,n) { var c = this.unicodeChar(n); - var HDW = this.getHDW(c); var a = (HDW.h-HDW.d)/2+AFUZZ; // ### FIXME: is this really the axis of the surrounding text? - var unknown = {type:"unknown", n:n, font:{className:"MJXc-TeX-unknown"}}; - unknown.font[n] = [.8,.2,HDW.w,0,HDW.w,{a:a, A:HDW.h-a, d:HDW.d}]; - unknown.font[n].c = c - return unknown; + var HDW = this.getHDW(c,unknown.className); + var a = (HDW.h-HDW.d)/2+AFUZZ; // ### FIXME: is this really the axis of the surrounding text? + // ### FIXME: provide a means of setting the height and depth for individual characters + unknown[n] = [.8,.2,HDW.w,0,HDW.w,{a:a, A:HDW.h-a, d:HDW.d}]; + unknown[n].c = c; }, // // Get the height, depth and width of a character // (height and depth are of the font, not the character). // WARNING: causes reflow of the page! // - getHDW: function (c) { - var test1 = HTML.addElement(document.body,"mjx-chartest",{},[["mjx-char",{},[c]]]); - var test2 = HTML.addElement(document.body,"mjx-chartest",{},[["mjx-char",{},[c,["mjx-box"]]]]); + getHDW: function (c,name) { + var test1 = HTML.addElement(document.body,"mjx-chartest",{className:name},[["mjx-char",{},[c]]]); + var test2 = HTML.addElement(document.body,"mjx-chartest",{className:name},[["mjx-char",{},[c,["mjx-box"]]]]); var em = window.parseFloat(window.getComputedStyle(test1).fontSize); var d = (test2.offsetHeight-500)/em; var w = test1.offsetWidth/em, h = test1.offsetHeight/em - d; From 15ab2765987ade11cd6cc436a8137c84f3f94fc5 Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Fri, 13 Mar 2015 15:49:58 -0400 Subject: [PATCH 072/186] Move unkown character styles to fontdata.js (they are font-dependent) --- unpacked/jax/output/CommonHTML/config.js | 4 +++- unpacked/jax/output/CommonHTML/fonts/TeX/fontdata.js | 10 +++++++++- unpacked/jax/output/CommonHTML/jax.js | 7 ------- 3 files changed, 12 insertions(+), 9 deletions(-) diff --git a/unpacked/jax/output/CommonHTML/config.js b/unpacked/jax/output/CommonHTML/config.js index 7fa1c2de6..35b78fe73 100644 --- a/unpacked/jax/output/CommonHTML/config.js +++ b/unpacked/jax/output/CommonHTML/config.js @@ -46,7 +46,9 @@ MathJax.OutputJax.CommonHTML = MathJax.OutputJax({ // use "container" to compute size from containing element, // use "nn% container" for a portion of the container, // use "nn%" for a portion of the window size - } + }, + + undefinedFamily: "STIXGeneral,'Cambria Math','Arial Unicode MS',serif" } }); diff --git a/unpacked/jax/output/CommonHTML/fonts/TeX/fontdata.js b/unpacked/jax/output/CommonHTML/fonts/TeX/fontdata.js index 5485122d4..c23fe670b 100644 --- a/unpacked/jax/output/CommonHTML/fonts/TeX/fontdata.js +++ b/unpacked/jax/output/CommonHTML/fonts/TeX/fontdata.js @@ -40,11 +40,19 @@ var ARROWREP = [0x2212,MAIN,0,0,0,0,.1]; // add depth for arrow extender var DARROWREP = [0x3D,MAIN,0,0,0,0,.1]; // add depth for arrow extender + var UNDEFINEDFAMILY = CHTML.config.undefinedFamily; + + MathJax.Hub.Insert(CHTML.config.styles,{ + ".MJXc-TeX-unknown-R": {"font-family":UNDEFINEDFAMILY, "font-style":"normal", "font-weight":"normal"}, + ".MJXc-TeX-unknown-I": {"font-family":UNDEFINEDFAMILY, "font-style":"italic", "font-weight":"normal"}, + ".MJXc-TeX-unknown-B": {"font-family":UNDEFINEDFAMILY, "font-style":"normal", "font-weight":"bold"}, + ".MJXc-TeX-unknown-BI": {"font-family":UNDEFINEDFAMILY, "font-style":"italic", "font-weight":"bold"}, + }); + CHTML.TEX = CHTML.TEXDEF; // use default TeX paramaters CHTML.FONTDEF.TeX = { version: VERSION, - TeX_factor: 1, // TeX em's to font em's baselineskip: 1.2, lineH: .8, lineD: .2, diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index 754823231..922e93ea8 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -38,8 +38,6 @@ STRUTHEIGHT = 1, AFUZZ = .08, HFUZZ = .025, DFUZZ = .025; // adjustments to bounding box of character boxes - var UNKNOWNFAMILY = "STIXGeneral,'Cambria Math','Arial Unicode MS',serif"; - var STYLES = { ".MathJax_CHTML_Display": { "display": "block", @@ -104,11 +102,6 @@ ".MJXc-space2": {"margin-left":".222em"}, ".MJXc-space3": {"margin-left":".278em"}, - ".MJXc-TeX-unknown-R": {"font-family":UNKNOWNFAMILY, "font-style":"normal", "font-weight":"normal"}, - ".MJXc-TeX-unknown-I": {"font-family":UNKNOWNFAMILY, "font-style":"italic", "font-weight":"normal"}, - ".MJXc-TeX-unknown-B": {"font-family":UNKNOWNFAMILY, "font-style":"normal", "font-weight":"bold"}, - ".MJXc-TeX-unknown-BI": {"font-family":UNKNOWNFAMILY, "font-style":"italic","font-weight":"bold"}, - "mjx-chartest": { display:"block", position:"absolute", top:0, From 3443bb6016c23a8ce9d405785f5d603793ef9208 Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Fri, 13 Mar 2015 18:40:10 -0400 Subject: [PATCH 073/186] Add new otf fonts (more formats needed), and add support for web fonts in addition to local ones --- .../TeX/otf/MathJax_AMS-Regular.otf | Bin 0 -> 58400 bytes .../TeX/otf/MathJax_Caligraphic-Bold.otf | Bin 0 -> 12348 bytes .../TeX/otf/MathJax_Caligraphic-Regular.otf | Bin 0 -> 12024 bytes .../TeX/otf/MathJax_Fraktur-Bold.otf | Bin 0 -> 26896 bytes .../TeX/otf/MathJax_Fraktur-Regular.otf | Bin 0 -> 25872 bytes .../CommonHTML/TeX/otf/MathJax_Main-Bold.otf | Bin 0 -> 46796 bytes .../TeX/otf/MathJax_Main-Italic.otf | Bin 0 -> 28220 bytes .../TeX/otf/MathJax_Main-Regular.otf | Bin 0 -> 47636 bytes .../TeX/otf/MathJax_Math-BoldItalic.otf | Bin 0 -> 27092 bytes .../TeX/otf/MathJax_Math-Italic.otf | Bin 0 -> 26384 bytes .../TeX/otf/MathJax_Math-Regular.otf | Bin 0 -> 26324 bytes .../TeX/otf/MathJax_SansSerif-Bold.otf | Bin 0 -> 22152 bytes .../TeX/otf/MathJax_SansSerif-Italic.otf | Bin 0 -> 18572 bytes .../TeX/otf/MathJax_SansSerif-Regular.otf | Bin 0 -> 15920 bytes .../TeX/otf/MathJax_Script-Regular.otf | Bin 0 -> 14612 bytes .../TeX/otf/MathJax_Size1-Regular.otf | Bin 0 -> 8248 bytes .../TeX/otf/MathJax_Size2-Regular.otf | Bin 0 -> 7604 bytes .../TeX/otf/MathJax_Size3-Regular.otf | Bin 0 -> 4712 bytes .../TeX/otf/MathJax_Size4-Regular.otf | Bin 0 -> 7364 bytes .../TeX/otf/MathJax_Typewriter-Regular.otf | Bin 0 -> 24180 bytes unpacked/jax/output/CommonHTML/config.js | 4 +- .../output/CommonHTML/fonts/TeX/fontdata.js | 44 +++++++++++++++--- unpacked/jax/output/CommonHTML/jax.js | 3 +- 23 files changed, 42 insertions(+), 9 deletions(-) create mode 100644 fonts/CommonHTML/TeX/otf/MathJax_AMS-Regular.otf create mode 100644 fonts/CommonHTML/TeX/otf/MathJax_Caligraphic-Bold.otf create mode 100644 fonts/CommonHTML/TeX/otf/MathJax_Caligraphic-Regular.otf create mode 100644 fonts/CommonHTML/TeX/otf/MathJax_Fraktur-Bold.otf create mode 100644 fonts/CommonHTML/TeX/otf/MathJax_Fraktur-Regular.otf create mode 100644 fonts/CommonHTML/TeX/otf/MathJax_Main-Bold.otf create mode 100644 fonts/CommonHTML/TeX/otf/MathJax_Main-Italic.otf create mode 100644 fonts/CommonHTML/TeX/otf/MathJax_Main-Regular.otf create mode 100644 fonts/CommonHTML/TeX/otf/MathJax_Math-BoldItalic.otf create mode 100644 fonts/CommonHTML/TeX/otf/MathJax_Math-Italic.otf create mode 100644 fonts/CommonHTML/TeX/otf/MathJax_Math-Regular.otf create mode 100644 fonts/CommonHTML/TeX/otf/MathJax_SansSerif-Bold.otf create mode 100644 fonts/CommonHTML/TeX/otf/MathJax_SansSerif-Italic.otf create mode 100644 fonts/CommonHTML/TeX/otf/MathJax_SansSerif-Regular.otf create mode 100644 fonts/CommonHTML/TeX/otf/MathJax_Script-Regular.otf create mode 100644 fonts/CommonHTML/TeX/otf/MathJax_Size1-Regular.otf create mode 100644 fonts/CommonHTML/TeX/otf/MathJax_Size2-Regular.otf create mode 100644 fonts/CommonHTML/TeX/otf/MathJax_Size3-Regular.otf create mode 100644 fonts/CommonHTML/TeX/otf/MathJax_Size4-Regular.otf create mode 100644 fonts/CommonHTML/TeX/otf/MathJax_Typewriter-Regular.otf diff --git a/fonts/CommonHTML/TeX/otf/MathJax_AMS-Regular.otf b/fonts/CommonHTML/TeX/otf/MathJax_AMS-Regular.otf new file mode 100644 index 0000000000000000000000000000000000000000..62078a75db80f8e6f6cba9997d9f1cd5fe6885ed GIT binary patch literal 58400 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 LqHyri)Z@Pcl>cTh literal 0 HcmV?d00001 diff --git a/fonts/CommonHTML/TeX/otf/MathJax_Caligraphic-Bold.otf b/fonts/CommonHTML/TeX/otf/MathJax_Caligraphic-Bold.otf new file mode 100644 index 0000000000000000000000000000000000000000..e26380deb5f596e719e0095a23af623cecf74d97 GIT binary patch literal 12348 zcmch733yahw(hBf3R}>KiG@RJh|HiO&Nj|6h^T-dqY%hM=DCteO{sZ0>(o3CNo5|$ z90+rmL=+T794-!Ri;eI4TAR?_=q~Q@KHjPjU-$i%cOk>vu$y6KH7#5A`l}m`8T%P#VLHPwcfGh|=`v;m zGl5|q*ofEZtJXg7(6Xd$dWI3CHkIdx6@9+-u;mq?{zogf`y>`FwrNre}jxY)F zyZFQR5|{tHkJ&8Dy7uk=`cU}NSWVZTUH_lYFxU_LXA%+)Cmdpgm|-zx818y1_?mf8 zFjgNKe^1RYqf?k4{xp8ctlqIS2m6>ldW~WJ9hl9D%M+KUGmJeWF3kJsXNqGO#c>X5le@zgM z=aZQ`g^R}XQojp_5t6lriOul&NG2 zm^>z*5#t=qWwM!hm_EcT#N)Tj{bRWYF`v#XVRD(Ov9hIjwH8Yj;GI%TbD8__&P!wY z1q`#etXx`Ike4q`pPM}|{h@^me|!H!3m;sVz9hG*Ag?riZFWI!X?E^?=`WRLW9e6! zOl&%zS%GOSvkkkI$rO(@Q;E59d{Tf-Ft28c^H*fnZd;sLT##3pS)N~jH($UZ6f-%P zDJ#bRWq4VNmBrIa98>PtNEVFsei7#Xxu)*_TeZu|O2x~{D)VyFA6l?5eNpN3V$9`9i&2)S;>CA)70z8@Zxs_D~Wu@s4F2IZbht2)hU=UyEe-;RFI6cKk z#*PI{$@n@Kj;-^8@g;f&;dUQ03Ck3Wp&*@EgTt>Hn}QnrkBjv$%bL!t#CJ>Z?mxSf z3$W%%%mY6#^(OxW$-W7mNq6=gV*e|43Bt`&C&@ zpZk@Wt4nioE7QgKx#??PdL?~Td2Z?T!mnH}a9{f0Nx_2a zm5slfo>`MwP@I`noSQz@qs;VW&%c(QDPA-wUo0+P^uPmE*_8$5;;IEz1;z2MKd@>U zj{m{1J+{O(_}KLX<~dAn9J90&5C*?RYt}e=?HXD@ zyjsXSk5~VWmlv*`yY}ui&epV$+G{7J^e@B{FVDF z%PLDUi{nEUFt;!%$boKUMA)a>nA@2n>2n0bVGlzEJKoOuHAw}^RCU=o-G76Hr5j}LJ=zPwMcBq1&Fw#5H2;Tz#wNveqz zr053mq^8NGH@Gu>)&!5pVqkqP!8Q;wK^Us+u5?eYV7{OoS$W%H%*2T|H8u?iw!n;2&otXS{X0q%^ zY|>%DemaeAr_&PYE}4if`t(D(Xd0YTAFS9_aA0f8^Ik1i1~ot=NlFl#Rc1b^ded{j zrxAY9r%UOgw9jL+MPY?qX|0w~L(%TZhh)oqi6|eyV8Axj6n!wEk zxh}hnBOFNhsnhs-S5I6ECNNtxCe{dYVwfo5w9&L9aKQRGd=3XKhk-;nPjs4dB7|AH z)?u=mU@eeU^z|g5uY%iRH@gfrH5h;em0?rG%c@6#R3#~OtPLtiGSI2C>7A5!f25n~ z+*ePhUZywGL!!Qx*4}C0H~S49iEHyVy8JIWv%$~CoOF_B30M*cTX zyqvS4kY!C~)&#Xs&6&I=o5cfk1JL#00lSsht@v}0)bDJrE_yF`Sf|Nuw3)0HP(TG( zET(E>tx03h5OtE0K!$e6&ekWqR^6Q<~X*BfRr<1Pc0k_z;5hyz!cU8v>p{n z{YymbtbjF;YY`h{svQ;LO^^>I&hmiF4dAxhtWKNFMjC?NR%jvnihAGJP?onf4VS^l z8A1#HyooaK4Sd!$e4u@2qz{h5puR!YQaQM_Yh8dS?0&njKiu2e&_+^!XlM;|z#uf3 z>UELQlh60fggNm1M(HxMnpJ~_WVDy=-{0Q3KMne8qGdjk%&$L1Z$Fhn-=}x;DKsVZ zYg)pu7Y%X3R_+iSgfq}@8HReWx}g~wEq1NlY}G>%kX(BEU{W90ak<=fs~sBSPj&V< zpz?vFp3S8j5mK+kA%%z4Xf<06AOR)Ru`E~+qAY7P^A~?kvlxj5A&W?mfEh~}triEq z5e9k#*7G&JlfQj)(iX&{(V{c57N{fIi6{h?pb=Z44E2ck1mF`mT28&fv2{Fm`1kbI zloK?4{s(jeU6A@iEF+dFVnJ`wTQ*78Yu3SfSmnzMD;y@yXf~KwFWgTam9UXBB> zaaN8rIKvTF14+Gt(`JPb?5m7sIkrG~32cXq`ht$q{``Yg9{`;Rbke^7O(*c}mUmz7 zDGp}&GEqBZt4gG}lqNII5)eAsHqm2gu{1#t0-T%s(DQEBp+i1@AZT@1t>6MT30Zuq zv}D;^^j{CtB}Wm$bLrFcc776_lNyW7i+wAqu9Hfk2(ex|yt}o1C=EW{GVoGJ&((ko zh%D)0-E&!6S7fY|EQPtiPw$@n<+|SLUCLvy4~E^H!R~P1&S)nNr@7ZR1jpbL$-&&g z%zazym%}P3tt!ta77G^=T0eE|4tF>1I?($L_`qxNT8I<;dZ(GZ!PkizBvuVK7oKEu z3^itrQK!|Y)JlWIYy<;qz)7qMDO!lZWe8e4=6dr%=!f@0M>;#hVXw0Xx-33ZL_w12 z+w`6eiGaRFZ%?F;#WF--w>ZsK6RxBb@nZy&+HA<@WnkhAc9X-5$iwL;5wLT1J1R=M zJ?iLjw;^Dyd$>`K{FGz`v$3>j%Q{I#O~L8~#rK-$gA}Ds?<#8*_dqwaH9Ok~E~69n za)-F6t=o06>CC_gxo}B1e6VkrLq&x;%L5VCr?OhOP4EOf&8-AAr-mA<0!WFq1|^&% z%TC5lp>i30@efq{hh>*jPsEz(Ya%$e{rzQwB=vk;K7b=`r|@WZ`(B*mKR*37pMvPp z;N)09%j(%2V^Lk1M6Io@)vJl5NK*(oknb&tmUxv>#Gl<{Hv?>~EG(_vK~gWOs|^*X z>K-||@{i(nL#wG5fi&&P$MlYAspt6{>4zdHQk7OzX|+bP&Onyz66Q1(M9o&YPZ2`R z?Y6pYZhzNM_#{U@9w}Hpji2~)jwtowqicqKHx2gH_qMeK0+E0XIJU2Lw|H3GUt>2n z)Bq>)#bVlkvI(@UK2_o*+ z@a~R1d(U1Z(KaERVLwl!vyxmH(Z~H_l3MGjZm;Wu7Ovjj>aBNw(Cc?MhngCp0em`} z&W_ej!m3O=Y9$(@#T=g`m)WTgC=crfC4Z7rAJ8YD9XN}PSgdB7nM13Jg^Zv_JDa0> zqexk1)}!)O6IJO%qfYoZKmR#icn^Q);s>&_i*+P*pM^Ce){3B{(b#78o4j@Ss@|y6 zi^a8XKt6f(Xy!;7JxPy?y7wM9*L8sWp56lrA*V$fF15bs=7}Sd7$2PYTv9n$Sh=1g z56DKZGLn?o2XrQX6P=a%HRd*m7OgLSCT$}WhjujLkcuohwG|agr9Q4pRc>>OdZ?z| zZ~`aOhy3P(=l8v5kCTA6tLWZsfhI=$Iwv=Cdn`+abOPvfcsHK;9hMwN-bZG}QxDy^*oIjDRF zKad89ICh2uE}sMSIIvhu!3%5nq;ft&NIV2xH`#z`ki)J18{T!*i=8({?c#juq?tx2ubi)EW@9xSQSDGWMOZf$uPsw%Zt??=_t z<_rV*(>Gc3rzOvmjK-p)f+(Fy_t061u@SmTlwmFwmzR~56pJ^)7T6IfZ_etkIs*R! zK`z93z2|#A+jorYKCr*#6KI8?4$5%Bbryq3Syw7A)yjZH?V+|J(IjZMQHS-x;kK5p zVExY1t~PtX8UR1+R5e!l6)rPM3(ku0VJ;ST->|P_ghZy>Te#{+1441I9%WbR76rh5qJqkW75k4dWxpgeRO8xPgB20 z+KcwY%h7Zj8xe?&W%>&Fn!L@M3!mRIy^OyF zh%pH`yVv16L+>A=_lD{H1YB-b=m0N^boCw$oxBH7Z9`JF53c{D(I&-F}$>qZZ z325vxsAVOFnmUC}qf;vL3Q8oe0eSJcj`yY^;c{?xM@P6j+T7W*tNw_s)#~B`_8#A0 zTcFkE23a2zdz{jMc1MkcA9)Lv^1{^j zG=7sm&4CzkT90}U4*U0`(X-)50~WU)v8r~yHPe-VuRM*uA}|FF3!f;a7YccUb(f_ zZUx@OkyJf@7w}1l__dZSRgPG!tgcnd3|fN{2dDAs0!RS{>LU?C?*o%uSjpd%%};ur zpDfMJdP*%r;)?pU!Y=hn>q+WrwU3R1f2(CQeJpzE}eL0G`8$=$_R?}1v)eJ zP^=|(QiKpTvu3kKULmWkQyMj(1+_;X#K!hEc67D0cJ1*t5l6rl7tlssy*wa^C^i;9(@662?Q_6WTNPQw>%$9srTDXiI0wn-u}nsjUh zWLk6VxlWR*kl4{6K#@61Qdyy@GoViZdYj2*Le9-Lm=Ed(&FCX`BdhdrBksdZ`+Cm5 zHS!heqrk3~?+_dTm0bZ@=9PttEFxP|yg9Q{rm50b!)#ddIs5>Pwq|E@H4pz$5zANU@GKXN*@0daN6VYSEU zJ7n>*;69MqR4$EM>DEWIA)Ny{;CHt7qQ{0vOJi@htp|cyXC1mZ8_LBcdM*0iEYT!Y zD1vR%pv85dFI90YMI#pIubV@Y01k_ z$;w6rZ^ld_FGddnj@^NtE?@hwip;oznRGz;LkN)fi}T`N&!LkP{AhcC|&?9Bvz`67cBldI#ZOOqvUip~`*K zvQoWXoKc%qA}&!Y3@W37jYlfXpz_8Qdh!Q+(&gCqqk^M!P9ohxQ$+!tOOaLrS+(UA zH4nM)>mbE%P(@$54gLkQYd@N=pkhDAy>M zPs5U3a27mvKX}nDJ|e#m-w!CLais)Sq_P_oV2T(e!f|xi@Oz;N^O}`S80%$O)6uZp~6s&NK@HW9<5W- zsPU66C*Szj(hKOD)D0M0p@DcOIs?)A`p}yPzCCszOfcwBZ;7yG1t?ucpMm(2`fP_g zFzyl625NnBU!Aoav89dsc82veuN6ML`SDk_zd>rNRT85N$D_rkXb!Eq(4yn~l((K} zD()z5sPpT>T4XCu^xIkhwb_-^t)E++oD;<;pmC$KntWdVQ#T#{nq>d97a=DHz zDE`~;iB#G)bEE{EeqnvTf1u%`4mz>#>*3S>h}#$N`+OW10OCsOk5m>;1D#og=0W8# z1>i88J?Ptsen1G_^J4{lYw&@QGa`8yV^R0(X0BQK_@-5vPZrJ7mg>q?TV%`Cg^F^m z+-Oj1Nwr+9*4LTiq{f6Yjq8(q^?|EvC4zrDgcNWvDgrI1w;6om-PHq@Ab71o=ia6R zXZHVi;7Z^3E#DGnlS3wKd3rB@WApmPE$v&oGs88UC9cgmRN;P(g(JJk#gB!D_t6Pg z=tP=G+FFE2j4<@3T~^1>foEa6t=LuIsPZdYHBNl19=Tmo2wMs}A`ZV}u;E~f&lQPy z{T>(6RlnLPM|Gz%6-bFpr#G2!2~8nO(9q8|qNV<>i9+MWF=FY3h^YbB%Y*`MwwT$f zs=^||U*ta)Zrr-?S#(f1@qTslw$aseMG>81tY=*{@CK~U(v)HGI*XDh`NZ;>+jv3d z^ootON}bWjYPc$!#G?r6Tyd*g0(nbeGfGqqI$NzsPZj@}@QI=U2XIizAoYkA+UdNubHE{b6>a z$|mDvsGtB7)$9jI?_^?Ds{SHRy^-xY2k9)CFO zc6eM~8yX5KIPwrLn3jBrW_?26x-7W*8jhAevs^R?M|&FEy`kYhx11yHRzC=PVV`ri zhtBGu4_z9dB1gnl4`Dc1)t%e&?1AU3d>U+mO-Rhif9`Bt_ch3`IUDbxv%vxSoEkZw zvxeWggnyjKbMO}WUS2(_jadFwfv88(P~$1X;3*nAH0l`i(iKRH#FFg76^dt!1s1hY zTt^IMqZvbf&PHL=SM?V?Us?TVxNO88n0OXGQ02R=#9A6 zJCIDJ#onWpqSVq1?Ms>+=*lHM>|A*izC#}8WtzbD-1JpeQXe*X|)a0z`` zR!Pt5j8CHjFt*bpcZpNC(?$?$-C|yL9KOFBk37 zo-mM98xj?Wj2&*S-#O^-sXxdLtN$H0XuX{&j4jyj(;S&SB>e{O9D-}yjGE~~S_*9jsDhQG?Hf|EUMvQ#29<$TvHU^a*RZ!xQ_r2J; z#-oT-lZJ|@qE+j(c+v0q3NG*Z?A`j1FJSkfZHhZ4J~gsRQV#iwGI3R{Se1tr8aNYI ze zFLL{5(BG%q=pK=r)mo&6^|FjyafYS_19(!%4OO*BhYI&gPinlVC=gjczz6jo^j$gn z{(1Nv?9{eM+RA%2bS~=H5l}j%KABe$(E5osfLy*2qRyz->-G+Ldytb47`t>4lZ|y4 zJX(7lC<$myTI3Z)#x45}DAamB@&V<6G)GLTutkIThOVtI2Y}6U+ zf_W|F^=hA?0hu!{9x4^9*GVGYP{8ANd#x_;SOPj5`h&^KW9P5*Nd)i2vP6guYrwuM zFuXI+%Hg&T=d=gWw{;OJP15UiYO{{DRNh<06S9V{7Am($w^nb_DNys9kZ$NhaL|6R ztGUzRw7cAqmV?nFp%G&BwEVICCvu2xxP;y>>_<0-L&D_X_BakT^>?*4Mq0QC1hfvt zxEd$5rYemTBO`{NyDSQeaGN$$o?W#fd)ubEP1q7r5vX&ULfCP;Y&1415oqWvJ1*fas^Rmy$Ebz|osL?z&QvHP zRVty;jg&BA8+P>h4>WzV^Ges(;r&*pD_lPm+KW!IHy+v}J77(bq=dC(&(hR9!_VVq z@Gs0*TB(rfR2XrqbF0x!*L6TIfvBy?+3edL8rpNI^@PLc>xdrm^g$a8R!4FWLE5;- z^|IlK!i=msr9SQ>t2_n_)FroFU0fre28?OF^L64#?1HG((xMNm-`_gSCk6Ny?Avf- zcqJZXrtKJfFRMon$ZidJ$bpVekDok*f-&PVy}O6r;cT%rL6m&9<@plu(pyWu+wxYy zaBkBo3>leF8)axV=OEuuc@Zik8TY*|{2-vY^e);(7t-&)PHc_+RfIOlo7M>Jx{&6~ zwmyt=@vp)PBR^TSKJIqoA+^eE9N!XjSY7u02iiMnBE9hfojh`>`*h>muEV%{9R*eph9OvczI~f- zx>XS>3sf}7+jK5OKW^c4j0Fr2y7o79?+k}MVRTA@alx*F3bjnF$8eMu$YxOW=?}6t zIeiNE0>IG~5ng%w?7sbjkzh-UHyCVi#Tih4e)A6WgjR3Ul%f(eSq;QybecSDJ+gUJ zhbG*gHRR^=_dJQ)Qu=p=<~~y|>(uX3cGX7IUWvEPY6c~z#BGxbbE#%c?WPReU(~qt zp|s?K{1f!ftJ@`lSOUG97JZ)haqI~CX>Fd?2=Tgv1IA``dqsmJR1+%M^C$wy$v=%j zd(^-Lj0WS{9l{b>kwQN9c|iOFfl8OuSL0XJ>)XshokxdqRk#_ppt85>teW6!2RD6! zlj7yv)?Uw>T_<;6Jbm%YkG{J2*Hb@r{e}1jYz@$fhS6#9s842&EJ2ZqJ7%TI>Mc+} zik*`C)_ z&3OVjwV3@{Zhzs3M+?6>$(c%mAVVandT7ESlc1|=5vReKgK79oU z*P=4fTgr{4HJTc;!4mI|#%1uD$N}~MR8|Wge(r(i=RaRqg~mXuQ=>i8W5vcWIO7ov zjIT9vyD$Pf@D9+Yjpxzn=OADm@f>U0KeVT3*NMXM;qg;VtqwPW*{5-;a2y7tz;d$!qm3JYzuU0}NM+Ju{j)_Y zHy4%{<<(_k&^>Nj)NUM3fb(FuYACR;BRE8y?QUx~kmjVrFls(*A@MJ9_&gXDz$iUB zng|m{N9QEPX3i1C)8wBY7<)4M%LBUQmj`t0!Fc)P*hjZseM2OPUY*Oe_9mrGO7uN@ z;|*}*q>)J@lhY<8UAr;m`u9r=lZ=`8m+bhtH-35~!0(mt)2*>9hWR)AR_WjH!L!T) zJXhoSFrEwXOvm%Lt(}jsaW=_Hn%-n=r=GH_7b8EsjW>(??=9Yw=%tMJ^;I;PJ zw~3RPM-%gyxrw(j^MqN*W6i D*cS&b literal 0 HcmV?d00001 diff --git a/fonts/CommonHTML/TeX/otf/MathJax_Caligraphic-Regular.otf b/fonts/CommonHTML/TeX/otf/MathJax_Caligraphic-Regular.otf new file mode 100644 index 0000000000000000000000000000000000000000..3fcf0c186e0b5e3850fe9650ddce142e7dd92857 GIT binary patch literal 12024 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 literal 0 HcmV?d00001 diff --git a/fonts/CommonHTML/TeX/otf/MathJax_Fraktur-Regular.otf b/fonts/CommonHTML/TeX/otf/MathJax_Fraktur-Regular.otf new file mode 100644 index 0000000000000000000000000000000000000000..1d8e3e3ea9bb00a7931bfdc991b49b07c424bea8 GIT binary patch literal 25872 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 literal 0 HcmV?d00001 diff --git a/fonts/CommonHTML/TeX/otf/MathJax_Main-Bold.otf b/fonts/CommonHTML/TeX/otf/MathJax_Main-Bold.otf new file mode 100644 index 0000000000000000000000000000000000000000..01dd29031c31305278c54db84c92fb4c8d39f7cd GIT binary patch literal 46796 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 literal 0 HcmV?d00001 diff --git a/fonts/CommonHTML/TeX/otf/MathJax_Main-Italic.otf b/fonts/CommonHTML/TeX/otf/MathJax_Main-Italic.otf new file mode 100644 index 0000000000000000000000000000000000000000..6578ddf24adc7ed349391c7c885915b32f9c6d68 GIT binary patch literal 28220 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 U#y(umi{-ua&9uCJ=lPre1C5<t<8 literal 0 HcmV?d00001 diff --git a/fonts/CommonHTML/TeX/otf/MathJax_Main-Regular.otf b/fonts/CommonHTML/TeX/otf/MathJax_Main-Regular.otf new file mode 100644 index 0000000000000000000000000000000000000000..38e46c390753b8dd288446beb3aee70b47e33c62 GIT binary patch literal 47636 zcmdSBcVHCd_BTGWo827&Bd{)F3n7RgA|>=99Tb(`OMvv=%cgH{^UU^=O>d<4EG<;& zcHvr440tbI(Tie1pT!B+_sk|Jw)?%`-~0aa%O*RsGqX=U&pDs-Ip@imjT_exg9$mo zC#Ec2u_AC;Mo~9G40(wl8h>7~V&keUC$%pVM30vsh{v8=wtNM-mhdBp{cxWMT(eV;^zj7*A-YNselNsChDHc(-P#5Bj>6x}7`Q+s`c=dEE%k_DzKQ zfdmQfB(eDPmuJ@ReqjC n)xI$cf;={1J$2*FDeqSHowD;Bi;s2foKw_vI7Y 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 P4?nnw?~i?V>)ZbizKTkG literal 0 HcmV?d00001 diff --git a/fonts/CommonHTML/TeX/otf/MathJax_Math-BoldItalic.otf b/fonts/CommonHTML/TeX/otf/MathJax_Math-BoldItalic.otf new file mode 100644 index 0000000000000000000000000000000000000000..c0a12ee9c21ac8c3a8aabd07cdcb6f960baf704b GIT binary patch literal 27092 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 Kz4vkcAAbYy2kX56 literal 0 HcmV?d00001 diff --git a/fonts/CommonHTML/TeX/otf/MathJax_Math-Regular.otf b/fonts/CommonHTML/TeX/otf/MathJax_Math-Regular.otf new file mode 100644 index 0000000000000000000000000000000000000000..8f8cec49e9c14849b81be88f19a0599bb21fc12b GIT binary patch literal 26324 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 literal 0 HcmV?d00001 diff --git a/fonts/CommonHTML/TeX/otf/MathJax_SansSerif-Regular.otf b/fonts/CommonHTML/TeX/otf/MathJax_SansSerif-Regular.otf new file mode 100644 index 0000000000000000000000000000000000000000..739502be40b0b3ba3c8828f2023bb059a18a292a GIT binary patch literal 15920 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 I=XbvOKb&BzkpKVy literal 0 HcmV?d00001 diff --git a/fonts/CommonHTML/TeX/otf/MathJax_Script-Regular.otf b/fonts/CommonHTML/TeX/otf/MathJax_Script-Regular.otf new file mode 100644 index 0000000000000000000000000000000000000000..48481f30ce7e282e282d5c509b1e4575fe2a876c GIT binary patch literal 14612 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

vzOAgIu9n+siej&bH%DSyQ2qG^ZS4r)e$)zhn0 zO05ChXJKXP;@gAC11aXsq$Ro7e@2&L3SMWvIGOY1A!aXgA$L9A9gz>3JfsJ#YF{wb zJwEl~@bFkH><&47u=K2LMJ_M+4m+kvn+7yxL(}&1;wo;buteFY7Xzf>`dZ>5)YGs} zau&DYcAF1o9bS6J_KCVvV8aj2u)Y|k#ezt)Mxv2yzC+9}uahao8adzq5=+5&Y>%kA zP|oLvEUeY@VjtK5tJ~tS037%RmE~VWWpcT=3O8USWu(=ys^g+x;}7v?v(sl=yZjx| z{V2NM6K(DB1ZcmvBR1&?^tJ-Fu)zS_=2k7N4+&leZLQn<#O|_^y|uDx+=yj<7ACtA zb~^=z!)+f4&a{trq7M$gapBmdXuBukjN05V0Y1xULu&~rklt#v?$&RvetI2xZu_Hm zSFBfw)O?eKG+NC7Jgq#dE^n@u`6L%>jY@@RWtzC>f!lYAwMN!d#F(3z2YOPioi2AG zkxI1%;uu8(MrD3B^I+Am9zZlxkvfpNJUl+^6))~d&E53M-g9T(n4_k1W-ncSHTN&G zu^Ts(DY+I6sR3i8rwle@uzb4Z# zSifT0@(jONT&=7()Ek8W@{bqPN`&U?uc0KN3s`d!2ER5ISynux@`0SjezAz7A! zoj{0yjCzBk0~i~Og%g30KM)RkX||7mBeYm!kg3E_(VzFQihp

8wb8j*kbh^3G2DS2wkX&t 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 literal 0 HcmV?d00001 diff --git a/fonts/CommonHTML/TeX/otf/MathJax_Size1-Regular.otf b/fonts/CommonHTML/TeX/otf/MathJax_Size1-Regular.otf new file mode 100644 index 0000000000000000000000000000000000000000..3e6380cd1ef646666b17abf43acb40c96ca939e9 GIT binary patch literal 8248 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 K@a(r^KmG@$YiC0M literal 0 HcmV?d00001 diff --git a/fonts/CommonHTML/TeX/otf/MathJax_Size2-Regular.otf b/fonts/CommonHTML/TeX/otf/MathJax_Size2-Regular.otf new file mode 100644 index 0000000000000000000000000000000000000000..f87d4128c451eef358a5a5b3d8e50662103ecf37 GIT binary patch literal 7604 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 literal 0 HcmV?d00001 diff --git a/fonts/CommonHTML/TeX/otf/MathJax_Size4-Regular.otf b/fonts/CommonHTML/TeX/otf/MathJax_Size4-Regular.otf new file mode 100644 index 0000000000000000000000000000000000000000..d6fe72cc4c1b4e330ee6dd7a06970e01232b481e GIT binary patch literal 7364 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 Date: Sat, 14 Mar 2015 17:43:17 -0400 Subject: [PATCH 074/186] Add font data for the rest of the MathJax fonts, and support for loading them. Currently, there is support for one extra file (not the multiple extra ones from HTML-CSS). --- .../CommonHTML/fonts/TeX/AMS-Regular.js | 288 ++++++++++++++++++ .../CommonHTML/fonts/TeX/Caligraphic-Bold.js | 98 ++++++ .../CommonHTML/fonts/TeX/Fraktur-Bold.js | 124 ++++++++ .../CommonHTML/fonts/TeX/Fraktur-Regular.js | 124 ++++++++ .../output/CommonHTML/fonts/TeX/Main-Bold.js | 208 +++++++++++++ .../CommonHTML/fonts/TeX/Math-BoldItalic.js | 207 +++++++++++++ .../CommonHTML/fonts/TeX/SansSerif-Bold.js | 151 +++++++++ .../CommonHTML/fonts/TeX/SansSerif-Italic.js | 151 +++++++++ .../CommonHTML/fonts/TeX/SansSerif-Regular.js | 150 +++++++++ .../CommonHTML/fonts/TeX/Script-Regular.js | 87 ++++++ .../fonts/TeX/Typewriter-Regular.js | 153 ++++++++++ .../output/CommonHTML/fonts/TeX/fontdata.js | 222 ++++++++------ unpacked/jax/output/CommonHTML/jax.js | 48 ++- 13 files changed, 1912 insertions(+), 99 deletions(-) create mode 100644 unpacked/jax/output/CommonHTML/fonts/TeX/AMS-Regular.js create mode 100644 unpacked/jax/output/CommonHTML/fonts/TeX/Caligraphic-Bold.js create mode 100644 unpacked/jax/output/CommonHTML/fonts/TeX/Fraktur-Bold.js create mode 100644 unpacked/jax/output/CommonHTML/fonts/TeX/Fraktur-Regular.js create mode 100644 unpacked/jax/output/CommonHTML/fonts/TeX/Main-Bold.js create mode 100644 unpacked/jax/output/CommonHTML/fonts/TeX/Math-BoldItalic.js create mode 100644 unpacked/jax/output/CommonHTML/fonts/TeX/SansSerif-Bold.js create mode 100644 unpacked/jax/output/CommonHTML/fonts/TeX/SansSerif-Italic.js create mode 100644 unpacked/jax/output/CommonHTML/fonts/TeX/SansSerif-Regular.js create mode 100644 unpacked/jax/output/CommonHTML/fonts/TeX/Script-Regular.js create mode 100644 unpacked/jax/output/CommonHTML/fonts/TeX/Typewriter-Regular.js diff --git a/unpacked/jax/output/CommonHTML/fonts/TeX/AMS-Regular.js b/unpacked/jax/output/CommonHTML/fonts/TeX/AMS-Regular.js new file mode 100644 index 000000000..bcd4b7a37 --- /dev/null +++ b/unpacked/jax/output/CommonHTML/fonts/TeX/AMS-Regular.js @@ -0,0 +1,288 @@ +/************************************************************* + * + * MathJax/jax/output/CommonHTML/fonts/TeX/AMS-Regular.js + * + * Copyright (c) 2015 The MathJax Consortium + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +(function (CHTML) { + +var font = 'MathJax_AMS'; + +CHTML.FONTDATA.FONTS[font] = { + className: CHTML.FONTDATA.familyName(font), + 0x20: [0,0,250,0,0], // SPACE + 0x41: [701,1,722,17,703], // LATIN CAPITAL LETTER A + 0x42: [683,1,667,11,620], // LATIN CAPITAL LETTER B + 0x43: [702,19,722,39,684], // LATIN CAPITAL LETTER C + 0x44: [683,1,722,16,688], // LATIN CAPITAL LETTER D + 0x45: [683,1,667,12,640], // LATIN CAPITAL LETTER E + 0x46: [683,1,611,12,584], // LATIN CAPITAL LETTER F + 0x47: [702,19,778,39,749], // LATIN CAPITAL LETTER G + 0x48: [683,1,778,14,762], // LATIN CAPITAL LETTER H + 0x49: [683,1,389,20,369], // LATIN CAPITAL LETTER I + 0x4A: [683,77,500,6,478], // LATIN CAPITAL LETTER J + 0x4B: [683,1,778,22,768], // LATIN CAPITAL LETTER K + 0x4C: [683,1,667,12,640], // LATIN CAPITAL LETTER L + 0x4D: [683,1,944,17,926], // LATIN CAPITAL LETTER M + 0x4E: [683,20,722,20,702], // LATIN CAPITAL LETTER N + 0x4F: [701,19,778,34,742], // LATIN CAPITAL LETTER O + 0x50: [683,1,611,16,597], // LATIN CAPITAL LETTER P + 0x51: [701,181,778,34,742], // LATIN CAPITAL LETTER Q + 0x52: [683,1,722,16,705], // LATIN CAPITAL LETTER R + 0x53: [702,12,556,28,528], // LATIN CAPITAL LETTER S + 0x54: [683,1,667,33,635], // LATIN CAPITAL LETTER T + 0x55: [683,19,722,16,709], // LATIN CAPITAL LETTER U + 0x56: [683,20,722,0,719], // LATIN CAPITAL LETTER V + 0x57: [683,19,1000,5,994], // LATIN CAPITAL LETTER W + 0x58: [683,1,722,16,705], // LATIN CAPITAL LETTER X + 0x59: [683,1,722,16,704], // LATIN CAPITAL LETTER Y + 0x5A: [683,1,667,29,635], // LATIN CAPITAL LETTER Z + 0x6B: [683,1,556,17,534], // LATIN SMALL LETTER K + 0xA0: [0,0,250,0,0], // NO-BREAK SPACE + 0xA5: [683,0,750,11,738], // YEN SIGN + 0xAE: [709,175,947,32,915], // REGISTERED SIGN + 0xF0: [749,21,556,42,509], // LATIN SMALL LETTER ETH + 0x127: [695,13,540,42,562], // LATIN SMALL LETTER H WITH STROKE + 0x2C6: [845,-561,2333,-14,2346], // MODIFIER LETTER CIRCUMFLEX ACCENT + 0x2DC: [899,-628,2333,1,2330], // SMALL TILDE + 0x302: [845,-561,0,-2347,13], // COMBINING CIRCUMFLEX ACCENT + 0x303: [899,-628,0,-2332,-3], // COMBINING TILDE + 0x3DD: [605,85,778,55,719], // GREEK SMALL LETTER DIGAMMA + 0x3F0: [434,6,667,37,734], // GREEK KAPPA SYMBOL + 0x2035: [560,-43,275,12,244], // REVERSED PRIME + 0x210F: [695,13,540,42,562], // stix-/hbar - Planck's over 2pi + 0x2127: [684,22,722,44,675], // INVERTED OHM SIGN + 0x2132: [695,1,556,55,497], // TURNED CAPITAL F + 0x2136: [763,21,667,-22,687], // BET SYMBOL + 0x2137: [764,43,444,-22,421], // GIMEL SYMBOL + 0x2138: [764,43,667,54,640], // DALET SYMBOL + 0x2141: [705,23,639,37,577], // TURNED SANS-SERIF CAPITAL G + 0x2190: [437,-64,500,64,422], // LEFTWARDS ARROW + 0x2192: [437,-64,500,58,417], // RIGHTWARDS ARROW + 0x219A: [437,-60,1000,56,942], // LEFTWARDS ARROW WITH STROKE + 0x219B: [437,-60,1000,54,942], // RIGHTWARDS ARROW WITH STROKE + 0x219E: [417,-83,1000,56,944], // LEFTWARDS TWO HEADED ARROW + 0x21A0: [417,-83,1000,55,943], // RIGHTWARDS TWO HEADED ARROW + 0x21A2: [417,-83,1111,56,1031], // LEFTWARDS ARROW WITH TAIL + 0x21A3: [417,-83,1111,79,1054], // RIGHTWARDS ARROW WITH TAIL + 0x21AB: [575,41,1000,56,964], // LEFTWARDS ARROW WITH LOOP + 0x21AC: [575,41,1000,35,943], // RIGHTWARDS ARROW WITH LOOP + 0x21AD: [417,-83,1389,57,1331], // LEFT RIGHT WAVE ARROW + 0x21AE: [437,-60,1000,56,942], // LEFT RIGHT ARROW WITH STROKE + 0x21B0: [722,0,500,56,444], // UPWARDS ARROW WITH TIP LEFTWARDS + 0x21B1: [722,0,500,55,443], // UPWARDS ARROW WITH TIP RIGHTWARDS + 0x21B6: [461,1,1000,17,950], // ANTICLOCKWISE TOP SEMICIRCLE ARROW + 0x21B7: [460,1,1000,46,982], // CLOCKWISE TOP SEMICIRCLE ARROW + 0x21BA: [650,83,778,56,722], // ANTICLOCKWISE OPEN CIRCLE ARROW + 0x21BB: [650,83,778,56,721], // CLOCKWISE OPEN CIRCLE ARROW + 0x21BE: [694,194,417,188,375], // UPWARDS HARPOON WITH BARB RIGHTWARDS + 0x21BF: [694,194,417,41,228], // UPWARDS HARPOON WITH BARB LEFTWARDS + 0x21C2: [694,194,417,188,375], // DOWNWARDS HARPOON WITH BARB RIGHTWARDS + 0x21C3: [694,194,417,41,228], // DOWNWARDS HARPOON WITH BARB LEFTWARDS + 0x21C4: [667,0,1000,55,944], // RIGHTWARDS ARROW OVER LEFTWARDS ARROW + 0x21C6: [667,0,1000,55,944], // LEFTWARDS ARROW OVER RIGHTWARDS ARROW + 0x21C7: [583,83,1000,55,944], // LEFTWARDS PAIRED ARROWS + 0x21C8: [694,193,833,83,749], // UPWARDS PAIRED ARROWS + 0x21C9: [583,83,1000,55,944], // RIGHTWARDS PAIRED ARROWS + 0x21CA: [694,194,833,83,749], // DOWNWARDS PAIRED ARROWS + 0x21CB: [514,14,1000,55,944], // LEFTWARDS HARPOON OVER RIGHTWARDS HARPOON + 0x21CC: [514,14,1000,55,944], // RIGHTWARDS HARPOON OVER LEFTWARDS HARPOON + 0x21CD: [534,35,1000,54,942], // LEFTWARDS DOUBLE ARROW WITH STROKE + 0x21CE: [534,37,1000,32,965], // LEFT RIGHT DOUBLE ARROW WITH STROKE + 0x21CF: [534,35,1000,55,943], // RIGHTWARDS DOUBLE ARROW WITH STROKE + 0x21DA: [611,111,1000,76,944], // LEFTWARDS TRIPLE ARROW + 0x21DB: [611,111,1000,55,923], // RIGHTWARDS TRIPLE ARROW + 0x21DD: [417,-83,1000,56,943], // RIGHTWARDS SQUIGGLE ARROW + 0x21E0: [437,-64,1334,64,1251], // LEFTWARDS DASHED ARROW + 0x21E2: [437,-64,1334,84,1251], // RIGHTWARDS DASHED ARROW + 0x2201: [846,21,500,56,444], // COMPLEMENT + 0x2204: [860,166,556,55,497], // THERE DOES NOT EXIST + 0x2205: [587,3,778,54,720], // EMPTY SET + 0x220D: [440,1,429,102,456], // SMALL CONTAINS AS MEMBER + 0x2212: [270,-230,500,84,417], // MINUS SIGN + 0x2214: [766,93,778,57,722], // DOT PLUS + 0x2216: [430,23,778,91,685], // SET MINUS + 0x221D: [472,-28,778,56,722], // PROPORTIONAL TO + 0x2220: [694,0,722,55,666], // ANGLE + 0x2221: [714,20,722,55,666], // MEASURED ANGLE + 0x2222: [551,51,722,55,666], // SPHERICAL ANGLE + 0x2223: [430,23,222,91,131], // DIVIDES + 0x2224: [750,252,278,-21,297], // DOES NOT DIVIDE + 0x2225: [431,23,389,55,331], // PARALLEL TO + 0x2226: [750,250,500,-20,518], // NOT PARALLEL TO + 0x2234: [471,82,667,24,643], // THEREFORE + 0x2235: [471,82,667,23,643], // BECAUSE + 0x223C: [365,-132,778,55,719], // TILDE OPERATOR + 0x223D: [367,-133,778,56,722], // REVERSED TILDE + 0x2241: [467,-32,778,55,719], // stix-not, vert, similar + 0x2242: [463,-34,778,55,720], // MINUS TILDE + 0x2246: [652,155,778,54,720], // APPROXIMATELY BUT NOT ACTUALLY EQUAL TO + 0x2248: [481,-50,778,55,719], // ALMOST EQUAL TO + 0x224A: [579,39,778,51,725], // ALMOST EQUAL OR EQUAL TO + 0x224E: [492,-8,778,56,722], // GEOMETRICALLY EQUIVALENT TO + 0x224F: [492,-133,778,56,722], // DIFFERENCE BETWEEN + 0x2251: [609,108,778,56,722], // GEOMETRICALLY EQUAL TO + 0x2252: [601,101,778,15,762], // APPROXIMATELY EQUAL TO OR THE IMAGE OF + 0x2253: [601,102,778,14,762], // IMAGE OF OR APPROXIMATELY EQUAL TO + 0x2256: [367,-133,778,56,722], // RING IN EQUAL TO + 0x2257: [721,-133,778,56,722], // RING EQUAL TO + 0x225C: [859,-133,778,56,723], // DELTA EQUAL TO + 0x2266: [753,175,778,83,694], // LESS-THAN OVER EQUAL TO + 0x2267: [753,175,778,83,694], // GREATER-THAN OVER EQUAL TO + 0x2268: [752,286,778,82,693], // stix-less, vert, not double equals + 0x2269: [752,286,778,82,693], // stix-gt, vert, not double equals + 0x226C: [750,250,500,74,425], // BETWEEN + 0x226E: [708,209,778,82,693], // stix-not, vert, less-than + 0x226F: [708,209,778,82,693], // stix-not, vert, greater-than + 0x2270: [801,303,778,82,694], // stix-not, vert, less-than-or-equal + 0x2271: [801,303,778,82,694], // stix-not, vert, greater-than-or-equal + 0x2272: [732,228,778,56,722], // stix-less-than or (contour) similar + 0x2273: [732,228,778,56,722], // stix-greater-than or (contour) similar + 0x2276: [681,253,778,44,734], // LESS-THAN OR GREATER-THAN + 0x2277: [681,253,778,83,694], // GREATER-THAN OR LESS-THAN + 0x227C: [580,153,778,83,694], // PRECEDES OR EQUAL TO + 0x227D: [580,154,778,82,694], // SUCCEEDS OR EQUAL TO + 0x227E: [732,228,778,56,722], // PRECEDES OR EQUIVALENT TO + 0x227F: [732,228,778,56,722], // SUCCEEDS OR EQUIVALENT TO + 0x2280: [705,208,778,82,693], // DOES NOT PRECEDE + 0x2281: [705,208,778,82,693], // stix-not (vert) succeeds + 0x2288: [801,303,778,83,693], // stix-/nsubseteq N: not (vert) subset, equals + 0x2289: [801,303,778,82,691], // stix-/nsupseteq N: not (vert) superset, equals + 0x228A: [635,241,778,84,693], // stix-subset, not equals, variant + 0x228B: [635,241,778,82,691], // stix-superset, not equals, variant + 0x228F: [539,41,778,83,694], // SQUARE IMAGE OF + 0x2290: [539,41,778,64,714], // SQUARE ORIGINAL OF + 0x229A: [582,82,778,57,721], // CIRCLED RING OPERATOR + 0x229B: [582,82,778,57,721], // CIRCLED ASTERISK OPERATOR + 0x229D: [582,82,778,57,721], // CIRCLED DASH + 0x229E: [689,0,778,55,722], // SQUARED PLUS + 0x229F: [689,0,778,55,722], // SQUARED MINUS + 0x22A0: [689,0,778,55,722], // SQUARED TIMES + 0x22A1: [689,0,778,55,722], // SQUARED DOT OPERATOR + 0x22A8: [694,0,611,55,555], // TRUE + 0x22A9: [694,0,722,55,666], // FORCES + 0x22AA: [694,0,889,55,833], // TRIPLE VERTICAL BAR RIGHT TURNSTILE + 0x22AC: [695,1,611,-55,554], // DOES NOT PROVE + 0x22AD: [695,1,611,-55,554], // NOT TRUE + 0x22AE: [695,1,722,-55,665], // DOES NOT FORCE + 0x22AF: [695,1,722,-55,665], // NEGATED DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE + 0x22B2: [539,41,778,83,694], // NORMAL SUBGROUP OF + 0x22B3: [539,41,778,83,694], // CONTAINS AS NORMAL SUBGROUP + 0x22B4: [636,138,778,83,694], // NORMAL SUBGROUP OF OR EQUAL TO + 0x22B5: [636,138,778,83,694], // CONTAINS AS NORMAL SUBGROUP OR EQUAL TO + 0x22B8: [408,-92,1111,55,1055], // MULTIMAP + 0x22BA: [431,212,556,57,500], // INTERCALATE + 0x22BB: [716,0,611,55,555], // XOR + 0x22BC: [716,0,611,55,555], // NAND + 0x22C5: [189,0,278,55,222], // DOT OPERATOR + 0x22C7: [545,44,778,55,720], // DIVISION TIMES + 0x22C9: [492,-8,778,146,628], // LEFT NORMAL FACTOR SEMIDIRECT PRODUCT + 0x22CA: [492,-8,778,146,628], // RIGHT NORMAL FACTOR SEMIDIRECT PRODUCT + 0x22CB: [694,22,778,55,722], // LEFT SEMIDIRECT PRODUCT + 0x22CC: [694,22,778,55,722], // RIGHT SEMIDIRECT PRODUCT + 0x22CD: [464,-36,778,56,722], // REVERSED TILDE EQUALS + 0x22CE: [578,21,760,83,676], // CURLY LOGICAL OR + 0x22CF: [578,22,760,83,676], // CURLY LOGICAL AND + 0x22D0: [540,40,778,84,694], // DOUBLE SUBSET + 0x22D1: [540,40,778,83,693], // DOUBLE SUPERSET + 0x22D2: [598,22,667,55,611], // DOUBLE INTERSECTION + 0x22D3: [598,22,667,55,611], // DOUBLE UNION + 0x22D4: [736,22,667,56,611], // PITCHFORK + 0x22D6: [541,41,778,82,693], // LESS-THAN WITH DOT + 0x22D7: [541,41,778,82,693], // GREATER-THAN WITH DOT + 0x22D8: [568,67,1333,56,1277], // VERY MUCH LESS-THAN + 0x22D9: [568,67,1333,55,1277], // VERY MUCH GREATER-THAN + 0x22DA: [886,386,778,83,674], // stix-less, equal, slanted, greater + 0x22DB: [886,386,778,83,674], // stix-greater, equal, slanted, less + 0x22DE: [734,0,778,83,694], // EQUAL TO OR PRECEDES + 0x22DF: [734,0,778,82,694], // EQUAL TO OR SUCCEEDS + 0x22E0: [801,303,778,82,693], // stix-not (vert) precedes or contour equals + 0x22E1: [801,303,778,82,694], // stix-not (vert) succeeds or contour equals + 0x22E6: [730,359,778,55,719], // LESS-THAN BUT NOT EQUIVALENT TO + 0x22E7: [730,359,778,55,719], // GREATER-THAN BUT NOT EQUIVALENT TO + 0x22E8: [730,359,778,55,719], // PRECEDES BUT NOT EQUIVALENT TO + 0x22E9: [730,359,778,55,719], // SUCCEEDS BUT NOT EQUIVALENT TO + 0x22EA: [706,208,778,82,693], // NOT NORMAL SUBGROUP OF + 0x22EB: [706,208,778,82,693], // DOES NOT CONTAIN AS NORMAL SUBGROUP + 0x22EC: [802,303,778,82,693], // stix-not, vert, left triangle, equals + 0x22ED: [801,303,778,82,693], // stix-not, vert, right triangle, equals + 0x2322: [378,-122,778,55,722], // stix-small down curve + 0x2323: [378,-143,778,55,722], // stix-small up curve + 0x24C8: [709,175,902,8,894], // CIRCLED LATIN CAPITAL LETTER S + 0x250C: [694,-306,500,55,444], // BOX DRAWINGS LIGHT DOWN AND RIGHT + 0x2510: [694,-306,500,55,444], // BOX DRAWINGS LIGHT DOWN AND LEFT + 0x2514: [366,22,500,55,444], // BOX DRAWINGS LIGHT UP AND RIGHT + 0x2518: [366,22,500,55,444], // BOX DRAWINGS LIGHT UP AND LEFT + 0x2571: [694,195,889,0,860], // BOX DRAWINGS LIGHT DIAGONAL UPPER RIGHT TO LOWER LEFT + 0x2572: [694,195,889,0,860], // BOX DRAWINGS LIGHT DIAGONAL UPPER LEFT TO LOWER RIGHT + 0x25A0: [689,0,778,55,722], // BLACK SQUARE + 0x25A1: [689,0,778,55,722], // WHITE SQUARE + 0x25B2: [575,20,722,84,637], // BLACK UP-POINTING TRIANGLE + 0x25B3: [575,20,722,84,637], // WHITE UP-POINTING TRIANGLE + 0x25B6: [539,41,778,83,694], // BLACK RIGHT-POINTING TRIANGLE + 0x25BC: [576,19,722,84,637], // BLACK DOWN-POINTING TRIANGLE + 0x25BD: [576,19,722,84,637], // WHITE DOWN-POINTING TRIANGLE + 0x25C0: [539,41,778,83,694], // BLACK LEFT-POINTING TRIANGLE + 0x25CA: [716,132,667,56,611], // LOZENGE + 0x2605: [694,111,944,49,895], // BLACK STAR + 0x2713: [706,34,833,84,749], // CHECK MARK + 0x2720: [716,22,833,48,786], // MALTESE CROSS + 0x29EB: [716,132,667,56,611], // BLACK LOZENGE + 0x2A5E: [813,97,611,55,555], // LOGICAL AND WITH DOUBLE OVERBAR + 0x2A7D: [636,138,778,83,694], // LESS-THAN OR SLANTED EQUAL TO + 0x2A7E: [636,138,778,83,694], // GREATER-THAN OR SLANTED EQUAL TO + 0x2A85: [762,290,778,55,722], // LESS-THAN OR APPROXIMATE + 0x2A86: [762,290,778,55,722], // GREATER-THAN OR APPROXIMATE + 0x2A87: [635,241,778,82,693], // LESS-THAN AND SINGLE-LINE NOT EQUAL TO + 0x2A88: [635,241,778,82,693], // GREATER-THAN AND SINGLE-LINE NOT EQUAL TO + 0x2A89: [761,387,778,57,718], // LESS-THAN AND NOT APPROXIMATE + 0x2A8A: [761,387,778,57,718], // GREATER-THAN AND NOT APPROXIMATE + 0x2A8B: [1003,463,778,83,694], // LESS-THAN ABOVE DOUBLE-LINE EQUAL ABOVE GREATER-THAN + 0x2A8C: [1003,463,778,83,694], // GREATER-THAN ABOVE DOUBLE-LINE EQUAL ABOVE LESS-THAN + 0x2A95: [636,138,778,83,694], // SLANTED EQUAL TO OR LESS-THAN + 0x2A96: [636,138,778,83,694], // SLANTED EQUAL TO OR GREATER-THAN + 0x2AB5: [752,286,778,82,693], // PRECEDES ABOVE NOT EQUAL TO + 0x2AB6: [752,286,778,82,693], // SUCCEEDS ABOVE NOT EQUAL TO + 0x2AB7: [761,294,778,57,717], // PRECEDES ABOVE ALMOST EQUAL TO + 0x2AB8: [761,294,778,57,717], // SUCCEEDS ABOVE ALMOST EQUAL TO + 0x2AB9: [761,337,778,57,718], // PRECEDES ABOVE NOT ALMOST EQUAL TO + 0x2ABA: [761,337,778,57,718], // SUCCEEDS ABOVE NOT ALMOST EQUAL TO + 0x2AC5: [753,215,778,84,694], // SUBSET OF ABOVE EQUALS SIGN + 0x2AC6: [753,215,778,83,694], // SUPERSET OF ABOVE EQUALS SIGN + 0x2ACB: [783,385,778,82,693], // stix-subset not double equals, variant + 0x2ACC: [783,385,778,82,693], // SUPERSET OF ABOVE NOT EQUAL TO + 0xE006: [430,23,222,-20,240], // ?? + 0xE007: [431,24,389,-20,407], // ?? + 0xE008: [605,85,778,55,719], // ?? + 0xE009: [434,6,667,37,734], // ?? + 0xE00C: [752,284,778,82,693], // ?? + 0xE00D: [752,284,778,82,693], // ?? + 0xE00E: [919,421,778,82,694], // stix-not greater, double equals + 0xE00F: [801,303,778,82,694], // stix-not greater-or-equal, slanted + 0xE010: [801,303,778,82,694], // stix-not less-or-equal, slanted + 0xE011: [919,421,778,82,694], // stix-not less, double equals + 0xE016: [828,330,778,82,694], // stix-not subset, double equals + 0xE017: [752,332,778,82,694], // ?? + 0xE018: [828,330,778,82,694], // stix-not superset, double equals + 0xE019: [752,333,778,82,693], // ?? + 0xE01A: [634,255,778,84,693], // ?? + 0xE01B: [634,254,778,82,691] // ?? +}; + +CHTML.fontLoaded("TeX/"+font.substr(8)); + +})(MathJax.OutputJax.CommonHTML); diff --git a/unpacked/jax/output/CommonHTML/fonts/TeX/Caligraphic-Bold.js b/unpacked/jax/output/CommonHTML/fonts/TeX/Caligraphic-Bold.js new file mode 100644 index 000000000..3e8a5c40e --- /dev/null +++ b/unpacked/jax/output/CommonHTML/fonts/TeX/Caligraphic-Bold.js @@ -0,0 +1,98 @@ +/************************************************************* + * + * MathJax/jax/output/CommonHTML/fonts/TeX/Caligraphic-Bold.js + * + * Copyright (c) 2015 The MathJax Consortium + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +(function (CHTML) { + +var font = 'MathJax_Caligraphic-Bold'; + +CHTML.FONTDATA.FONTS[font] = { + className: CHTML.FONTDATA.familyName(font), + weight: 'bold', + skew: { + 0x41: 0.224, + 0x42: 0.16, + 0x43: 0.16, + 0x44: 0.0958, + 0x45: 0.128, + 0x46: 0.128, + 0x47: 0.128, + 0x48: 0.128, + 0x49: 0.0319, + 0x4A: 0.192, + 0x4B: 0.0639, + 0x4C: 0.16, + 0x4D: 0.16, + 0x4E: 0.0958, + 0x4F: 0.128, + 0x50: 0.0958, + 0x51: 0.128, + 0x52: 0.0958, + 0x53: 0.16, + 0x54: 0.0319, + 0x55: 0.0958, + 0x56: 0.0319, + 0x57: 0.0958, + 0x58: 0.16, + 0x59: 0.0958, + 0x5A: 0.16 + }, + 0x20: [0,0,250,0,0], // SPACE + 0x30: [460,17,575,46,528], // DIGIT ZERO + 0x31: [461,0,575,80,494], // DIGIT ONE + 0x32: [460,0,575,51,517], // DIGIT TWO + 0x33: [461,211,575,48,525], // DIGIT THREE + 0x34: [469,194,575,32,542], // DIGIT FOUR + 0x35: [461,211,575,57,517], // DIGIT FIVE + 0x36: [660,17,575,48,526], // DIGIT SIX + 0x37: [476,211,575,64,558], // DIGIT SEVEN + 0x38: [661,17,575,48,526], // DIGIT EIGHT + 0x39: [461,210,575,48,526], // DIGIT NINE + 0x41: [751,49,921,39,989], // LATIN CAPITAL LETTER A + 0x42: [705,17,748,40,740], // LATIN CAPITAL LETTER B + 0x43: [703,20,613,20,599], // LATIN CAPITAL LETTER C + 0x44: [686,0,892,20,885], // LATIN CAPITAL LETTER D + 0x45: [703,16,607,37,627], // LATIN CAPITAL LETTER E + 0x46: [686,30,814,17,930], // LATIN CAPITAL LETTER F + 0x47: [703,113,682,50,671], // LATIN CAPITAL LETTER G + 0x48: [686,48,987,20,946], // LATIN CAPITAL LETTER H + 0x49: [686,0,642,-27,746], // LATIN CAPITAL LETTER I + 0x4A: [686,114,779,53,937], // LATIN CAPITAL LETTER J + 0x4B: [703,17,871,40,834], // LATIN CAPITAL LETTER K + 0x4C: [703,17,788,41,751], // LATIN CAPITAL LETTER L + 0x4D: [703,49,1378,38,1353], // LATIN CAPITAL LETTER M + 0x4E: [840,49,937,-24,1105], // LATIN CAPITAL LETTER N + 0x4F: [703,17,906,63,882], // LATIN CAPITAL LETTER O + 0x50: [686,67,810,20,846], // LATIN CAPITAL LETTER P + 0x51: [703,146,939,120,905], // LATIN CAPITAL LETTER Q + 0x52: [686,17,990,20,981], // LATIN CAPITAL LETTER R + 0x53: [703,16,696,25,721], // LATIN CAPITAL LETTER S + 0x54: [720,69,644,38,947], // LATIN CAPITAL LETTER T + 0x55: [686,24,715,-10,771], // LATIN CAPITAL LETTER U + 0x56: [686,77,737,25,774], // LATIN CAPITAL LETTER V + 0x57: [686,77,1169,25,1206], // LATIN CAPITAL LETTER W + 0x58: [686,-1,817,56,906], // LATIN CAPITAL LETTER X + 0x59: [686,164,759,36,797], // LATIN CAPITAL LETTER Y + 0x5A: [686,0,818,46,853], // LATIN CAPITAL LETTER Z + 0xA0: [0,0,250,0,0] // NO-BREAK SPACE +}; + +CHTML.fontLoaded("TeX/"+font.substr(8)); + +})(MathJax.OutputJax.CommonHTML); diff --git a/unpacked/jax/output/CommonHTML/fonts/TeX/Fraktur-Bold.js b/unpacked/jax/output/CommonHTML/fonts/TeX/Fraktur-Bold.js new file mode 100644 index 000000000..847f16d60 --- /dev/null +++ b/unpacked/jax/output/CommonHTML/fonts/TeX/Fraktur-Bold.js @@ -0,0 +1,124 @@ +/************************************************************* + * + * MathJax/jax/output/CommonHTML/fonts/TeX/Fraktur-Regular.js + * + * Copyright (c) 2015 The MathJax Consortium + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +(function (CHTML) { + +var font = 'MathJax_Fraktur-Bold'; + +CHTML.FONTDATA.FONTS[font] = { + className: CHTML.FONTDATA.familyName(font), + weight: 'bold', + 0x20: [0,0,250,0,0], // SPACE + 0x21: [689,12,349,107,241], // EXCLAMATION MARK + 0x22: [695,-432,254,10,231], // QUOTATION MARK + 0x26: [696,16,871,44,839], // AMPERSAND + 0x27: [695,-436,250,80,158], // APOSTROPHE + 0x28: [737,186,459,134,347], // LEFT PARENTHESIS + 0x29: [735,187,459,105,326], // RIGHT PARENTHESIS + 0x2A: [692,-449,328,40,277], // ASTERISK + 0x2B: [598,82,893,56,837], // PLUS SIGN + 0x2C: [107,191,328,118,253], // COMMA + 0x2D: [275,-236,893,54,833], // HYPHEN-MINUS + 0x2E: [102,15,328,103,237], // FULL STOP + 0x2F: [721,182,593,41,550], // SOLIDUS + 0x30: [501,12,593,42,533], // DIGIT ZERO + 0x31: [489,0,593,54,548], // DIGIT ONE + 0x32: [491,-2,593,44,563], // DIGIT TWO + 0x33: [487,193,593,31,523], // DIGIT THREE + 0x34: [495,196,593,13,565], // DIGIT FOUR + 0x35: [481,190,593,19,518], // DIGIT FIVE + 0x36: [704,12,593,48,547], // DIGIT SIX + 0x37: [479,197,593,54,591], // DIGIT SEVEN + 0x38: [714,5,593,45,542], // DIGIT EIGHT + 0x39: [487,195,593,29,549], // DIGIT NINE + 0x3A: [457,12,255,57,197], // COLON + 0x3B: [458,190,255,56,211], // SEMICOLON + 0x3D: [343,-168,582,22,559], // EQUALS SIGN + 0x3F: [697,14,428,40,422], // QUESTION MARK + 0x41: [686,31,847,29,827], // LATIN CAPITAL LETTER A + 0x42: [684,31,1044,57,965], // LATIN CAPITAL LETTER B + 0x43: [676,32,723,72,726], // LATIN CAPITAL LETTER C + 0x44: [683,29,982,31,896], // LATIN CAPITAL LETTER D + 0x45: [686,29,783,74,728], // LATIN CAPITAL LETTER E + 0x46: [684,146,722,17,727], // LATIN CAPITAL LETTER F + 0x47: [687,29,927,74,844], // LATIN CAPITAL LETTER G + 0x48: [683,126,851,6,752], // LATIN CAPITAL LETTER H + 0x49: [681,25,655,32,623], // LATIN CAPITAL LETTER I + 0x4A: [680,141,652,-8,616], // LATIN CAPITAL LETTER J + 0x4B: [681,26,789,20,806], // LATIN CAPITAL LETTER K + 0x4C: [683,28,786,30,764], // LATIN CAPITAL LETTER L + 0x4D: [683,32,1239,27,1232], // LATIN CAPITAL LETTER M + 0x4E: [679,30,983,26,973], // LATIN CAPITAL LETTER N + 0x4F: [726,30,976,12,881], // LATIN CAPITAL LETTER O + 0x50: [688,223,977,33,943], // LATIN CAPITAL LETTER P + 0x51: [726,83,976,12,918], // LATIN CAPITAL LETTER Q + 0x52: [688,28,978,31,978], // LATIN CAPITAL LETTER R + 0x53: [685,31,978,82,905], // LATIN CAPITAL LETTER S + 0x54: [686,30,790,31,802], // LATIN CAPITAL LETTER T + 0x55: [688,39,851,18,871], // LATIN CAPITAL LETTER U + 0x56: [685,29,982,25,966], // LATIN CAPITAL LETTER V + 0x57: [683,30,1235,26,1240], // LATIN CAPITAL LETTER W + 0x58: [681,35,849,32,835], // LATIN CAPITAL LETTER X + 0x59: [688,214,984,34,878], // LATIN CAPITAL LETTER Y + 0x5A: [677,148,711,-4,624], // LATIN CAPITAL LETTER Z + 0x5B: [740,130,257,36,226], // LEFT SQUARE BRACKET + 0x5D: [738,132,257,14,208], // RIGHT SQUARE BRACKET + 0x5E: [734,-452,590,1,584], // CIRCUMFLEX ACCENT + 0x61: [472,32,603,80,586], // LATIN SMALL LETTER A + 0x62: [690,32,590,86,504], // LATIN SMALL LETTER B + 0x63: [473,26,464,87,424], // LATIN SMALL LETTER C + 0x64: [632,28,589,-1,511], // LATIN SMALL LETTER D + 0x65: [471,27,472,81,428], // LATIN SMALL LETTER E + 0x66: [687,222,388,35,372], // LATIN SMALL LETTER F + 0x67: [472,208,595,17,541], // LATIN SMALL LETTER G + 0x68: [687,207,615,89,507], // LATIN SMALL LETTER H + 0x69: [686,25,331,3,327], // LATIN SMALL LETTER I + 0x6A: [682,203,332,-19,238], // LATIN SMALL LETTER J + 0x6B: [682,25,464,34,432], // LATIN SMALL LETTER K + 0x6C: [681,24,337,100,312], // LATIN SMALL LETTER L + 0x6D: [476,31,921,16,900], // LATIN SMALL LETTER M + 0x6E: [473,28,654,5,608], // LATIN SMALL LETTER N + 0x6F: [482,34,609,107,515], // LATIN SMALL LETTER O + 0x70: [557,207,604,-1,519], // LATIN SMALL LETTER P + 0x71: [485,211,596,87,515], // LATIN SMALL LETTER Q + 0x72: [472,26,460,13,453], // LATIN SMALL LETTER R + 0x73: [479,34,523,-23,481], // LATIN SMALL LETTER S + 0x74: [648,27,393,43,407], // LATIN SMALL LETTER T + 0x75: [472,32,589,9,603], // LATIN SMALL LETTER U + 0x76: [546,27,604,56,507], // LATIN SMALL LETTER V + 0x77: [549,32,918,55,815], // LATIN SMALL LETTER W + 0x78: [471,188,459,8,441], // LATIN SMALL LETTER X + 0x79: [557,221,589,60,512], // LATIN SMALL LETTER Y + 0x7A: [471,214,461,-7,378], // LATIN SMALL LETTER Z + 0xA0: [0,0,250,0,0], // NO-BREAK SPACE + 0x2018: [708,-411,254,53,187], // LEFT SINGLE QUOTATION MARK + 0x2019: [692,-394,254,58,193], // RIGHT SINGLE QUOTATION MARK + 0xE301: [630,27,587,64,512], // stix-MATHEMATICAL BOLD CAPITAL GAMMA SLASHED + 0xE302: [693,212,394,37,408], // stix-capital Delta, Greek slashed + 0xE303: [681,219,387,36,384], // stix-MATHEMATICAL BOLD CAPITAL DELTA SLASHED + 0xE304: [473,212,593,67,531], // stix-capital Epsilon, Greek slashed + 0xE305: [684,27,393,33,387], // stix-MATHEMATICAL BOLD CAPITAL EPSILON SLASHED + 0xE308: [679,220,981,32,875], // stix-capital Eta, Greek slashed + 0xE309: [717,137,727,17,633] // stix-MATHEMATICAL BOLD CAPITAL ETA SLASHED +}; + +CHTML.fontLoaded("TeX/"+font.substr(8)); + +})(MathJax.OutputJax.CommonHTML); diff --git a/unpacked/jax/output/CommonHTML/fonts/TeX/Fraktur-Regular.js b/unpacked/jax/output/CommonHTML/fonts/TeX/Fraktur-Regular.js new file mode 100644 index 000000000..71d2e2345 --- /dev/null +++ b/unpacked/jax/output/CommonHTML/fonts/TeX/Fraktur-Regular.js @@ -0,0 +1,124 @@ +/************************************************************* + * + * MathJax/jax/output/CommonHTML/fonts/TeX/Fraktur-Regular.js + * + * Copyright (c) 2015 The MathJax Consortium + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +(function (CHTML) { + +var font = 'MathJax_Fraktur'; + +CHTML.FONTDATA.FONTS[font] = { + className: CHTML.FONTDATA.familyName(font), + 0x20: [0,0,250,0,0], // SPACE + 0x21: [689,12,296,91,204], // EXCLAMATION MARK + 0x22: [695,-432,215,8,196], // QUOTATION MARK + 0x26: [698,11,738,49,733], // AMPERSAND + 0x27: [695,-436,212,69,134], // APOSTROPHE + 0x28: [737,186,389,114,293], // LEFT PARENTHESIS + 0x29: [735,187,389,89,276], // RIGHT PARENTHESIS + 0x2A: [692,-449,278,33,234], // ASTERISK + 0x2B: [598,82,756,47,709], // PLUS SIGN + 0x2C: [107,191,278,99,213], // COMMA + 0x2D: [275,-236,756,46,706], // HYPHEN-MINUS + 0x2E: [102,15,278,87,200], // FULL STOP + 0x2F: [721,182,502,34,466], // SOLIDUS + 0x30: [492,13,502,42,456], // DIGIT ZERO + 0x31: [468,2,502,47,460], // DIGIT ONE + 0x32: [474,-1,502,60,484], // DIGIT TWO + 0x33: [473,182,502,39,429], // DIGIT THREE + 0x34: [476,191,502,10,481], // DIGIT FOUR + 0x35: [458,184,502,47,440], // DIGIT FIVE + 0x36: [700,13,502,45,471], // DIGIT SIX + 0x37: [468,181,502,37,498], // DIGIT SEVEN + 0x38: [705,10,502,40,461], // DIGIT EIGHT + 0x39: [469,182,502,28,466], // DIGIT NINE + 0x3A: [457,12,216,50,168], // COLON + 0x3B: [458,189,216,47,179], // SEMICOLON + 0x3D: [368,-132,756,54,725], // EQUALS SIGN + 0x3F: [693,11,362,46,357], // QUESTION MARK + 0x41: [696,26,718,22,708], // LATIN CAPITAL LETTER A + 0x42: [691,27,884,48,820], // LATIN CAPITAL LETTER B + 0x43: [685,24,613,59,607], // LATIN CAPITAL LETTER C + 0x44: [685,27,832,27,745], // LATIN CAPITAL LETTER D + 0x45: [685,24,663,86,634], // LATIN CAPITAL LETTER E + 0x46: [686,153,611,11,612], // LATIN CAPITAL LETTER F + 0x47: [690,26,785,66,710], // LATIN CAPITAL LETTER G + 0x48: [666,133,720,1,644], // LATIN CAPITAL LETTER H + 0x49: [686,26,554,30,532], // LATIN CAPITAL LETTER I + 0x4A: [686,139,552,-10,522], // LATIN CAPITAL LETTER J + 0x4B: [680,27,668,17,682], // LATIN CAPITAL LETTER K + 0x4C: [686,26,666,33,644], // LATIN CAPITAL LETTER L + 0x4D: [692,27,1050,27,1048], // LATIN CAPITAL LETTER M + 0x4E: [686,25,832,27,825], // LATIN CAPITAL LETTER N + 0x4F: [729,27,827,12,744], // LATIN CAPITAL LETTER O + 0x50: [692,218,828,28,804], // LATIN CAPITAL LETTER P + 0x51: [729,69,827,11,782], // LATIN CAPITAL LETTER Q + 0x52: [686,26,828,27,824], // LATIN CAPITAL LETTER R + 0x53: [692,27,829,66,756], // LATIN CAPITAL LETTER S + 0x54: [701,27,669,34,676], // LATIN CAPITAL LETTER T + 0x55: [697,27,646,-25,665], // LATIN CAPITAL LETTER U + 0x56: [686,26,831,26,825], // LATIN CAPITAL LETTER V + 0x57: [686,27,1046,32,1054], // LATIN CAPITAL LETTER W + 0x58: [688,27,719,28,709], // LATIN CAPITAL LETTER X + 0x59: [686,218,833,27,740], // LATIN CAPITAL LETTER Y + 0x5A: [729,139,602,11,532], // LATIN CAPITAL LETTER Z + 0x5B: [740,130,278,117,278], // LEFT SQUARE BRACKET + 0x5D: [738,131,278,-4,160], // RIGHT SQUARE BRACKET + 0x5E: [734,-452,500,0,495], // CIRCUMFLEX ACCENT + 0x61: [470,35,500,66,497], // LATIN SMALL LETTER A + 0x62: [685,31,513,87,442], // LATIN SMALL LETTER B + 0x63: [466,29,389,72,359], // LATIN SMALL LETTER C + 0x64: [609,33,499,13,428], // LATIN SMALL LETTER D + 0x65: [467,30,401,70,364], // LATIN SMALL LETTER E + 0x66: [681,221,326,30,323], // LATIN SMALL LETTER F + 0x67: [470,209,504,17,455], // LATIN SMALL LETTER G + 0x68: [688,205,521,77,434], // LATIN SMALL LETTER H + 0x69: [673,20,279,14,267], // LATIN SMALL LETTER I + 0x6A: [672,208,281,-9,196], // LATIN SMALL LETTER J + 0x6B: [689,25,389,24,362], // LATIN SMALL LETTER K + 0x6C: [685,20,280,98,276], // LATIN SMALL LETTER L + 0x6D: [475,26,767,8,753], // LATIN SMALL LETTER M + 0x6E: [475,22,527,20,514], // LATIN SMALL LETTER N + 0x6F: [480,28,489,67,412], // LATIN SMALL LETTER O + 0x70: [541,212,500,12,430], // LATIN SMALL LETTER P + 0x71: [479,219,489,60,419], // LATIN SMALL LETTER Q + 0x72: [474,21,389,17,387], // LATIN SMALL LETTER R + 0x73: [478,29,443,-18,406], // LATIN SMALL LETTER S + 0x74: [640,20,333,27,348], // LATIN SMALL LETTER T + 0x75: [474,23,517,9,513], // LATIN SMALL LETTER U + 0x76: [530,28,512,55,434], // LATIN SMALL LETTER V + 0x77: [532,28,774,45,688], // LATIN SMALL LETTER W + 0x78: [472,188,389,10,363], // LATIN SMALL LETTER X + 0x79: [528,218,499,45,431], // LATIN SMALL LETTER Y + 0x7A: [471,214,391,-7,314], // LATIN SMALL LETTER Z + 0xA0: [0,0,250,0,0], // NO-BREAK SPACE + 0x2018: [708,-410,215,45,158], // LEFT SINGLE QUOTATION MARK + 0x2019: [692,-395,215,49,163], // RIGHT SINGLE QUOTATION MARK + 0xE300: [683,32,497,75,430], // stix-capital Gamma, Greek slashed + 0xE301: [616,30,498,35,432], // stix-MATHEMATICAL BOLD CAPITAL GAMMA SLASHED + 0xE302: [680,215,333,29,339], // stix-capital Delta, Greek slashed + 0xE303: [679,224,329,28,318], // stix-MATHEMATICAL BOLD CAPITAL DELTA SLASHED + 0xE304: [471,214,503,52,449], // stix-capital Epsilon, Greek slashed + 0xE305: [686,20,333,26,315], // stix-MATHEMATICAL BOLD CAPITAL EPSILON SLASHED + 0xE306: [577,21,334,29,347], // stix-capital Zeta, Greek slashed + 0xE307: [475,22,501,10,514] // stix-MATHEMATICAL BOLD CAPITAL ZETA SLASHED +}; + +CHTML.fontLoaded("TeX/"+font.substr(8)); + +})(MathJax.OutputJax.CommonHTML); diff --git a/unpacked/jax/output/CommonHTML/fonts/TeX/Main-Bold.js b/unpacked/jax/output/CommonHTML/fonts/TeX/Main-Bold.js new file mode 100644 index 000000000..1c47a4f67 --- /dev/null +++ b/unpacked/jax/output/CommonHTML/fonts/TeX/Main-Bold.js @@ -0,0 +1,208 @@ +/************************************************************* + * + * MathJax/jax/output/CommonHTML/fonts/TeX/Main-Bold.js + * + * Copyright (c) 2015 The MathJax Consortium + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + + +(function (CHTML) { + +var font = 'MathJax_Main-Bold'; + +MathJax.Hub.Insert(CHTML.FONTDATA.FONTS[font],{ + 0xA0: [0,0,250,0,0], // NO-BREAK SPACE + 0xA8: [695,-535,575,96,478], // DIAERESIS + 0xAC: [371,-61,767,64,702], // NOT SIGN + 0xAF: [607,-540,575,80,494], // MACRON + 0xB0: [702,-536,575,160,414], // DEGREE SIGN + 0xB1: [728,35,894,64,829], // PLUS-MINUS SIGN + 0xB4: [706,-503,575,236,460], // ACUTE ACCENT + 0xD7: [530,28,894,168,726], // MULTIPLICATION SIGN + 0xF7: [597,96,894,64,828], // DIVISION SIGN + 0x131: [452,8,394,24,367], // LATIN SMALL LETTER DOTLESS I + 0x237: [451,201,439,-12,420], // LATIN SMALL LETTER DOTLESS J + 0x2C6: [694,-520,575,126,448], // MODIFIER LETTER CIRCUMFLEX ACCENT + 0x2C7: [660,-515,575,130,444], // CARON + 0x2C9: [607,-540,575,80,494], // MODIFIER LETTER MACRON + 0x2CA: [706,-503,575,236,460], // MODIFIER LETTER ACUTE ACCENT + 0x2CB: [706,-503,575,114,338], // MODIFIER LETTER GRAVE ACCENT + 0x2D8: [694,-500,575,102,472], // BREVE + 0x2D9: [695,-525,575,202,372], // DOT ABOVE + 0x2DA: [702,-536,575,160,414], // RING ABOVE + 0x2DC: [694,-552,575,96,478], // SMALL TILDE + 0x300: [706,-503,0,-461,-237], // COMBINING GRAVE ACCENT + 0x301: [706,-503,0,-339,-115], // COMBINING ACUTE ACCENT + 0x302: [694,-520,0,-449,-127], // COMBINING CIRCUMFLEX ACCENT + 0x303: [694,-552,0,-479,-97], // COMBINING TILDE + 0x304: [607,-540,0,-495,-81], // COMBINING MACRON + 0x306: [694,-500,0,-473,-103], // COMBINING BREVE + 0x307: [695,-525,0,-373,-203], // COMBINING DOT ABOVE + 0x308: [695,-535,0,-479,-97], // COMBINING DIAERESIS + 0x30A: [702,-536,0,-415,-161], // COMBINING RING ABOVE + 0x30B: [714,-511,0,-442,-82], // COMBINING DOUBLE ACUTE ACCENT + 0x30C: [660,-515,0,-445,-131], // COMBINING CARON + 0x338: [711,210,0,-734,-161], // COMBINING LONG SOLIDUS OVERLAY + 0x2002: [0,0,500,0,0], // ?? + 0x2003: [0,0,999,0,0], // ?? + 0x2004: [0,0,333,0,0], // ?? + 0x2005: [0,0,250,0,0], // ?? + 0x2006: [0,0,167,0,0], // ?? + 0x2009: [0,0,167,0,0], // ?? + 0x200A: [0,0,83,0,0], // ?? + 0x2013: [300,-249,575,0,574], // EN DASH + 0x2014: [300,-249,1150,0,1149], // EM DASH + 0x2018: [694,-329,319,58,245], // LEFT SINGLE QUOTATION MARK + 0x2019: [694,-329,319,74,261], // RIGHT SINGLE QUOTATION MARK + 0x201C: [694,-329,603,110,564], // LEFT DOUBLE QUOTATION MARK + 0x201D: [694,-329,603,38,492], // RIGHT DOUBLE QUOTATION MARK + 0x2020: [702,211,511,64,446], // DAGGER + 0x2021: [702,202,511,64,446], // DOUBLE DAGGER + 0x2026: [171,-1,1295,74,1221], // HORIZONTAL ELLIPSIS + 0x2032: [563,-33,344,35,331], // PRIME + 0x20D7: [723,-513,0,-542,-33], // COMBINING RIGHT ARROW ABOVE + 0x210F: [694,8,668,45,642], // stix-/hbar - Planck's over 2pi + 0x2111: [702,8,831,64,798], // BLACK-LETTER CAPITAL I + 0x2113: [702,19,474,-1,446], // SCRIPT SMALL L + 0x2118: [461,210,740,72,726], // SCRIPT CAPITAL P + 0x211C: [711,16,831,42,824], // BLACK-LETTER CAPITAL R + 0x2135: [694,0,703,64,638], // ALEF SYMBOL + 0x2190: [518,17,1150,64,1084], // LEFTWARDS ARROW + 0x2191: [694,193,575,14,561], // UPWARDS ARROW + 0x2192: [518,17,1150,65,1085], // RIGHTWARDS ARROW + 0x2193: [694,194,575,14,561], // DOWNWARDS ARROW + 0x2194: [518,17,1150,64,1085], // LEFT RIGHT ARROW + 0x2195: [767,267,575,14,561], // UP DOWN ARROW + 0x2196: [724,194,1150,64,1084], // NORTH WEST ARROW + 0x2197: [724,193,1150,64,1085], // NORTH EAST ARROW + 0x2198: [694,224,1150,65,1085], // SOUTH EAST ARROW + 0x2199: [694,224,1150,64,1085], // SOUTH WEST ARROW + 0x21A6: [518,17,1150,65,1085], // RIGHTWARDS ARROW FROM BAR + 0x21A9: [518,17,1282,64,1218], // LEFTWARDS ARROW WITH HOOK + 0x21AA: [518,17,1282,65,1217], // RIGHTWARDS ARROW WITH HOOK + 0x21BC: [518,-220,1150,64,1084], // LEFTWARDS HARPOON WITH BARB UPWARDS + 0x21BD: [281,17,1150,64,1084], // LEFTWARDS HARPOON WITH BARB DOWNWARDS + 0x21C0: [518,-220,1150,65,1085], // RIGHTWARDS HARPOON WITH BARB UPWARDS + 0x21C1: [281,17,1150,64,1085], // RIGHTWARDS HARPOON WITH BARB DOWNWARDS + 0x21CC: [718,17,1150,64,1085], // RIGHTWARDS HARPOON OVER LEFTWARDS HARPOON + 0x21D0: [547,46,1150,64,1085], // LEFTWARDS DOUBLE ARROW + 0x21D1: [694,193,703,30,672], // UPWARDS DOUBLE ARROW + 0x21D2: [547,46,1150,64,1084], // RIGHTWARDS DOUBLE ARROW + 0x21D3: [694,194,703,30,672], // DOWNWARDS DOUBLE ARROW + 0x21D4: [547,46,1150,47,1102], // LEFT RIGHT DOUBLE ARROW + 0x21D5: [767,267,703,30,672], // UP DOWN DOUBLE ARROW + 0x2200: [694,16,639,1,640], // FOR ALL + 0x2202: [710,17,628,60,657], // PARTIAL DIFFERENTIAL + 0x2203: [694,-1,639,64,574], // THERE EXISTS + 0x2205: [767,73,575,46,528], // EMPTY SET + 0x2207: [686,24,958,56,901], // NABLA + 0x2208: [587,86,767,97,670], // ELEMENT OF + 0x2209: [711,210,767,97,670], // stix-negated (vert) set membership, variant + 0x220B: [587,86,767,96,670], // CONTAINS AS MEMBER + 0x2212: [281,-221,894,96,797], // MINUS SIGN + 0x2213: [537,227,894,64,829], // MINUS-OR-PLUS SIGN + 0x2215: [750,250,575,63,511], // DIVISION SLASH + 0x2216: [750,250,575,63,511], // SET MINUS + 0x2217: [472,-28,575,73,501], // ASTERISK OPERATOR + 0x2218: [474,-28,575,64,510], // RING OPERATOR + 0x2219: [474,-28,575,64,510], // BULLET OPERATOR + 0x221A: [820,180,958,78,988], // SQUARE ROOT + 0x221D: [451,8,894,65,830], // PROPORTIONAL TO + 0x221E: [452,8,1150,65,1084], // INFINITY + 0x2220: [714,0,722,55,676], // ANGLE + 0x2223: [750,249,319,129,190], // DIVIDES + 0x2225: [750,248,575,145,430], // PARALLEL TO + 0x2227: [604,17,767,64,702], // LOGICAL AND + 0x2228: [604,16,767,64,702], // LOGICAL OR + 0x2229: [603,16,767,64,702], // stix-intersection, serifs + 0x222A: [604,16,767,64,702], // stix-union, serifs + 0x222B: [711,211,569,64,632], // INTEGRAL + 0x223C: [391,-109,894,64,828], // TILDE OPERATOR + 0x2240: [583,82,319,64,254], // WREATH PRODUCT + 0x2243: [502,3,894,64,829], // ASYMPTOTICALLY EQUAL TO + 0x2245: [638,27,1000,64,829], // APPROXIMATELY EQUAL TO + 0x2248: [524,-32,894,64,829], // ALMOST EQUAL TO + 0x224D: [533,32,894,64,829], // EQUIVALENT TO + 0x2250: [721,-109,894,64,829], // APPROACHES THE LIMIT + 0x2260: [711,210,894,64,829], // stix-not (vert) equals + 0x2261: [505,3,894,64,829], // IDENTICAL TO + 0x2264: [697,199,894,96,797], // LESS-THAN OR EQUAL TO + 0x2265: [697,199,894,96,797], // GREATER-THAN OR EQUAL TO + 0x226A: [617,116,1150,64,1085], // MUCH LESS-THAN + 0x226B: [618,116,1150,64,1085], // MUCH GREATER-THAN + 0x227A: [585,86,894,96,797], // PRECEDES + 0x227B: [586,86,894,96,797], // SUCCEEDS + 0x2282: [587,85,894,96,797], // SUBSET OF + 0x2283: [587,86,894,96,796], // SUPERSET OF + 0x2286: [697,199,894,96,797], // SUBSET OF OR EQUAL TO + 0x2287: [697,199,894,96,796], // SUPERSET OF OR EQUAL TO + 0x228E: [604,16,767,64,702], // MULTISET UNION + 0x2291: [697,199,894,96,828], // SQUARE IMAGE OF OR EQUAL TO + 0x2292: [697,199,894,66,797], // SQUARE ORIGINAL OF OR EQUAL TO + 0x2293: [604,-1,767,70,696], // stix-square intersection, serifs + 0x2294: [604,-1,767,70,696], // stix-square union, serifs + 0x2295: [632,132,894,64,828], // stix-circled plus (with rim) + 0x2296: [632,132,894,64,828], // CIRCLED MINUS + 0x2297: [632,132,894,64,828], // stix-circled times (with rim) + 0x2298: [632,132,894,64,828], // CIRCLED DIVISION SLASH + 0x2299: [632,132,894,64,828], // CIRCLED DOT OPERATOR + 0x22A2: [693,-1,703,65,637], // RIGHT TACK + 0x22A3: [693,-1,703,64,638], // LEFT TACK + 0x22A4: [694,-1,894,64,829], // DOWN TACK + 0x22A5: [693,-1,894,65,829], // UP TACK + 0x22A8: [750,249,974,129,918], // TRUE + 0x22C4: [523,21,575,15,560], // DIAMOND OPERATOR + 0x22C5: [336,-166,319,74,245], // DOT OPERATOR + 0x22C6: [502,0,575,24,550], // STAR OPERATOR + 0x22C8: [540,39,1000,33,967], // BOWTIE + 0x22EE: [951,29,319,74,245], // VERTICAL ELLIPSIS + 0x22EF: [336,-166,1295,74,1221], // MIDLINE HORIZONTAL ELLIPSIS + 0x22F1: [871,-101,1323,129,1194], // DOWN RIGHT DIAGONAL ELLIPSIS + 0x2308: [750,248,511,194,493], // LEFT CEILING + 0x2309: [750,248,511,17,317], // RIGHT CEILING + 0x230A: [749,248,511,194,493], // LEFT FLOOR + 0x230B: [749,248,511,17,317], // RIGHT FLOOR + 0x2322: [405,-108,1150,65,1084], // stix-small down curve + 0x2323: [392,-126,1150,64,1085], // stix-small up curve + 0x25B3: [711,-1,1022,69,953], // WHITE UP-POINTING TRIANGLE + 0x25B9: [540,39,575,33,542], // WHITE RIGHT-POINTING SMALL TRIANGLE + 0x25BD: [500,210,1022,68,953], // WHITE DOWN-POINTING TRIANGLE + 0x25C3: [539,38,575,33,542], // WHITE LEFT-POINTING SMALL TRIANGLE + 0x25EF: [711,211,1150,65,1084], // LARGE CIRCLE + 0x2660: [719,129,894,64,829], // BLACK SPADE SUIT + 0x2661: [711,24,894,65,828], // WHITE HEART SUIT + 0x2662: [719,154,894,64,828], // WHITE DIAMOND SUIT + 0x2663: [719,129,894,32,861], // BLACK CLUB SUIT + 0x266D: [750,17,447,64,381], // MUSIC FLAT SIGN + 0x266E: [741,223,447,57,389], // MUSIC NATURAL SIGN + 0x266F: [724,224,447,63,382], // MUSIC SHARP SIGN + 0x27E8: [750,249,447,127,382], // MATHEMATICAL LEFT ANGLE BRACKET + 0x27E9: [750,249,447,64,319], // MATHEMATICAL RIGHT ANGLE BRACKET + 0x27F5: [518,17,1805,64,1741], // LONG LEFTWARDS ARROW + 0x27F6: [518,17,1833,96,1773], // LONG RIGHTWARDS ARROW + 0x27F7: [518,17,2126,64,2061], // LONG LEFT RIGHT ARROW + 0x27F8: [547,46,1868,64,1804], // LONG LEFTWARDS DOUBLE ARROW + 0x27F9: [547,46,1870,64,1804], // LONG RIGHTWARDS DOUBLE ARROW + 0x27FA: [547,46,2126,64,2060], // LONG LEFT RIGHT DOUBLE ARROW + 0x27FC: [518,17,1833,65,1773], // LONG RIGHTWARDS ARROW FROM BAR + 0x2A3F: [686,0,900,39,860], // AMALGAMATION OR COPRODUCT + 0x2AAF: [696,199,894,96,797], // PRECEDES ABOVE SINGLE-LINE EQUALS SIGN + 0x2AB0: [697,199,894,96,797] // SUCCEEDS ABOVE SINGLE-LINE EQUALS SIGN +}); + +CHTML.fontLoaded("TeX/"+font.substr(8)); + +})(MathJax.OutputJax.CommonHTML); diff --git a/unpacked/jax/output/CommonHTML/fonts/TeX/Math-BoldItalic.js b/unpacked/jax/output/CommonHTML/fonts/TeX/Math-BoldItalic.js new file mode 100644 index 000000000..3cdca0316 --- /dev/null +++ b/unpacked/jax/output/CommonHTML/fonts/TeX/Math-BoldItalic.js @@ -0,0 +1,207 @@ +/************************************************************* + * + * MathJax/jax/output/HTML-CSS/fonts/TeX/Math/BoldItalic/Main.js + * + * Copyright (c) 2009-2015 The MathJax Consortium + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +(function (CHTML) { + +var font = 'MathJax_Math-BoldItalic'; + +CHTML.FONTDATA.FONTS[font] = { + className: CHTML.FONTDATA.familyName(font), + weight: 'bold', + style: 'italic', + skew: { + 0x41: 0.16, + 0x42: 0.0958, + 0x43: 0.0958, + 0x44: 0.0639, + 0x45: 0.0958, + 0x46: 0.0958, + 0x47: 0.0958, + 0x48: 0.0639, + 0x49: 0.128, + 0x4A: 0.192, + 0x4B: 0.0639, + 0x4C: 0.0319, + 0x4D: 0.0958, + 0x4E: 0.0958, + 0x4F: 0.0958, + 0x50: 0.0958, + 0x51: 0.0958, + 0x52: 0.0958, + 0x53: 0.0958, + 0x54: 0.0958, + 0x55: 0.0319, + 0x58: 0.0958, + 0x5A: 0.0958, + 0x63: 0.0639, + 0x64: 0.192, + 0x65: 0.0639, + 0x66: 0.192, + 0x67: 0.0319, + 0x68: -0.0319, + 0x6C: 0.0958, + 0x6F: 0.0639, + 0x70: 0.0958, + 0x71: 0.0958, + 0x72: 0.0639, + 0x73: 0.0639, + 0x74: 0.0958, + 0x75: 0.0319, + 0x76: 0.0319, + 0x77: 0.0958, + 0x78: 0.0319, + 0x79: 0.0639, + 0x7A: 0.0639, + 0x393: 0.0958, + 0x394: 0.192, + 0x398: 0.0958, + 0x39B: 0.192, + 0x39E: 0.0958, + 0x3A0: 0.0639, + 0x3A3: 0.0958, + 0x3A5: 0.0639, + 0x3A6: 0.0958, + 0x3A8: 0.0639, + 0x3A9: 0.0958, + 0x3B1: 0.0319, + 0x3B2: 0.0958, + 0x3B4: 0.0639, + 0x3B5: 0.0958, + 0x3B6: 0.0958, + 0x3B7: 0.0639, + 0x3B8: 0.0958, + 0x3B9: 0.0639, + 0x3BC: 0.0319, + 0x3BD: 0.0319, + 0x3BE: 0.128, + 0x3BF: 0.0639, + 0x3C1: 0.0958, + 0x3C2: 0.0958, + 0x3C4: 0.0319, + 0x3C5: 0.0319, + 0x3C6: 0.0958, + 0x3C7: 0.0639, + 0x3C8: 0.128, + 0x3D1: 0.0958, + 0x3D5: 0.0958, + 0x3F1: 0.0958, + 0x3F5: 0.0639 + }, + 0x20: [0,0,250,0,0], // SPACE + 0x2F: [711,210,894,160,733], // SOLIDUS + 0x41: [711,0,869,45,839], // LATIN CAPITAL LETTER A + 0x42: [686,0,866,43,853], // LATIN CAPITAL LETTER B + 0x43: [703,17,817,55,855], // LATIN CAPITAL LETTER C + 0x44: [686,0,938,43,914], // LATIN CAPITAL LETTER D + 0x45: [680,0,810,43,825], // LATIN CAPITAL LETTER E + 0x46: [680,0,689,43,809], // LATIN CAPITAL LETTER F + 0x47: [703,16,887,56,854], // LATIN CAPITAL LETTER G + 0x48: [686,0,982,43,1027], // LATIN CAPITAL LETTER H + 0x49: [686,0,511,30,573], // LATIN CAPITAL LETTER I + 0x4A: [686,17,631,42,694], // LATIN CAPITAL LETTER J + 0x4B: [686,0,971,43,1003], // LATIN CAPITAL LETTER K + 0x4C: [686,0,756,43,711], // LATIN CAPITAL LETTER L + 0x4D: [686,0,1142,43,1219], // LATIN CAPITAL LETTER M + 0x4E: [686,0,950,43,1027], // LATIN CAPITAL LETTER N + 0x4F: [703,17,837,53,815], // LATIN CAPITAL LETTER O + 0x50: [686,0,723,43,847], // LATIN CAPITAL LETTER P + 0x51: [703,194,869,53,815], // LATIN CAPITAL LETTER Q + 0x52: [686,17,872,43,881], // LATIN CAPITAL LETTER R + 0x53: [703,17,693,63,714], // LATIN CAPITAL LETTER S + 0x54: [675,0,637,22,772], // LATIN CAPITAL LETTER T + 0x55: [686,16,800,63,877], // LATIN CAPITAL LETTER U + 0x56: [686,16,678,62,886], // LATIN CAPITAL LETTER V + 0x57: [686,17,1093,61,1207], // LATIN CAPITAL LETTER W + 0x58: [686,0,947,38,953], // LATIN CAPITAL LETTER X + 0x59: [686,0,675,40,876], // LATIN CAPITAL LETTER Y + 0x5A: [686,0,773,68,805], // LATIN CAPITAL LETTER Z + 0x61: [452,8,633,38,607], // LATIN SMALL LETTER A + 0x62: [694,8,521,45,513], // LATIN SMALL LETTER B + 0x63: [451,8,513,40,509], // LATIN SMALL LETTER C + 0x64: [694,8,610,38,612], // LATIN SMALL LETTER D + 0x65: [452,8,554,42,509], // LATIN SMALL LETTER E + 0x66: [701,201,568,64,624], // LATIN SMALL LETTER F + 0x67: [452,202,545,0,540], // LATIN SMALL LETTER G + 0x68: [694,8,668,45,642], // LATIN SMALL LETTER H + 0x69: [694,8,405,24,367], // LATIN SMALL LETTER I + 0x6A: [694,202,471,-12,456], // LATIN SMALL LETTER J + 0x6B: [694,8,604,45,578], // LATIN SMALL LETTER K + 0x6C: [694,8,348,27,296], // LATIN SMALL LETTER L + 0x6D: [452,8,1032,24,1006], // LATIN SMALL LETTER M + 0x6E: [452,8,713,24,687], // LATIN SMALL LETTER N + 0x6F: [452,8,585,39,576], // LATIN SMALL LETTER O + 0x70: [452,194,601,-23,593], // LATIN SMALL LETTER P + 0x71: [452,194,542,38,550], // LATIN SMALL LETTER Q + 0x72: [452,8,529,24,500], // LATIN SMALL LETTER R + 0x73: [451,8,531,57,476], // LATIN SMALL LETTER S + 0x74: [643,7,415,21,387], // LATIN SMALL LETTER T + 0x75: [452,8,681,24,655], // LATIN SMALL LETTER U + 0x76: [453,8,567,24,540], // LATIN SMALL LETTER V + 0x77: [453,8,831,24,796], // LATIN SMALL LETTER W + 0x78: [452,8,659,43,599], // LATIN SMALL LETTER X + 0x79: [452,202,590,24,587], // LATIN SMALL LETTER Y + 0x7A: [452,8,555,34,539], // LATIN SMALL LETTER Z + 0xA0: [0,0,250,0,0], // NO-BREAK SPACE + 0x393: [680,0,657,43,777], // GREEK CAPITAL LETTER GAMMA + 0x394: [711,0,958,59,904], // GREEK CAPITAL LETTER DELTA + 0x398: [702,17,867,54,844], // GREEK CAPITAL LETTER THETA + 0x39B: [711,0,806,44,776], // GREEK CAPITAL LETTER LAMDA + 0x39E: [675,0,841,62,867], // GREEK CAPITAL LETTER XI + 0x3A0: [680,0,982,43,1026], // GREEK CAPITAL LETTER PI + 0x3A3: [686,0,885,69,902], // GREEK CAPITAL LETTER SIGMA + 0x3A5: [703,0,671,32,802], // GREEK CAPITAL LETTER UPSILON + 0x3A6: [686,0,767,29,737], // GREEK CAPITAL LETTER PHI + 0x3A8: [686,0,714,22,790], // GREEK CAPITAL LETTER PSI + 0x3A9: [703,0,879,93,886], // GREEK CAPITAL LETTER OMEGA + 0x3B1: [452,8,761,39,712], // GREEK SMALL LETTER ALPHA + 0x3B2: [701,194,660,28,637], // GREEK SMALL LETTER BETA + 0x3B3: [451,211,590,5,617], // GREEK SMALL LETTER GAMMA + 0x3B4: [725,8,522,39,513], // GREEK SMALL LETTER DELTA + 0x3B5: [461,17,529,36,481], // GREEK SMALL LETTER EPSILON + 0x3B6: [711,202,508,48,521], // GREEK SMALL LETTER ZETA + 0x3B7: [452,211,600,24,600], // GREEK SMALL LETTER ETA + 0x3B8: [702,8,562,40,554], // GREEK SMALL LETTER THETA + 0x3B9: [452,8,412,38,386], // GREEK SMALL LETTER IOTA + 0x3BA: [452,8,668,45,642], // GREEK SMALL LETTER KAPPA + 0x3BB: [694,13,671,40,652], // GREEK SMALL LETTER LAMDA + 0x3BC: [452,211,708,33,682], // GREEK SMALL LETTER MU + 0x3BD: [452,2,577,38,608], // GREEK SMALL LETTER NU + 0x3BE: [711,201,508,23,490], // GREEK SMALL LETTER XI + 0x3BF: [452,8,585,39,576], // GREEK SMALL LETTER OMICRON + 0x3C0: [444,8,682,23,674], // GREEK SMALL LETTER PI + 0x3C1: [451,211,612,34,603], // GREEK SMALL LETTER RHO + 0x3C2: [451,105,424,33,457], // GREEK SMALL LETTER FINAL SIGMA + 0x3C3: [444,8,686,35,677], // GREEK SMALL LETTER SIGMA + 0x3C4: [444,13,521,23,610], // GREEK SMALL LETTER TAU + 0x3C5: [453,8,631,24,604], // GREEK SMALL LETTER UPSILON + 0x3C6: [452,216,747,53,703], // GREEK SMALL LETTER PHI + 0x3C7: [452,201,718,32,685], // GREEK SMALL LETTER CHI + 0x3C8: [694,202,758,24,732], // GREEK SMALL LETTER PSI + 0x3C9: [453,8,718,24,691], // GREEK SMALL LETTER OMEGA + 0x3D1: [701,8,692,24,656], // GREEK THETA SYMBOL + 0x3D5: [694,202,712,51,693], // GREEK PHI SYMBOL + 0x3D6: [444,8,975,23,961], // GREEK PI SYMBOL + 0x3F1: [451,194,612,75,603], // GREEK RHO SYMBOL + 0x3F5: [444,7,483,44,450] // GREEK LUNATE EPSILON SYMBOL +}; + +CHTML.fontLoaded("TeX/"+font.substr(8)); + +})(MathJax.OutputJax.CommonHTML); diff --git a/unpacked/jax/output/CommonHTML/fonts/TeX/SansSerif-Bold.js b/unpacked/jax/output/CommonHTML/fonts/TeX/SansSerif-Bold.js new file mode 100644 index 000000000..39385b78c --- /dev/null +++ b/unpacked/jax/output/CommonHTML/fonts/TeX/SansSerif-Bold.js @@ -0,0 +1,151 @@ +/************************************************************* + * + * MathJax/jax/output/CommonHTML/fonts/TeX/SansSerif-Bold.js + * + * Copyright (c) 2015 The MathJax Consortium + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +(function (CHTML) { + +var font = 'MathJax_SansSerif-Bold'; + +CHTML.FONTDATA.FONTS[font] = { + className: CHTML.FONTDATA.familyName(font), + weight: 'bold', + 0x20: [0,0,250,0,0], // SPACE + 0x21: [694,0,367,110,256], // EXCLAMATION MARK + 0x22: [694,-442,558,37,420], // QUOTATION MARK + 0x23: [694,193,917,61,855], // NUMBER SIGN + 0x24: [750,56,550,49,488], // DOLLAR SIGN + 0x25: [750,56,1029,61,966], // PERCENT SIGN + 0x26: [716,22,831,47,769], // AMPERSAND + 0x27: [694,-442,306,80,226], // APOSTROPHE + 0x28: [750,249,428,79,366], // LEFT PARENTHESIS + 0x29: [750,250,428,61,348], // RIGHT PARENTHESIS + 0x2A: [750,-293,550,67,482], // ASTERISK + 0x2B: [617,116,856,61,794], // PLUS SIGN + 0x2C: [146,106,306,80,226], // COMMA + 0x2D: [273,-186,367,12,305], // HYPHEN-MINUS + 0x2E: [146,0,306,80,226], // FULL STOP + 0x2F: [750,249,550,61,488], // SOLIDUS + 0x30: [715,22,550,43,506], // DIGIT ZERO + 0x31: [716,-1,550,76,473], // DIGIT ONE + 0x32: [716,0,550,46,495], // DIGIT TWO + 0x33: [716,22,550,46,503], // DIGIT THREE + 0x34: [694,0,550,31,518], // DIGIT FOUR + 0x35: [694,22,550,37,494], // DIGIT FIVE + 0x36: [716,22,550,46,503], // DIGIT SIX + 0x37: [695,11,550,46,503], // DIGIT SEVEN + 0x38: [715,22,550,46,503], // DIGIT EIGHT + 0x39: [716,22,550,46,503], // DIGIT NINE + 0x3A: [458,0,306,80,226], // COLON + 0x3B: [458,106,306,80,226], // SEMICOLON + 0x3D: [407,-94,856,61,794], // EQUALS SIGN + 0x3F: [705,0,519,61,457], // QUESTION MARK + 0x40: [704,11,733,61,671], // COMMERCIAL AT + 0x41: [694,0,733,42,690], // LATIN CAPITAL LETTER A + 0x42: [694,-1,733,92,671], // LATIN CAPITAL LETTER B + 0x43: [704,11,703,61,647], // LATIN CAPITAL LETTER C + 0x44: [694,-1,794,92,732], // LATIN CAPITAL LETTER D + 0x45: [691,0,642,92,595], // LATIN CAPITAL LETTER E + 0x46: [691,0,611,92,564], // LATIN CAPITAL LETTER F + 0x47: [705,11,733,61,659], // LATIN CAPITAL LETTER G + 0x48: [694,0,794,92,702], // LATIN CAPITAL LETTER H + 0x49: [694,0,331,85,246], // LATIN CAPITAL LETTER I + 0x4A: [694,22,519,46,427], // LATIN CAPITAL LETTER J + 0x4B: [694,0,764,92,701], // LATIN CAPITAL LETTER K + 0x4C: [694,0,581,92,534], // LATIN CAPITAL LETTER L + 0x4D: [694,0,978,92,886], // LATIN CAPITAL LETTER M + 0x4E: [694,0,794,92,702], // LATIN CAPITAL LETTER N + 0x4F: [716,22,794,62,731], // LATIN CAPITAL LETTER O + 0x50: [694,0,703,92,641], // LATIN CAPITAL LETTER P + 0x51: [716,106,794,62,732], // LATIN CAPITAL LETTER Q + 0x52: [694,0,703,92,654], // LATIN CAPITAL LETTER R + 0x53: [716,22,611,49,549], // LATIN CAPITAL LETTER S + 0x54: [688,0,733,40,692], // LATIN CAPITAL LETTER T + 0x55: [694,22,764,92,672], // LATIN CAPITAL LETTER U + 0x56: [694,-1,733,27,705], // LATIN CAPITAL LETTER V + 0x57: [694,0,1039,24,1014], // LATIN CAPITAL LETTER W + 0x58: [694,0,733,37,694], // LATIN CAPITAL LETTER X + 0x59: [694,0,733,24,708], // LATIN CAPITAL LETTER Y + 0x5A: [694,0,672,61,616], // LATIN CAPITAL LETTER Z + 0x5B: [750,250,343,79,318], // LEFT SQUARE BRACKET + 0x5D: [750,250,343,24,263], // RIGHT SQUARE BRACKET + 0x5E: [694,-537,550,108,441], // CIRCUMFLEX ACCENT + 0x5F: [-23,110,550,0,549], // LOW LINE + 0x61: [475,11,525,31,472], // LATIN SMALL LETTER A + 0x62: [694,10,561,54,523], // LATIN SMALL LETTER B + 0x63: [475,11,489,37,457], // LATIN SMALL LETTER C + 0x64: [694,11,561,37,507], // LATIN SMALL LETTER D + 0x65: [474,10,511,30,480], // LATIN SMALL LETTER E + 0x66: [705,0,336,29,381], // LATIN SMALL LETTER F + 0x67: [469,206,550,17,534], // LATIN SMALL LETTER G + 0x68: [694,0,561,53,508], // LATIN SMALL LETTER H + 0x69: [695,0,256,46,208], // LATIN SMALL LETTER I + 0x6A: [695,205,286,-71,232], // LATIN SMALL LETTER J + 0x6B: [694,0,531,63,496], // LATIN SMALL LETTER K + 0x6C: [694,0,256,54,201], // LATIN SMALL LETTER L + 0x6D: [469,0,867,53,815], // LATIN SMALL LETTER M + 0x6E: [468,0,561,53,508], // LATIN SMALL LETTER N + 0x6F: [474,11,550,32,518], // LATIN SMALL LETTER O + 0x70: [469,194,561,54,523], // LATIN SMALL LETTER P + 0x71: [469,194,561,37,507], // LATIN SMALL LETTER Q + 0x72: [469,0,372,54,356], // LATIN SMALL LETTER R + 0x73: [474,10,422,30,396], // LATIN SMALL LETTER S + 0x74: [589,10,404,20,373], // LATIN SMALL LETTER T + 0x75: [458,11,561,52,508], // LATIN SMALL LETTER U + 0x76: [458,0,500,26,473], // LATIN SMALL LETTER V + 0x77: [458,0,744,24,719], // LATIN SMALL LETTER W + 0x78: [458,0,500,24,475], // LATIN SMALL LETTER X + 0x79: [458,205,500,29,473], // LATIN SMALL LETTER Y + 0x7A: [458,0,476,31,442], // LATIN SMALL LETTER Z + 0x7E: [344,-198,550,92,457], // TILDE + 0xA0: [0,0,250,0,0], // NO-BREAK SPACE + 0x131: [458,0,256,54,201], // LATIN SMALL LETTER DOTLESS I + 0x237: [458,205,286,-71,232], // LATIN SMALL LETTER DOTLESS J + 0x300: [694,-537,0,-458,-218], // COMBINING GRAVE ACCENT + 0x301: [694,-537,0,-334,-93], // COMBINING ACUTE ACCENT + 0x302: [694,-537,0,-442,-109], // COMBINING CIRCUMFLEX ACCENT + 0x303: [694,-548,0,-458,-93], // COMBINING TILDE + 0x304: [660,-560,0,-474,-77], // COMBINING MACRON + 0x306: [694,-552,0,-470,-80], // COMBINING BREVE + 0x307: [695,-596,0,-356,-194], // COMBINING DOT ABOVE + 0x308: [695,-595,0,-459,-91], // COMBINING DIAERESIS + 0x30A: [694,-538,0,-365,-119], // COMBINING RING ABOVE + 0x30B: [694,-537,0,-440,-94], // COMBINING DOUBLE ACUTE ACCENT + 0x30C: [657,-500,0,-442,-109], // COMBINING CARON + 0x393: [691,0,581,92,534], // GREEK CAPITAL LETTER GAMMA + 0x394: [694,0,917,60,856], // GREEK CAPITAL LETTER DELTA + 0x398: [716,22,856,62,793], // GREEK CAPITAL LETTER THETA + 0x39B: [694,0,672,41,630], // GREEK CAPITAL LETTER LAMDA + 0x39E: [688,0,733,46,686], // GREEK CAPITAL LETTER XI + 0x3A0: [691,0,794,92,702], // GREEK CAPITAL LETTER PI + 0x3A3: [694,0,794,61,732], // GREEK CAPITAL LETTER SIGMA + 0x3A5: [715,0,856,62,793], // GREEK CAPITAL LETTER UPSILON + 0x3A6: [694,0,794,62,732], // GREEK CAPITAL LETTER PHI + 0x3A8: [694,0,856,61,794], // GREEK CAPITAL LETTER PSI + 0x3A9: [716,0,794,49,744], // GREEK CAPITAL LETTER OMEGA + 0x2013: [327,-240,550,0,549], // EN DASH + 0x2014: [327,-240,1100,0,1099], // EM DASH + 0x2018: [694,-443,306,81,226], // LEFT SINGLE QUOTATION MARK + 0x2019: [694,-442,306,80,226], // RIGHT SINGLE QUOTATION MARK + 0x201C: [694,-443,558,138,520], // LEFT DOUBLE QUOTATION MARK + 0x201D: [694,-442,558,37,420] // RIGHT DOUBLE QUOTATION MARK +}; + +CHTML.fontLoaded("TeX/"+font.substr(8)); + +})(MathJax.OutputJax.CommonHTML); diff --git a/unpacked/jax/output/CommonHTML/fonts/TeX/SansSerif-Italic.js b/unpacked/jax/output/CommonHTML/fonts/TeX/SansSerif-Italic.js new file mode 100644 index 000000000..9a0c48e1f --- /dev/null +++ b/unpacked/jax/output/CommonHTML/fonts/TeX/SansSerif-Italic.js @@ -0,0 +1,151 @@ +/************************************************************* + * + * MathJax/jax/output/CommonHTML/fonts/TeX/SansSerif-Italic.js + * + * Copyright (c) 2015 The MathJax Consortium + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +(function (CHTML) { + +var font = 'MathJax_SansSerif-Italic'; + +CHTML.FONTDATA.FONTS[font] = { + className: CHTML.FONTDATA.familyName(font), + style: 'italic', + 0x20: [0,0,250,0,0], // SPACE + 0x21: [694,0,319,110,355], // EXCLAMATION MARK + 0x22: [694,-471,500,133,472], // QUOTATION MARK + 0x23: [694,194,833,87,851], // NUMBER SIGN + 0x24: [750,56,500,56,565], // DOLLAR SIGN + 0x25: [750,56,833,165,815], // PERCENT SIGN + 0x26: [716,22,758,71,747], // AMPERSAND + 0x27: [694,-471,278,190,335], // APOSTROPHE + 0x28: [750,250,389,104,491], // LEFT PARENTHESIS + 0x29: [750,250,389,2,390], // RIGHT PARENTHESIS + 0x2A: [750,-306,500,156,568], // ASTERISK + 0x2B: [583,83,778,108,775], // PLUS SIGN + 0x2C: [98,125,278,63,209], // COMMA + 0x2D: [259,-186,333,51,332], // HYPHEN-MINUS + 0x2E: [98,0,278,90,209], // FULL STOP + 0x2F: [750,250,500,6,600], // SOLIDUS + 0x30: [678,22,500,88,549], // DIGIT ZERO + 0x31: [678,0,500,88,451], // DIGIT ONE + 0x32: [678,0,500,50,551], // DIGIT TWO + 0x33: [678,22,500,56,544], // DIGIT THREE + 0x34: [656,0,500,62,521], // DIGIT FOUR + 0x35: [656,22,500,50,555], // DIGIT FIVE + 0x36: [678,22,500,94,548], // DIGIT SIX + 0x37: [656,11,500,143,596], // DIGIT SEVEN + 0x38: [678,22,500,77,554], // DIGIT EIGHT + 0x39: [677,22,500,77,545], // DIGIT NINE + 0x3A: [444,0,278,90,282], // COLON + 0x3B: [444,125,278,63,282], // SEMICOLON + 0x3D: [370,-130,778,88,796], // EQUALS SIGN + 0x3F: [704,0,472,173,536], // QUESTION MARK + 0x40: [705,10,667,120,707], // COMMERCIAL AT + 0x41: [694,0,667,28,638], // LATIN CAPITAL LETTER A + 0x42: [694,0,667,90,696], // LATIN CAPITAL LETTER B + 0x43: [705,10,639,124,719], // LATIN CAPITAL LETTER C + 0x44: [694,0,722,88,747], // LATIN CAPITAL LETTER D + 0x45: [691,0,597,86,688], // LATIN CAPITAL LETTER E + 0x46: [691,0,569,86,673], // LATIN CAPITAL LETTER F + 0x47: [705,11,667,125,730], // LATIN CAPITAL LETTER G + 0x48: [694,0,708,86,768], // LATIN CAPITAL LETTER H + 0x49: [694,0,278,87,338], // LATIN CAPITAL LETTER I + 0x4A: [694,22,472,46,535], // LATIN CAPITAL LETTER J + 0x4B: [694,0,694,88,785], // LATIN CAPITAL LETTER K + 0x4C: [694,0,542,87,516], // LATIN CAPITAL LETTER L + 0x4D: [694,0,875,92,929], // LATIN CAPITAL LETTER M + 0x4E: [694,0,708,88,766], // LATIN CAPITAL LETTER N + 0x4F: [716,22,736,118,763], // LATIN CAPITAL LETTER O + 0x50: [694,0,639,88,690], // LATIN CAPITAL LETTER P + 0x51: [716,125,736,118,763], // LATIN CAPITAL LETTER Q + 0x52: [694,0,646,88,698], // LATIN CAPITAL LETTER R + 0x53: [716,22,556,54,609], // LATIN CAPITAL LETTER S + 0x54: [688,0,681,165,790], // LATIN CAPITAL LETTER T + 0x55: [694,22,688,131,747], // LATIN CAPITAL LETTER U + 0x56: [694,0,667,161,799], // LATIN CAPITAL LETTER V + 0x57: [694,0,944,161,1076], // LATIN CAPITAL LETTER W + 0x58: [694,0,667,14,758], // LATIN CAPITAL LETTER X + 0x59: [694,0,667,151,810], // LATIN CAPITAL LETTER Y + 0x5A: [694,0,611,55,702], // LATIN CAPITAL LETTER Z + 0x5B: [750,250,289,41,425], // LEFT SQUARE BRACKET + 0x5D: [750,250,289,-31,353], // RIGHT SQUARE BRACKET + 0x5E: [694,-527,500,190,533], // CIRCUMFLEX ACCENT + 0x5F: [-38,114,500,50,565], // LOW LINE + 0x61: [461,10,481,61,473], // LATIN SMALL LETTER A + 0x62: [694,11,517,75,539], // LATIN SMALL LETTER B + 0x63: [460,11,444,75,499], // LATIN SMALL LETTER C + 0x64: [694,10,517,73,588], // LATIN SMALL LETTER D + 0x65: [460,11,444,71,472], // LATIN SMALL LETTER E + 0x66: [705,0,306,94,494], // LATIN SMALL LETTER F + 0x67: [455,206,500,12,568], // LATIN SMALL LETTER G + 0x68: [694,0,517,73,513], // LATIN SMALL LETTER H + 0x69: [680,0,239,74,315], // LATIN SMALL LETTER I + 0x6A: [680,204,267,-96,336], // LATIN SMALL LETTER J + 0x6B: [694,0,489,76,543], // LATIN SMALL LETTER K + 0x6C: [694,0,239,74,311], // LATIN SMALL LETTER L + 0x6D: [455,0,794,73,790], // LATIN SMALL LETTER M + 0x6E: [454,0,517,73,513], // LATIN SMALL LETTER N + 0x6F: [461,11,500,69,523], // LATIN SMALL LETTER O + 0x70: [455,194,517,34,538], // LATIN SMALL LETTER P + 0x71: [455,194,517,72,538], // LATIN SMALL LETTER Q + 0x72: [455,0,342,74,424], // LATIN SMALL LETTER R + 0x73: [461,11,383,35,436], // LATIN SMALL LETTER S + 0x74: [571,11,361,97,410], // LATIN SMALL LETTER T + 0x75: [444,10,517,90,537], // LATIN SMALL LETTER U + 0x76: [444,0,461,108,540], // LATIN SMALL LETTER V + 0x77: [444,0,683,108,762], // LATIN SMALL LETTER W + 0x78: [444,0,461,1,537], // LATIN SMALL LETTER X + 0x79: [444,205,461,1,540], // LATIN SMALL LETTER Y + 0x7A: [444,0,435,28,494], // LATIN SMALL LETTER Z + 0x7E: [327,-193,500,199,560], // TILDE + 0xA0: [0,0,250,0,0], // NO-BREAK SPACE + 0x131: [444,0,239,74,258], // LATIN SMALL LETTER DOTLESS I + 0x237: [444,204,267,-96,286], // LATIN SMALL LETTER DOTLESS J + 0x300: [694,-527,0,-270,-87], // COMBINING GRAVE ACCENT + 0x301: [694,-527,0,-190,63], // COMBINING ACUTE ACCENT + 0x302: [694,-527,0,-310,33], // COMBINING CIRCUMFLEX ACCENT + 0x303: [677,-543,0,-301,60], // COMBINING TILDE + 0x304: [631,-552,0,-314,64], // COMBINING MACRON + 0x306: [694,-508,0,-284,73], // COMBINING BREVE + 0x307: [680,-576,0,-180,-54], // COMBINING DOT ABOVE + 0x308: [680,-582,0,-273,40], // COMBINING DIAERESIS + 0x30A: [693,-527,0,-227,-2], // COMBINING RING ABOVE + 0x30B: [694,-527,0,-287,63], // COMBINING DOUBLE ACUTE ACCENT + 0x30C: [654,-487,0,-283,60], // COMBINING CARON + 0x393: [691,0,542,87,646], // GREEK CAPITAL LETTER GAMMA + 0x394: [694,0,833,42,790], // GREEK CAPITAL LETTER DELTA + 0x398: [715,22,778,119,804], // GREEK CAPITAL LETTER THETA + 0x39B: [694,0,611,28,582], // GREEK CAPITAL LETTER LAMDA + 0x39E: [688,0,667,42,765], // GREEK CAPITAL LETTER XI + 0x3A0: [691,0,708,86,768], // GREEK CAPITAL LETTER PI + 0x3A3: [694,0,722,55,813], // GREEK CAPITAL LETTER SIGMA + 0x3A5: [716,0,778,173,843], // GREEK CAPITAL LETTER UPSILON + 0x3A6: [694,0,722,124,743], // GREEK CAPITAL LETTER PHI + 0x3A8: [694,0,778,171,854], // GREEK CAPITAL LETTER PSI + 0x3A9: [716,0,722,44,769], // GREEK CAPITAL LETTER OMEGA + 0x2013: [312,-236,500,50,565], // EN DASH + 0x2014: [312,-236,1000,50,1065], // EM DASH + 0x2018: [694,-471,278,190,336], // LEFT SINGLE QUOTATION MARK + 0x2019: [694,-471,278,190,335], // RIGHT SINGLE QUOTATION MARK + 0x201C: [694,-471,500,274,614], // LEFT DOUBLE QUOTATION MARK + 0x201D: [694,-471,500,133,472] // RIGHT DOUBLE QUOTATION MARK +}; + +CHTML.fontLoaded("TeX/"+font.substr(8)); + +})(MathJax.OutputJax.CommonHTML); diff --git a/unpacked/jax/output/CommonHTML/fonts/TeX/SansSerif-Regular.js b/unpacked/jax/output/CommonHTML/fonts/TeX/SansSerif-Regular.js new file mode 100644 index 000000000..ca6814c1a --- /dev/null +++ b/unpacked/jax/output/CommonHTML/fonts/TeX/SansSerif-Regular.js @@ -0,0 +1,150 @@ +/************************************************************* + * + * MathJax/jax/output/CommonHTML/fonts/TeX/SansSerif-Regular.js + * + * Copyright (c) 2015 The MathJax Consortium + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +(function (CHTML) { + +var font = 'MathJax_SansSerif'; + +CHTML.FONTDATA.FONTS[font] = { + className: CHTML.FONTDATA.familyName(font), + 0x20: [0,0,250,0,0], // SPACE + 0x21: [694,0,319,110,208], // EXCLAMATION MARK + 0x22: [694,-471,500,32,325], // QUOTATION MARK + 0x23: [694,194,833,56,777], // NUMBER SIGN + 0x24: [750,56,500,44,444], // DOLLAR SIGN + 0x25: [750,56,833,56,776], // PERCENT SIGN + 0x26: [716,22,758,42,702], // AMPERSAND + 0x27: [694,-471,278,89,188], // APOSTROPHE + 0x28: [750,250,389,74,333], // LEFT PARENTHESIS + 0x29: [750,250,389,55,314], // RIGHT PARENTHESIS + 0x2A: [750,-306,500,63,436], // ASTERISK + 0x2B: [583,82,778,56,722], // PLUS SIGN + 0x2C: [98,125,278,89,188], // COMMA + 0x2D: [259,-186,333,11,277], // HYPHEN-MINUS + 0x2E: [98,0,278,90,188], // FULL STOP + 0x2F: [750,250,500,56,445], // SOLIDUS + 0x30: [678,22,500,39,460], // DIGIT ZERO + 0x31: [678,0,500,83,430], // DIGIT ONE + 0x32: [677,0,500,42,449], // DIGIT TWO + 0x33: [678,22,500,42,457], // DIGIT THREE + 0x34: [656,0,500,28,471], // DIGIT FOUR + 0x35: [656,21,500,33,449], // DIGIT FIVE + 0x36: [677,22,500,42,457], // DIGIT SIX + 0x37: [656,11,500,42,457], // DIGIT SEVEN + 0x38: [678,22,500,43,456], // DIGIT EIGHT + 0x39: [677,22,500,42,457], // DIGIT NINE + 0x3A: [444,0,278,90,188], // COLON + 0x3B: [444,125,278,89,188], // SEMICOLON + 0x3D: [370,-130,778,56,722], // EQUALS SIGN + 0x3F: [704,0,472,55,416], // QUESTION MARK + 0x40: [704,11,667,56,612], // COMMERCIAL AT + 0x41: [694,0,667,28,638], // LATIN CAPITAL LETTER A + 0x42: [694,0,667,90,610], // LATIN CAPITAL LETTER B + 0x43: [705,11,639,59,587], // LATIN CAPITAL LETTER C + 0x44: [694,0,722,88,666], // LATIN CAPITAL LETTER D + 0x45: [691,0,597,86,554], // LATIN CAPITAL LETTER E + 0x46: [691,0,569,86,526], // LATIN CAPITAL LETTER F + 0x47: [704,11,667,59,599], // LATIN CAPITAL LETTER G + 0x48: [694,0,708,86,621], // LATIN CAPITAL LETTER H + 0x49: [694,0,278,87,191], // LATIN CAPITAL LETTER I + 0x4A: [694,22,472,42,388], // LATIN CAPITAL LETTER J + 0x4B: [694,0,694,88,651], // LATIN CAPITAL LETTER K + 0x4C: [694,0,542,87,499], // LATIN CAPITAL LETTER L + 0x4D: [694,0,875,92,782], // LATIN CAPITAL LETTER M + 0x4E: [694,0,708,88,619], // LATIN CAPITAL LETTER N + 0x4F: [715,22,736,55,680], // LATIN CAPITAL LETTER O + 0x50: [694,0,639,88,583], // LATIN CAPITAL LETTER P + 0x51: [715,125,736,55,680], // LATIN CAPITAL LETTER Q + 0x52: [694,0,646,88,617], // LATIN CAPITAL LETTER R + 0x53: [716,22,556,44,500], // LATIN CAPITAL LETTER S + 0x54: [688,0,681,36,644], // LATIN CAPITAL LETTER T + 0x55: [694,22,688,87,600], // LATIN CAPITAL LETTER U + 0x56: [694,0,667,14,652], // LATIN CAPITAL LETTER V + 0x57: [694,0,944,14,929], // LATIN CAPITAL LETTER W + 0x58: [694,0,667,14,652], // LATIN CAPITAL LETTER X + 0x59: [694,0,667,3,663], // LATIN CAPITAL LETTER Y + 0x5A: [694,0,611,55,560], // LATIN CAPITAL LETTER Z + 0x5B: [750,250,289,94,266], // LEFT SQUARE BRACKET + 0x5D: [750,250,289,22,194], // RIGHT SQUARE BRACKET + 0x5E: [694,-527,500,78,421], // CIRCUMFLEX ACCENT + 0x5F: [-38,114,500,0,499], // LOW LINE + 0x61: [460,10,481,38,407], // LATIN SMALL LETTER A + 0x62: [694,11,517,75,482], // LATIN SMALL LETTER B + 0x63: [460,10,444,34,415], // LATIN SMALL LETTER C + 0x64: [694,10,517,33,441], // LATIN SMALL LETTER D + 0x65: [461,10,444,28,415], // LATIN SMALL LETTER E + 0x66: [705,0,306,27,347], // LATIN SMALL LETTER F + 0x67: [455,206,500,28,485], // LATIN SMALL LETTER G + 0x68: [694,0,517,73,443], // LATIN SMALL LETTER H + 0x69: [680,0,239,67,171], // LATIN SMALL LETTER I + 0x6A: [680,205,267,-59,192], // LATIN SMALL LETTER J + 0x6B: [694,0,489,76,471], // LATIN SMALL LETTER K + 0x6C: [694,0,239,74,164], // LATIN SMALL LETTER L + 0x6D: [455,0,794,73,720], // LATIN SMALL LETTER M + 0x6E: [455,0,517,73,443], // LATIN SMALL LETTER N + 0x6F: [460,10,500,28,471], // LATIN SMALL LETTER O + 0x70: [455,194,517,75,483], // LATIN SMALL LETTER P + 0x71: [455,194,517,33,441], // LATIN SMALL LETTER Q + 0x72: [455,0,342,74,327], // LATIN SMALL LETTER R + 0x73: [460,10,383,28,360], // LATIN SMALL LETTER S + 0x74: [571,10,361,18,333], // LATIN SMALL LETTER T + 0x75: [444,10,517,73,443], // LATIN SMALL LETTER U + 0x76: [444,0,461,14,446], // LATIN SMALL LETTER V + 0x77: [444,0,683,14,668], // LATIN SMALL LETTER W + 0x78: [444,0,461,0,460], // LATIN SMALL LETTER X + 0x79: [444,204,461,14,446], // LATIN SMALL LETTER Y + 0x7A: [444,0,435,28,402], // LATIN SMALL LETTER Z + 0x7E: [327,-193,500,83,416], // TILDE + 0xA0: [0,0,250,0,0], // NO-BREAK SPACE + 0x131: [444,0,239,74,164], // LATIN SMALL LETTER DOTLESS I + 0x237: [444,205,267,-59,192], // LATIN SMALL LETTER DOTLESS J + 0x300: [694,-527,0,-417,-199], // COMBINING GRAVE ACCENT + 0x301: [694,-527,0,-302,-84], // COMBINING ACUTE ACCENT + 0x302: [694,-527,0,-422,-79], // COMBINING CIRCUMFLEX ACCENT + 0x303: [677,-543,0,-417,-84], // COMBINING TILDE + 0x304: [631,-552,0,-431,-70], // COMBINING MACRON + 0x306: [694,-508,0,-427,-74], // COMBINING BREVE + 0x307: [680,-576,0,-302,-198], // COMBINING DOT ABOVE + 0x308: [680,-582,0,-397,-104], // COMBINING DIAERESIS + 0x30A: [694,-527,0,-319,-99], // COMBINING RING ABOVE + 0x30B: [694,-527,0,-399,-84], // COMBINING DOUBLE ACUTE ACCENT + 0x30C: [654,-487,0,-422,-79], // COMBINING CARON + 0x393: [691,0,542,87,499], // GREEK CAPITAL LETTER GAMMA + 0x394: [694,0,833,42,790], // GREEK CAPITAL LETTER DELTA + 0x398: [716,21,778,56,722], // GREEK CAPITAL LETTER THETA + 0x39B: [694,0,611,28,582], // GREEK CAPITAL LETTER LAMDA + 0x39E: [688,0,667,42,624], // GREEK CAPITAL LETTER XI + 0x3A0: [691,0,708,86,621], // GREEK CAPITAL LETTER PI + 0x3A3: [694,0,722,55,666], // GREEK CAPITAL LETTER SIGMA + 0x3A5: [716,0,778,55,722], // GREEK CAPITAL LETTER UPSILON + 0x3A6: [694,0,722,55,666], // GREEK CAPITAL LETTER PHI + 0x3A8: [694,0,778,55,722], // GREEK CAPITAL LETTER PSI + 0x3A9: [716,0,722,44,677], // GREEK CAPITAL LETTER OMEGA + 0x2013: [312,-236,500,0,499], // EN DASH + 0x2014: [312,-236,1000,0,999], // EM DASH + 0x2018: [694,-471,278,90,189], // LEFT SINGLE QUOTATION MARK + 0x2019: [694,-471,278,89,188], // RIGHT SINGLE QUOTATION MARK + 0x201C: [694,-471,500,174,467], // LEFT DOUBLE QUOTATION MARK + 0x201D: [694,-471,500,32,325] // RIGHT DOUBLE QUOTATION MARK +}; + +CHTML.fontLoaded("TeX/"+font.substr(8)); + +})(MathJax.OutputJax.CommonHTML); diff --git a/unpacked/jax/output/CommonHTML/fonts/TeX/Script-Regular.js b/unpacked/jax/output/CommonHTML/fonts/TeX/Script-Regular.js new file mode 100644 index 000000000..7f2dcfbe2 --- /dev/null +++ b/unpacked/jax/output/CommonHTML/fonts/TeX/Script-Regular.js @@ -0,0 +1,87 @@ +/************************************************************* + * + * MathJax/jax/output/CommonHTML/fonts/TeX/Script-Regular.js + * + * Copyright (c) 2015 The MathJax Consortium + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +(function (CHTML) { + +var font = 'MathJax_Script'; + +CHTML.FONTDATA.FONTS[font] = { + className: CHTML.FONTDATA.familyName(font), + skew: { + 0x41: 0.389, + 0x42: 0.194, + 0x43: 0.278, + 0x44: 0.111, + 0x45: 0.139, + 0x46: 0.222, + 0x47: 0.25, + 0x48: 0.333, + 0x49: 0.333, + 0x4A: 0.417, + 0x4B: 0.361, + 0x4C: 0.306, + 0x4D: 0.444, + 0x4E: 0.389, + 0x4F: 0.167, + 0x50: 0.222, + 0x51: 0.278, + 0x52: 0.194, + 0x53: 0.333, + 0x54: 0.222, + 0x55: 0.25, + 0x56: 0.222, + 0x57: 0.25, + 0x58: 0.278, + 0x59: 0.194, + 0x5A: 0.306 + }, + 0x20: [0,0,250,0,0], // SPACE + 0x41: [717,8,803,35,1016], // LATIN CAPITAL LETTER A + 0x42: [708,28,908,31,928], // LATIN CAPITAL LETTER B + 0x43: [728,26,666,26,819], // LATIN CAPITAL LETTER C + 0x44: [708,31,774,68,855], // LATIN CAPITAL LETTER D + 0x45: [707,8,562,46,718], // LATIN CAPITAL LETTER E + 0x46: [735,36,895,39,990], // LATIN CAPITAL LETTER F + 0x47: [717,37,610,12,738], // LATIN CAPITAL LETTER G + 0x48: [717,36,969,29,1241], // LATIN CAPITAL LETTER H + 0x49: [717,17,809,59,946], // LATIN CAPITAL LETTER I + 0x4A: [717,314,1052,92,1133], // LATIN CAPITAL LETTER J + 0x4B: [717,37,914,29,1204], // LATIN CAPITAL LETTER K + 0x4C: [717,17,874,14,1035], // LATIN CAPITAL LETTER L + 0x4D: [721,50,1080,30,1216], // LATIN CAPITAL LETTER M + 0x4E: [726,36,902,29,1208], // LATIN CAPITAL LETTER N + 0x4F: [707,8,738,96,805], // LATIN CAPITAL LETTER O + 0x50: [716,37,1013,90,1031], // LATIN CAPITAL LETTER P + 0x51: [717,17,883,54,885], // LATIN CAPITAL LETTER Q + 0x52: [717,17,850,-2,887], // LATIN CAPITAL LETTER R + 0x53: [708,36,868,29,1016], // LATIN CAPITAL LETTER S + 0x54: [735,37,747,92,996], // LATIN CAPITAL LETTER T + 0x55: [717,17,800,55,960], // LATIN CAPITAL LETTER U + 0x56: [717,17,622,56,850], // LATIN CAPITAL LETTER V + 0x57: [717,17,805,46,1026], // LATIN CAPITAL LETTER W + 0x58: [717,17,944,103,1131], // LATIN CAPITAL LETTER X + 0x59: [716,17,710,57,959], // LATIN CAPITAL LETTER Y + 0x5A: [717,16,821,83,1032], // LATIN CAPITAL LETTER Z + 0xA0: [0,0,250,0,0] // NO-BREAK SPACE +}; + +CHTML.fontLoaded("TeX/"+font.substr(8)); + +})(MathJax.OutputJax.CommonHTML); diff --git a/unpacked/jax/output/CommonHTML/fonts/TeX/Typewriter-Regular.js b/unpacked/jax/output/CommonHTML/fonts/TeX/Typewriter-Regular.js new file mode 100644 index 000000000..6ccaeb744 --- /dev/null +++ b/unpacked/jax/output/CommonHTML/fonts/TeX/Typewriter-Regular.js @@ -0,0 +1,153 @@ +/************************************************************* + * + * MathJax/jax/output/CommonHTML/fonts/TeX/Typewriter-Regular.js + * + * Copyright (c) 2015 The MathJax Consortium + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +(function (CHTML) { + +var font = 'MathJax_Typewriter'; + +CHTML.FONTDATA.FONTS[font] = { + className: CHTML.FONTDATA.familyName(font), + 0x20: [0,0,250,0,0], // SPACE + 0x21: [622,0,525,206,320], // EXCLAMATION MARK + 0x22: [623,-333,525,122,402], // QUOTATION MARK + 0x23: [611,0,525,36,489], // NUMBER SIGN + 0x24: [694,82,525,58,466], // DOLLAR SIGN + 0x25: [694,83,525,35,489], // PERCENT SIGN + 0x26: [622,11,525,28,490], // AMPERSAND + 0x27: [611,-287,525,175,349], // APOSTROPHE + 0x28: [694,82,525,166,437], // LEFT PARENTHESIS + 0x29: [694,82,525,87,358], // RIGHT PARENTHESIS + 0x2A: [520,-90,525,68,456], // ASTERISK + 0x2B: [531,-81,525,38,487], // PLUS SIGN + 0x2C: [140,139,525,173,353], // COMMA + 0x2D: [341,-271,525,57,468], // HYPHEN-MINUS + 0x2E: [140,-1,525,193,332], // FULL STOP + 0x2F: [694,83,525,58,466], // SOLIDUS + 0x30: [621,10,525,42,482], // DIGIT ZERO + 0x31: [622,-1,525,99,450], // DIGIT ONE + 0x32: [622,-1,525,52,472], // DIGIT TWO + 0x33: [622,11,525,44,479], // DIGIT THREE + 0x34: [624,-1,525,29,495], // DIGIT FOUR + 0x35: [611,10,525,52,472], // DIGIT FIVE + 0x36: [622,11,525,45,479], // DIGIT SIX + 0x37: [627,10,525,44,480], // DIGIT SEVEN + 0x38: [621,10,525,45,479], // DIGIT EIGHT + 0x39: [622,11,525,46,479], // DIGIT NINE + 0x3A: [431,-1,525,193,332], // COLON + 0x3B: [431,139,525,175,337], // SEMICOLON + 0x3C: [557,-55,525,57,468], // LESS-THAN SIGN + 0x3D: [417,-195,525,38,487], // EQUALS SIGN + 0x3E: [557,-55,525,57,468], // GREATER-THAN SIGN + 0x3F: [617,0,525,62,462], // QUESTION MARK + 0x40: [617,6,525,44,481], // COMMERCIAL AT + 0x41: [623,-1,525,28,496], // LATIN CAPITAL LETTER A + 0x42: [611,-1,525,17,482], // LATIN CAPITAL LETTER B + 0x43: [622,11,525,40,484], // LATIN CAPITAL LETTER C + 0x44: [611,-1,525,16,485], // LATIN CAPITAL LETTER D + 0x45: [611,-1,525,19,502], // LATIN CAPITAL LETTER E + 0x46: [611,-1,525,22,490], // LATIN CAPITAL LETTER F + 0x47: [622,11,525,38,496], // LATIN CAPITAL LETTER G + 0x48: [611,-1,525,16,508], // LATIN CAPITAL LETTER H + 0x49: [611,-1,525,72,452], // LATIN CAPITAL LETTER I + 0x4A: [611,11,525,57,479], // LATIN CAPITAL LETTER J + 0x4B: [611,-1,525,18,495], // LATIN CAPITAL LETTER K + 0x4C: [611,0,525,25,488], // LATIN CAPITAL LETTER L + 0x4D: [611,-1,525,12,512], // LATIN CAPITAL LETTER M + 0x4E: [611,0,525,20,504], // LATIN CAPITAL LETTER N + 0x4F: [621,10,525,56,468], // LATIN CAPITAL LETTER O + 0x50: [611,-1,525,19,480], // LATIN CAPITAL LETTER P + 0x51: [621,138,525,56,468], // LATIN CAPITAL LETTER Q + 0x52: [611,11,525,16,522], // LATIN CAPITAL LETTER R + 0x53: [622,11,525,52,472], // LATIN CAPITAL LETTER S + 0x54: [611,-1,525,26,498], // LATIN CAPITAL LETTER T + 0x55: [611,11,525,-3,528], // LATIN CAPITAL LETTER U + 0x56: [611,7,525,19,505], // LATIN CAPITAL LETTER V + 0x57: [611,7,525,12,512], // LATIN CAPITAL LETTER W + 0x58: [611,-1,525,28,495], // LATIN CAPITAL LETTER X + 0x59: [611,-1,525,20,505], // LATIN CAPITAL LETTER Y + 0x5A: [611,-1,525,48,481], // LATIN CAPITAL LETTER Z + 0x5B: [694,82,525,214,483], // LEFT SQUARE BRACKET + 0x5C: [694,83,525,58,466], // REVERSE SOLIDUS + 0x5D: [694,82,525,41,310], // RIGHT SQUARE BRACKET + 0x5E: [611,-460,525,96,428], // CIRCUMFLEX ACCENT + 0x5F: [-25,95,525,57,468], // LOW LINE + 0x60: [681,-357,525,176,350], // GRAVE ACCENT + 0x61: [439,6,525,48,524], // LATIN SMALL LETTER A + 0x62: [611,6,525,4,492], // LATIN SMALL LETTER B + 0x63: [440,6,525,66,466], // LATIN SMALL LETTER C + 0x64: [611,6,525,31,520], // LATIN SMALL LETTER D + 0x65: [440,6,525,48,464], // LATIN SMALL LETTER E + 0x66: [617,-1,525,35,437], // LATIN SMALL LETTER F + 0x67: [442,229,525,28,509], // LATIN SMALL LETTER G + 0x68: [611,-1,525,4,520], // LATIN SMALL LETTER H + 0x69: [612,-1,525,72,462], // LATIN SMALL LETTER I + 0x6A: [612,228,525,48,376], // LATIN SMALL LETTER J + 0x6B: [611,-1,525,13,507], // LATIN SMALL LETTER K + 0x6C: [611,-1,525,51,474], // LATIN SMALL LETTER L + 0x6D: [436,-1,525,-12,536], // LATIN SMALL LETTER M + 0x6E: [436,-1,525,4,520], // LATIN SMALL LETTER N + 0x6F: [440,6,525,52,472], // LATIN SMALL LETTER O + 0x70: [437,221,525,4,492], // LATIN SMALL LETTER P + 0x71: [437,221,525,34,545], // LATIN SMALL LETTER Q + 0x72: [437,-1,525,24,487], // LATIN SMALL LETTER R + 0x73: [440,6,525,72,458], // LATIN SMALL LETTER S + 0x74: [554,6,525,25,448], // LATIN SMALL LETTER T + 0x75: [431,5,525,4,520], // LATIN SMALL LETTER U + 0x76: [431,4,525,24,500], // LATIN SMALL LETTER V + 0x77: [431,4,525,16,508], // LATIN SMALL LETTER W + 0x78: [431,-1,525,29,495], // LATIN SMALL LETTER X + 0x79: [431,228,525,26,500], // LATIN SMALL LETTER Y + 0x7A: [431,-1,525,34,475], // LATIN SMALL LETTER Z + 0x7B: [694,83,525,50,475], // LEFT CURLY BRACKET + 0x7C: [694,82,525,228,297], // VERTICAL LINE + 0x7D: [694,83,525,49,475], // RIGHT CURLY BRACKET + 0x7E: [611,-466,525,87,437], // TILDE + 0x7F: [612,-519,525,104,421], // ?? + 0xA0: [0,0,250,0,0], // NO-BREAK SPACE + 0x131: [431,-1,525,72,462], // LATIN SMALL LETTER DOTLESS I + 0x237: [431,228,525,48,376], // LATIN SMALL LETTER DOTLESS J + 0x300: [611,-485,0,-409,-195], // COMBINING GRAVE ACCENT + 0x301: [611,-485,0,-331,-117], // COMBINING ACUTE ACCENT + 0x302: [611,-460,0,-429,-97], // COMBINING CIRCUMFLEX ACCENT + 0x303: [611,-466,0,-438,-88], // COMBINING TILDE + 0x304: [577,-500,0,-452,-74], // COMBINING MACRON + 0x306: [611,-504,0,-446,-79], // COMBINING BREVE + 0x308: [612,-519,0,-421,-104], // COMBINING DIAERESIS + 0x30A: [619,-499,0,-344,-182], // COMBINING RING ABOVE + 0x30C: [577,-449,0,-427,-99], // COMBINING CARON + 0x393: [611,0,525,25,488], // GREEK CAPITAL LETTER GAMMA + 0x394: [623,0,525,35,489], // GREEK CAPITAL LETTER DELTA + 0x398: [621,10,525,56,468], // GREEK CAPITAL LETTER THETA + 0x39B: [623,-1,525,30,495], // GREEK CAPITAL LETTER LAMDA + 0x39E: [611,-1,525,33,491], // GREEK CAPITAL LETTER XI + 0x3A0: [611,-1,525,16,508], // GREEK CAPITAL LETTER PI + 0x3A3: [611,-1,525,40,484], // GREEK CAPITAL LETTER SIGMA + 0x3A5: [622,-1,525,38,486], // GREEK CAPITAL LETTER UPSILON + 0x3A6: [611,-1,525,41,483], // GREEK CAPITAL LETTER PHI + 0x3A8: [611,-1,525,37,487], // GREEK CAPITAL LETTER PSI + 0x3A9: [622,-1,525,32,492], // GREEK CAPITAL LETTER OMEGA + 0x7E2: [611,-287,525,175,349], // ?? + 0x7E3: [681,-357,525,176,350], // ?? + 0x2032: [623,-334,525,211,313] // PRIME +}; + +CHTML.fontLoaded("TeX/"+font.substr(8)); + +})(MathJax.OutputJax.CommonHTML); diff --git a/unpacked/jax/output/CommonHTML/fonts/TeX/fontdata.js b/unpacked/jax/output/CommonHTML/fonts/TeX/fontdata.js index c17d320b2..067f78e4d 100644 --- a/unpacked/jax/output/CommonHTML/fonts/TeX/fontdata.js +++ b/unpacked/jax/output/CommonHTML/fonts/TeX/fontdata.js @@ -29,8 +29,8 @@ var VERSION = "2.5.0"; var MAIN = "MathJax_Main", - BOLD = "MathJax_Main-bold", - ITALIC = "MathJax_Math-italic", + BOLD = "MathJax_Main-Bold", + ITALIC = "MathJax_Math-Italic", AMS = "MathJax_AMS", SIZE1 = "MathJax_Size1", SIZE2 = "MathJax_Size2", @@ -57,25 +57,29 @@ lineH: .8, lineD: .2, FONTS: { - "MathJax_Main": "Main/Regular/Main.js", - "MathJax_Main-bold": "Main/Bold/Main.js", - "MathJax_Main-italic": "Main/Italic/Main.js", - "MathJax_Math-italic": "Math/Italic/Main.js", - "MathJax_Math-bold-italic": "Math/BoldItalic/Main.js", - "MathJax_Caligraphic": "Caligraphic/Regular/Main.js", - "MathJax_Size1": "Size1/Regular/Main.js", - "MathJax_Size2": "Size2/Regular/Main.js", - "MathJax_Size3": "Size3/Regular/Main.js", - "MathJax_Size4": "Size4/Regular/Main.js", - "MathJax_AMS": "AMS/Regular/Main.js", - "MathJax_Fraktur": "Fraktur/Regular/Main.js", - "MathJax_Fraktur-bold": "Fraktur/Bold/Main.js", - "MathJax_SansSerif": "SansSerif/Regular/Main.js", - "MathJax_SansSerif-bold": "SansSerif/Bold/Main.js", - "MathJax_SansSerif-italic": "SansSerif/Italic/Main.js", - "MathJax_Script": "Script/Regular/Main.js", - "MathJax_Typewriter": "Typewriter/Regular/Main.js", - "MathJax_Caligraphic-bold": "Caligraphic/Bold/Main.js" +// +// These ones are defined below +// +// "MathJax_Main": +// "MathJax_Main-Bold": +// "MathJax_Main-Italic": +// "MathJax_Math-Italic": +// "MathJax_Caligraphic": +// "MathJax_Size1": +// "MathJax_Size2": +// "MathJax_Size3": +// "MathJax_Size4": + + "MathJax_AMS": "TeX/AMS-Regular.js", + "MathJax_Caligraphic-Bold": "TeX/Caligraphic-Bold.js", + "MathJax_Fraktur": "TeX/Fraktur-Regular.js", + "MathJax_Fraktur-Bold": "TeX/Fraktur-Bold.js", + "MathJax_Math-BoldItalic": "TeX/Math-BoldItalic.js", + "MathJax_SansSerif": "TeX/SansSerif-Regular.js", + "MathJax_SansSerif-Bold": "TeX/SansSerif-Bold.js", + "MathJax_SansSerif-Italic": "TeX/SansSerif-Italic.js", + "MathJax_Script": "TeX/Script-Regular.js", + "MathJax_Typewriter": "TeX/Typewriter-Regular.js" }, UNKNOWN: { @@ -114,28 +118,28 @@ // 0x22EA:"\u22B2\u0338", 0x22EB:"\u22B3\u0338", // 0x22EC:"\u22B4\u0338", 0x22ED:"\u22B5\u0338" }}, - "italic": {fonts:[ITALIC,"MathJax_Main-italic"], italic:true, cache: {}, chain:"normal", + "italic": {fonts:[ITALIC,"MathJax_Main-Italic"], italic:true, cache: {}, chain:"normal", remap: {0x391:0x41, 0x392:0x42, 0x395:0x45, 0x396:0x5A, 0x397:0x48, 0x399:0x49, 0x39A:0x4B, 0x39C:0x4D, 0x39D:0x4E, 0x39F:0x4F, 0x3A1:0x50, 0x3A4:0x54, 0x3A7:0x58}}, - "bold-italic": {fonts:["MathJax_Math-bold-italic"], bold:true, italic:true, + "bold-italic": {fonts:["MathJax_Math-BoldItalic"], bold:true, italic:true, cache: {}, chain:"bold", remap: {0x391:0x41, 0x392:0x42, 0x395:0x45, 0x396:0x5A, 0x397:0x48, 0x399:0x49, 0x39A:0x4B, 0x39C:0x4D, 0x39D:0x4E, 0x39F:0x4F, 0x3A1:0x50, 0x3A4:0x54, 0x3A7:0x58}}, "double-struck": {fonts:[AMS,MAIN,SIZE1], cache:{}}, "fraktur": {fonts:["MathJax_Fraktur"], cache:{}, chain:"normal"}, - "bold-fraktur": {fonts:["MathJax_Fraktur-bold"], bold:true, cache:{}, chain:"bold"}, + "bold-fraktur": {fonts:["MathJax_Fraktur-Bold"], bold:true, cache:{}, chain:"bold"}, "script": {fonts:["MathJax_Script"], cache:{}, chain:"normal"}, "bold-script": {fonts:["MathJax_Script"], bold:true, cache:{}, chain:"bold"}, "sans-serif": {fonts:["MathJax_SansSerif"], cache:{}, chain:"normal"}, - "bold-sans-serif": {fonts:["MathJax_SansSerif-bold"], bold:true, cache:{}, chain:"bold"}, - "sans-serif-italic": {fonts:["MathJax_SansSerif-italic"], italic:true, cache:{}, chain:"italic"}, - "sans-serif-bold-italic": {fonts:["MathJax_SansSerif-italic"], bold:true, italic:true, cache:{}, chain:"italic"}, + "bold-sans-serif": {fonts:["MathJax_SansSerif-Bold"], bold:true, cache:{}, chain:"bold"}, + "sans-serif-italic": {fonts:["MathJax_SansSerif-Italic"], italic:true, cache:{}, chain:"italic"}, + "sans-serif-bold-italic": {fonts:["MathJax_SansSerif-Italic"], bold:true, italic:true, cache:{}, chain:"italic"}, "monospace": {fonts:["MathJax_Typewriter"], cache:{}, chain:"normal"}, "-tex-caligraphic": {fonts:["MathJax_Caligraphic"], offsetA: 0x41, variantA: "italic", cache:{}, chain:"normal"}, "-tex-oldstyle": {fonts:["MathJax_Caligraphic"], cache:{}, chain:"normal"}, - "-tex-mathit": {fonts:["MathJax_Main-italic"], italic:true, noIC: true, cache:{}, chain:"normal", + "-tex-mathit": {fonts:["MathJax_Main-Italic"], italic:true, noIC: true, cache:{}, chain:"normal", remap: {0x391:0x41, 0x392:0x42, 0x395:0x45, 0x396:0x5A, 0x397:0x48, 0x399:0x49, 0x39A:0x4B, 0x39C:0x4D, 0x39D:0x4E, 0x39F:0x4F, 0x3A1:0x50, 0x3A4:0x54, 0x3A7:0x58}}, @@ -150,9 +154,9 @@ }}, "-largeOp": {fonts:[SIZE2,SIZE1,MAIN,AMS],cache:{}}, "-smallOp": {fonts:[SIZE1,MAIN,AMS], cache:{}}, - "-tex-caligraphic-bold": {fonts:["MathJax_Caligraphic-bold","MathJax_Main-bold"], bold:true, cache:{}, chain:"normal", + "-tex-caligraphic-bold": {fonts:["MathJax_Caligraphic-Bold","MathJax_Main-Bold"], bold:true, cache:{}, chain:"normal", offsetA: 0x41, variantA: "bold-italic"}, - "-tex-oldstyle-bold": {fonts:["MathJax_Caligraphic-bold","MathJax_Main-bold"], bold:true, cache:{}, chain:"normal"} + "-tex-oldstyle-bold": {fonts:["MathJax_Caligraphic-Bold","MathJax_Main-Bold"], bold:true, cache:{}, chain:"normal"} }, RANGES: [ @@ -600,7 +604,6 @@ CHTML.FONTDATA = CHTML.FONTDEF["TeX"]; CHTML.FONTDATA.FONTS['MathJax_Caligraphic'] = { - directory: 'Caligraphic/Regular', skew: { 0x41: 0.194, 0x42: 0.139, @@ -669,9 +672,32 @@ 0xA0: [0,0,250,0,0] // NO-BREAK SPACE }; - CHTML.FONTDATA.FONTS['MathJax_Main-bold'] = { - directory: 'Main/Bold', + CHTML.FONTDATA.FONTS['MathJax_Main-Bold'] = { weight: 'bold', + file: "TeX/Main-Bold.js", + Extra: [ + 0xA0, 0xA8, 0xAC, [0xAF,0xB1], 0xB4, 0xD7, 0xF7, + 0x131, 0x237, + [0x2C6,0x2CB],[0x2D8,0x2DC], + [0x300,0x30C], 0x338, + [0x2002,0x2006], 0x2009, 0x200A, 0x2013, 0x2014, 0x2018, 0x2019, + 0x201C, 0x201D, 0x2020, 0x2021, 0x2026, 0x2032, + 0x20D7, + [0x210F,0x2113], 0x2118, 0x211C, 0x2135, + [0x2190,0x2199], 0x21A6, 0x21A9, 0x21AA, 0x21BC, 0x21BD, 0x21C0, + 0x21C1, 0x21CC, [0x21D0,0x21D5], + [0x2200,0x220B], [0x2212,0x221A], [0x221D,0x2220], + [0x2223,0x223C], 0x2240, 0x2243, 0x2245, 0x2248, 0x224D, 0x2250, + 0x2260, 0x2261, 0x2264, 0x2265, 0x226A, 0x226B, 0x227A, 0x227B, + 0x2282, 0x2283, 0x2286, 0x2287, 0x228E, [0x2291,0x2299], + [0x22A2,0x22A5], 0x22A8, [0x22C4,0x22C8], [0x22EE,0x22F1], + [0x2308,0x230B], 0x2322, 0x2323, + 0x25B3, 0x25B9, 0x25BD, 0x25C3, 0x25EF, + [0x2660,0x2663], [0x266D,0x266F], + 0x27E8, 0x27E9, + [0x27F5,0x27FC], + 0x2A3F, 0x2AAF, 0x2AB0 + ], skew: { 0x131: 0.0319, 0x237: 0.0958, @@ -679,24 +705,6 @@ 0x2113: 0.128, 0x2202: 0.0958 }, - Ranges: [ - [0xA0,0xFF,"Latin1Supplement"], - [0x100,0x17F,"LatinExtendedA"], - [0x180,0x24F,"LatinExtendedB"], - [0x2B0,0x2FF,"SpacingModLetters"], - [0x300,0x36F,"CombDiacritMarks"], - [0x2000,0x206F,"GeneralPunctuation"], - [0x20D0,0x20FF,"CombDiactForSymbols"], - [0x2100,0x214F,"LetterlikeSymbols"], - [0x2190,0x21FF,"Arrows"], - [0x2200,0x22FF,"MathOperators"], - [0x2300,0x23FF,"MiscTechnical"], - [0x25A0,0x25FF,"GeometricShapes"], - [0x2600,0x26FF,"MiscSymbols"], - [0x27C0,0x27EF,"MiscMathSymbolsA"], - [0x27F0,0x27FF,"SupplementalArrowsA"], - [0x2A00,0x2AFF,"SuppMathOperators"] - ], 0x20: [0,0,250,0,0], // SPACE 0x21: [705,-1,350,89,260], // EXCLAMATION MARK 0x22: [694,-329,603,38,492], // QUOTATION MARK @@ -805,15 +813,8 @@ 0x3A9: [696,0,831,51,779] // GREEK CAPITAL LETTER OMEGA }; - CHTML.FONTDATA.FONTS['MathJax_Main-italic'] = { - directory: 'Main/Italic', + CHTML.FONTDATA.FONTS['MathJax_Main-Italic'] = { style: 'italic', - Ranges: [ - [0xA0,0xFF,"Latin1Supplement"], - [0x300,0x36F,"CombDiacritMarks"], - [0x2000,0x206F,"GeneralPunctuation"], - [0x2100,0x214F,"LetterlikeSymbols"] - ], 0x20: [0,0,250,0,0], // SPACE 0x21: [716,0,307,107,380], // EXCLAMATION MARK 0x22: [694,-379,514,176,538], // QUOTATION MARK @@ -901,9 +902,21 @@ 0x79: [441,205,486,75,522], // LATIN SMALL LETTER Y 0x7A: [442,11,409,54,466], // LATIN SMALL LETTER Z 0x7E: [318,-208,511,246,571], // TILDE + 0xA0: [0,0,250,0,0], // NO-BREAK SPACE 0xA3: [714,11,769,88,699], // POUND SIGN 0x131: [441,10,307,75,340], // LATIN SMALL LETTER DOTLESS I 0x237: [442,204,332,-32,327], // LATIN SMALL LETTER DOTLESS J + 0x300: [697,-500,0,-222,-74], // COMBINING GRAVE ACCENT + 0x301: [697,-500,0,-173,39], // COMBINING ACUTE ACCENT + 0x302: [694,-527,0,-251,17], // COMBINING CIRCUMFLEX ACCENT + 0x303: [668,-558,0,-265,60], // COMBINING TILDE + 0x304: [589,-544,0,-282,54], // COMBINING MACRON + 0x306: [694,-515,0,-237,62], // COMBINING BREVE + 0x307: [669,-548,0,-165,-41], // COMBINING DOT ABOVE + 0x308: [669,-554,0,-251,45], // COMBINING DIAERESIS + 0x30A: [716,-542,0,-199,3], // COMBINING RING ABOVE + 0x30B: [697,-503,0,-248,65], // COMBINING DOUBLE ACUTE ACCENT + 0x30C: [638,-502,0,-236,29], // COMBINING CARON 0x393: [680,0,627,54,705], // GREEK CAPITAL LETTER GAMMA 0x394: [716,0,818,70,751], // GREEK CAPITAL LETTER DELTA 0x398: [704,22,767,149,788], // GREEK CAPITAL LETTER THETA @@ -914,11 +927,17 @@ 0x3A5: [705,0,767,213,832], // GREEK CAPITAL LETTER UPSILON 0x3A6: [683,0,716,159,728], // GREEK CAPITAL LETTER PHI 0x3A8: [683,0,767,207,824], // GREEK CAPITAL LETTER PSI - 0x3A9: [705,0,716,100,759] // GREEK CAPITAL LETTER OMEGA + 0x3A9: [705,0,716,100,759], // GREEK CAPITAL LETTER OMEGA + 0x2013: [285,-248,511,91,554], // EN DASH + 0x2014: [285,-248,1022,117,1038], // EM DASH + 0x2018: [694,-379,307,197,362], // LEFT SINGLE QUOTATION MARK + 0x2019: [694,-379,307,213,377], // RIGHT SINGLE QUOTATION MARK + 0x201C: [694,-379,514,243,606], // LEFT DOUBLE QUOTATION MARK + 0x201D: [694,-379,514,176,538], // RIGHT DOUBLE QUOTATION MARK + 0x210F: [695,13,540,42,562] // stix-/hbar - Planck's over 2pi }; CHTML.FONTDATA.FONTS['MathJax_Main'] = { - directory: 'Main/Regular', skew: { 0x131: 0.0278, 0x237: 0.0833, @@ -926,12 +945,6 @@ 0x2118: 0.111, 0x2202: 0.0833 }, - Ranges: [ - [0x2B0,0x2FF,"SpacingModLetters"], - [0x300,0x36F,"CombDiacritMarks"], - [0x25A0,0x25FF,"GeometricShapes"], - [0x2600,0x26FF,"MiscSymbols"] - ], 0x20: [0,0,250,0,0], // SPACE 0x21: [716,-1,278,78,199], // EXCLAMATION MARK 0x22: [694,-379,500,34,372], // QUOTATION MARK @@ -1046,6 +1059,19 @@ 0x2D8: [694,-515,500,92,407], // BREVE 0x2D9: [669,-549,500,190,309], // DOT ABOVE 0x2DC: [668,-565,500,83,416], // SMALL TILDE + 0x2DA: [715,-542,500,147,352], // RING ABOVE + 0x300: [699,-505,0,-394,-205], // COMBINING GRAVE ACCENT + 0x301: [699,-505,0,-297,-107], // COMBINING ACUTE ACCENT + 0x302: [694,-531,0,-388,-113], // COMBINING CIRCUMFLEX ACCENT + 0x303: [668,-565,0,-417,-84], // COMBINING TILDE + 0x304: [590,-544,0,-431,-70], // COMBINING MACRON + 0x306: [694,-515,0,-408,-93], // COMBINING BREVE + 0x307: [669,-549,0,-310,-191], // COMBINING DOT ABOVE + 0x308: [669,-554,0,-405,-96], // COMBINING DIAERESIS + 0x30A: [715,-542,0,-353,-148], // COMBINING RING ABOVE + 0x30B: [701,-510,0,-378,-80], // COMBINING DOUBLE ACUTE ACCENT + 0x30C: [644,-513,0,-386,-115], // COMBINING CARON + 0x338: [716,215,0,-639,-140], // COMBINING LONG SOLIDUS OVERLAY 0x393: [680,0,625,25,582], // GREEK CAPITAL LETTER GAMMA 0x394: [716,0,833,46,786], // GREEK CAPITAL LETTER DELTA 0x398: [705,22,778,56,722], // GREEK CAPITAL LETTER THETA @@ -1180,6 +1206,18 @@ 0x2323: [378,-134,1000,55,944], // stix-small up curve 0x23B0: [744,244,412,55,357], // UPPER LEFT OR LOWER RIGHT CURLY BRACKET SECTION 0x23B1: [744,244,412,56,357], // UPPER RIGHT OR LOWER LEFT CURLY BRACKET SECTION + 0x25B3: [716,0,889,59,828], // WHITE UP-POINTING TRIANGLE + 0x25B9: [505,5,500,26,474], // WHITE RIGHT-POINTING SMALL TRIANGLE + 0x25BD: [500,215,889,59,828], // WHITE DOWN-POINTING TRIANGLE + 0x25C3: [505,5,500,26,473], // WHITE LEFT-POINTING SMALL TRIANGLE + 0x25EF: [715,215,1000,56,944], // LARGE CIRCLE + 0x2660: [727,130,778,55,723], // BLACK SPADE SUIT + 0x2661: [716,33,778,55,723], // WHITE HEART SUIT + 0x2662: [727,162,778,55,723], // WHITE DIAMOND SUIT + 0x2663: [726,130,778,28,750], // BLACK CLUB SUIT + 0x266D: [750,22,389,55,332], // MUSIC FLAT SIGN + 0x266E: [734,223,389,65,324], // MUSIC NATURAL SIGN + 0x266F: [723,223,389,55,333], // MUSIC SHARP SIGN 0x27E8: [750,250,389,110,333], // MATHEMATICAL LEFT ANGLE BRACKET 0x27E9: [750,250,389,55,278], // MATHEMATICAL RIGHT ANGLE BRACKET 0x27EE: [744,244,412,173,357], // MATHEMATICAL LEFT FLATTENED PARENTHESIS @@ -1196,8 +1234,7 @@ 0x2AB0: [636,138,778,83,694] // SUCCEEDS ABOVE SINGLE-LINE EQUALS SIGN }; - CHTML.FONTDATA.FONTS['MathJax_Math-italic'] = { - directory: 'Math/Italic', + CHTML.FONTDATA.FONTS['MathJax_Math-Italic'] = { style: 'italic', skew: { 0x41: 0.139, @@ -1376,7 +1413,6 @@ }; CHTML.FONTDATA.FONTS['MathJax_Size1'] = { - directory: 'Size1/Regular', 0x20: [0,0,250,0,0], // SPACE 0x28: [850,349,458,152,422], // LEFT PARENTHESIS 0x29: [850,349,458,35,305], // RIGHT PARENTHESIS @@ -1425,7 +1461,6 @@ }; CHTML.FONTDATA.FONTS['MathJax_Size2'] = { - directory: 'Size2/Regular', 0x20: [0,0,250,0,0], // SPACE 0x28: [1150,649,597,180,561], // LEFT PARENTHESIS 0x29: [1150,649,597,35,416], // RIGHT PARENTHESIS @@ -1466,7 +1501,6 @@ }; CHTML.FONTDATA.FONTS['MathJax_Size3'] = { - directory: 'Size3/Regular', 0x20: [0,0,250,0,0], // SPACE 0x28: [1450,949,736,209,701], // LEFT PARENTHESIS 0x29: [1450,949,736,34,526], // RIGHT PARENTHESIS @@ -1491,7 +1525,6 @@ }; CHTML.FONTDATA.FONTS['MathJax_Size4'] = { - directory: 'Size4/Regular', 0x20: [0,0,250,0,0], // SPACE 0x28: [1750,1249,792,237,758], // LEFT PARENTHESIS 0x29: [1750,1249,792,33,554], // RIGHT PARENTHESIS @@ -1550,11 +1583,11 @@ CHTML.FONTDATA.FONTS[SIZE4][0xE154][1] += 200; // adjust depth for brace extender CHTML.FONTDATA.FONTS[MAIN][0x2245][2] -= 222; // fix error in character's right bearing CHTML.FONTDATA.FONTS[MAIN][0x2245][5] = {rfix:-222}; // fix error in character's right bearing - MathJax.Hub.Register.LoadHook(CHTML.fontDir+"/Main/Bold/MathOperators.js",function () { + MathJax.Hub.Register.LoadHook(CHTML.fontDir+"/TeX/Main-Bold.js",function () { CHTML.FONTDATA.FONTS[BOLD][0x2245][2] -= 106; // fix error in character's right bearing CHTML.FONTDATA.FONTS[BOLD][0x2245][5] = {rfix:-106}; // fix error in character's right bearing }); - MathJax.Hub.Register.LoadHook(CHTML.fontDir+"/Typewriter/Regular/BasicLatin.js",function () { + MathJax.Hub.Register.LoadHook(CHTML.fontDir+"/TeX/Typewriter-Regular.js",function () { CHTML.FONTDATA.FONTS['MathJax_Typewriter'][0x20][2] += 275; // fix error in character width CHTML.FONTDATA.FONTS['MathJax_Typewriter'][0x20][5] = {rfix:275}; // fix error in character width }); @@ -1587,35 +1620,39 @@ // // Create @font-face stylesheet for the declared fonts // + CHTML.FONTDATA.familyName = function (font) { + font = font.replace(/^MathJax_/,""); + var names = (font+"-Regular").split(/-/); + var suffix = names[0].toLowerCase().replace(/(?:igraphic|serif|writer|tur)$/,"") + + "-" + names[1].replace(/[^A-Z]/g,""); + return "MJXc-TeX-"+suffix; + }; (function () { var STYLES = CHTML.config.styles, FONTS = CHTML.FONTDATA.FONTS; - var DIR = AJAX.fileURL(CHTML.webfontDir); + var DIR = AJAX.fileURL(CHTML.webfontDir+"/TeX/otf"); var faces = []; for (var name in FONTS) {if (FONTS.hasOwnProperty(name)) { - var font = FONTS[name]; if (typeof(font) !== "string") font = font.directory; - var names = font.split(/\//); - var suffix = names[0].toLowerCase().replace(/(?:igraphic|serif|writer|tur)$/,"") - + "-" + names[1].replace(/[^A-Z]/g,""); - var family = "MJXc_TeX_"+suffix, FAMILY = family; - FONTS[name].className = "MJXc-TeX-"+suffix; + var family = CHTML.FONTDATA.familyName(name), FAMILY = family; + var variant = ((name+"-Regular").split(/-/))[1]; + FONTS[name].className = family; // // The local font, if found // - font = {"font-family":family}; + var font = {"font-family":family}; name = name.replace(/-.*/,""); - if (names[1] === "Regular") { + if (variant === "Regular") { font.src = "local('"+name+"'), local('"+name+"-Regular')"; } else { - font.src = "local('"+name+" "+names[1]+"'), local('"+name+"-"+names[1]+"')"; + font.src = "local('"+name+" "+variant+"'), local('"+name+"-"+variant+"')"; } faces.push(font); // // For Chrome, need to have separate font-weight and font-style versions // - if (names[1] !== "Regular") { + if (variant !== "Regular") { font = {"font-family":family+"x", src:"local('"+name+"')"}; - if (names[1].match(/Bold/)) font["font-weight"] = "bold"; - if (names[1].match(/Italic/)) font["font-style"] = "italic"; + if (variant.match(/Bold/)) font["font-weight"] = "bold"; + if (variant.match(/Italic/)) font["font-style"] = "italic"; FAMILY += ","+family+"x"; faces.push(font); } @@ -1623,21 +1660,18 @@ // The web font, if no local font found // ### FIXME: add more formats to src // - font = { - "font-family":family+"w", - src:"url('"+DIR+"/MathJax_"+names[0]+"-"+names[1]+".otf')" - }; + font = {"font-family":family+"w", src:"url('"+DIR+"/"+name+".otf')"}; faces.push(font); // // A class that looks for the local and web fonts // FAMILY += ","+family+"w"; - STYLES[".MJXc-TeX-"+suffix] = {"font-family":FAMILY}; + STYLES["."+family] = {"font-family":FAMILY}; }} if (faces.length) STYLES["@font-face"] = faces; })(); - AJAX.loadComplete(CHTML.fontDir + "/fontdata.js"); + CHTML.fontLoaded("TeX/fontdata"); })(MathJax.OutputJax.CommonHTML,MathJax.ElementJax.mml,MathJax.Ajax); diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index 8e91ca32b..e38b8f5a7 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -104,6 +104,7 @@ "mjx-chartest": { display:"block", + visibility: "hidden", position:"absolute", top:0, "line-height":"normal", "font-size":"500%" @@ -140,8 +141,7 @@ if (!this.require) {this.require = []} this.SUPER(arguments).Config.call(this); var settings = this.settings; if (settings.scale) {this.config.scale = settings.scale} - this.fontDir += "/TeX"; this.webfontDir += "/TeX/otf"; - this.require.push(this.fontDir+"/fontdata.js"); + this.require.push(this.fontDir+"/TeX/fontdata.js"); this.require.push(MathJax.OutputJax.extensionDir+"/MathEvents.js"); }, @@ -171,7 +171,26 @@ }, InitializeCHTML: function () { }, + + // + // Load data for a font + // + loadFont: function (font) { + HUB.RestartAfter(AJAX.Require(this.fontDir+"/"+font)); + }, + // + // Signal that the font data are loaded + // + fontLoaded: function (font) { + if (!font.match(/-|fontdata/)) font += "-Regular"; + if (!font.match(/\.js$/)) font += ".js" + MathJax.Callback.Queue( + ["Post",HUB.Startup.signal,["CommonHTML - font data loaded",font]], + ["loadComplete",AJAX,this.fontDir+"/"+font] + ); + }, + /********************************************/ preTranslate: function (state) { @@ -380,6 +399,8 @@ ID: 0, idPostfix: "", GetID: function () {this.ID++; return this.ID}, + + /********************************************/ MATHSPACE: { veryverythinmathspace: 1/18, @@ -527,10 +548,9 @@ while (variant) { for (var i = 0, m = variant.fonts.length; i < m; i++) { var font = this.FONTDATA.FONTS[variant.fonts[i]]; -// if (typeof(font) === "string") this.loadFont(font); + if (typeof(font) === "string") this.loadFont(font); var C = font[n]; if (C) { -// ### FIXME: implement aliases if (C.length === 5) C[5] = {}; if (C.c == null) { C[0] /= 1000; C[1] /= 1000; C[2] /= 1000; C[3] /= 1000; C[4] /= 1000; @@ -538,12 +558,30 @@ } if (C[5].space) return {type:"space", w:C[2], font:font}; return {type:"char", font:font, n:n}; - } // else load block files? + } else if (font.Extra) { + this.findBlock(font,n); + } } variant = this.FONTDATA.VARIANT[variant.chain]; } return this.unknownChar(VARIANT,n); }, + findBlock: function (font,n) { + var extra = font.Extra, name = font.file, file; + for (var i = 0, m = extra.length; i < m; i++) { + if (typeof(extra[i]) === "number") { + if (n === extra[i]) {file = name; break} + } else { + if (n < extra[i][0]) return; + if (n <= extra[i][1]) {file = name; break} + } + } + // + // Currently this only loads one extra file, but that + // might need to be expanded in the future. + // + if (file) {delete font.Extra; this.loadFont(name)} + }, // // Create a fake font entry for an unknown character. // From 5107ef02dc98b123031a98cadf6f37c0a5d003f2 Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Sat, 14 Mar 2015 17:59:47 -0400 Subject: [PATCH 075/186] Don't need to add the fake nodes again, since already handled by setTeXclass() already does that. (We didn't use it initially.) --- unpacked/jax/output/CommonHTML/jax.js | 1 - 1 file changed, 1 deletion(-) diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index e38b8f5a7..1bb578955 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -1867,7 +1867,6 @@ // // Make row of open, data, sep, ... data, close // - this.addFakeNodes(); this.CHTMLaddChild(node,"open",{}); for (var i = 0, m = this.data.length; i < m; i++) { this.CHTMLaddChild(node,"sep"+i,{}); From 8ed1db868bf9edefe1570268091a0485c26d2e9f Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Sat, 14 Mar 2015 18:08:10 -0400 Subject: [PATCH 076/186] Add fondata-extra.js and support for it. --- .../CommonHTML/fonts/TeX/fontdata-extra.js | 238 ++++++++++++++++++ unpacked/jax/output/CommonHTML/jax.js | 2 +- 2 files changed, 239 insertions(+), 1 deletion(-) create mode 100644 unpacked/jax/output/CommonHTML/fonts/TeX/fontdata-extra.js diff --git a/unpacked/jax/output/CommonHTML/fonts/TeX/fontdata-extra.js b/unpacked/jax/output/CommonHTML/fonts/TeX/fontdata-extra.js new file mode 100644 index 000000000..643bcabaf --- /dev/null +++ b/unpacked/jax/output/CommonHTML/fonts/TeX/fontdata-extra.js @@ -0,0 +1,238 @@ +/* -*- Mode: Javascript; indent-tabs-mode:nil; js-indent-level: 2 -*- */ +/* vim: set ts=2 et sw=2 tw=80: */ + +/************************************************************* + * + * MathJax/jax/output/CommonHTML/fonts/TeX/fontdata-extra.js + * + * Adds extra stretchy characters to the TeX font data. + * + * --------------------------------------------------------------------- + * + * Copyright (c) 2015 The MathJax Consortium + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +(function (CHTML) { + var VERSION = "2.5.0"; + + var DELIMITERS = CHTML.FONTDATA.DELIMITERS; + + var MAIN = "MathJax_Main", + BOLD = "MathJax_Main-Bold", + AMS = "MathJax_AMS", + SIZE1 = "MathJax_Size1", + SIZE4 = "MathJax_Size4"; + var H = "H", V = "V"; + + var delim = { + 0x003D: // equal sign + { + dir: H, HW: [[.767,MAIN]], stretch: {rep:[0x003D,MAIN]} + }, + 0x219E: // left two-headed arrow + { + dir: H, HW: [[1,AMS]], stretch: {left:[0x219E,AMS], rep:[0x2212,MAIN]} + }, + 0x21A0: // right two-headed arrow + { + dir: H, HW: [[1,AMS]], stretch: {right:[0x21A0,AMS], rep:[0x2212,MAIN]} + }, + 0x21A4: // left arrow from bar + { + dir: H, HW: [], + stretch: {min:1, left:[0x2190,MAIN], rep:[0x2212,MAIN], right:[0x2223,SIZE1,0,-.05,.9]} + }, + 0x21A5: // up arrow from bar + { + dir: V, HW: [], + stretch: {min:.6, bot:[0x22A5,BOLD,0,0,.75], ext:[0x23D0,SIZE1], top:[0x2191,SIZE1]} + }, + 0x21A6: // right arrow from bar + { + dir: H, HW: [[1,MAIN]], + stretch: {left:[0x2223,SIZE1,-.09,-.05,.9], rep:[0x2212,MAIN], right:[0x2192,MAIN]} + }, + 0x21A7: // down arrow from bar + { + dir: V, HW: [], + stretch: {min:.6, top:[0x22A4,BOLD,0,0,.75], ext:[0x23D0,SIZE1], bot:[0x2193,SIZE1]} + }, + 0x21B0: // up arrow with top leftwards + { + dir: V, HW: [[.722,AMS]], + stretch: {top:[0x21B0,AMS], ext:[0x23D0,SIZE1,.097]} + }, + 0x21B1: // up arrow with top right + { + dir: V, HW: [[.722,AMS]], + stretch: {top:[0x21B1,AMS,.27], ext:[0x23D0,SIZE1]} + }, + 0x21BC: // left harpoon with barb up + { + dir: H, HW: [[1,MAIN]], + stretch: {left:[0x21BC,MAIN], rep:[0x2212,MAIN]} + }, + 0x21BD: // left harpoon with barb down + { + dir: H, HW: [[1,MAIN]], + stretch: {left:[0x21BD,MAIN], rep:[0x2212,MAIN]} + }, + 0x21BE: // up harpoon with barb right + { + dir: V, HW: [[.888,AMS]], + stretch: {top:[0x21BE,AMS,.12,0,1.1], ext:[0x23D0,SIZE1]} + }, + 0x21BF: // up harpoon with barb left + { + dir: V, HW: [[.888,AMS]], + stretch: {top:[0x21BF,AMS,.12,0,1.1], ext:[0x23D0,SIZE1]} + }, + 0x21C0: // right harpoon with barb up + { + dir: H, HW: [[1,MAIN]], + stretch: {right:[0x21C0,MAIN], rep:[0x2212,MAIN]} + }, + 0x21C1: // right harpoon with barb down + { + dir: H, HW: [[1,MAIN]], + stretch: {right:[0x21C1,MAIN], rep:[0x2212,MAIN]} + }, + 0x21C2: // down harpoon with barb right + { + dir: V, HW: [[.888,AMS]], + stretch: {bot:[0x21C2,AMS,.12,0,1.1], ext:[0x23D0,SIZE1]} + }, + 0x21C3: // down harpoon with barb left + { + dir: V, HW: [[.888,AMS]], + stretch: {bot:[0x21C3,AMS,.12,0,1.1], ext:[0x23D0,SIZE1]} + }, + 0x21DA: // left triple arrow + { + dir: H, HW: [[1,AMS]], + stretch: {left:[0x21DA,AMS], rep:[0x2261,MAIN]} + }, + 0x21DB: // right triple arrow + { + dir: H, HW: [[1,AMS]], + stretch: {right:[0x21DB,AMS], rep:[0x2261,MAIN]} + }, + 0x23B4: // top square bracket + { + dir: H, HW: [], + stretch: {min:.5, left:[0x250C,AMS,0,-.1], rep:[0x2212,MAIN,0,.35], right:[0x2510,AMS,0,-.1]} + }, + 0x23B5: // bottom square bracket + { + dir: H, HW: [], + stretch: {min:.5, left:[0x2514,AMS,0,.26], rep:[0x2212,MAIN,0,0,0,.25], right:[0x2518,AMS,0,.26]} + }, + 0x23DC: // top paren + { + dir: H, HW: [[.778,AMS,0,0x2322],[1,MAIN,0,0x2322]], + stretch: {left:[0xE150,SIZE4], rep:[0xE154,SIZE4], right:[0xE151,SIZE4]} + }, + 0x23DD: // bottom paren + { + dir: H, HW: [[.778,AMS,0,0x2323],[1,MAIN,0,0x2323]], + stretch: {left:[0xE152,SIZE4], rep:[0xE154,SIZE4], right:[0xE153,SIZE4]} + }, + 0x23E0: // top tortoise shell + { + dir: H, HW: [], + stretch: {min:1.25, left:[0x2CA,MAIN,-.1], rep:[0x2C9,MAIN,0,.13], right:[0x2CB,MAIN], fullExtenders:true} + }, + 0x23E1: // bottom tortoise shell + { + dir: H, HW: [], + stretch: {min:1.5, left:[0x2CB,MAIN,-.1,.1], rep:[0x2C9,MAIN], right:[0x2CA,MAIN,-.1,.1], fullExtenders:true} + }, + 0x2906: // leftwards double arrow from bar + { + dir: H, HW: [], + stretch: {min:1, left:[0x21D0,MAIN], rep:[0x3D,MAIN], right:[0x2223,SIZE1,0,-.1]} + }, + 0x2907: // rightwards double arrow from bar + { + dir: H, HW: [], + stretch: {min:.7, left:[0x22A8,AMS,0,-.12], rep:[0x3D,MAIN], right:[0x21D2,MAIN]} + }, + 0x294E: // left barb up right barb up harpoon + { + dir: H, HW: [], + stretch: {min:.5, left:[0x21BC,MAIN], rep:[0x2212,MAIN], right:[0x21C0,MAIN]} + }, + 0x294F: // up barb right down barb right harpoon + { + dir: V, HW: [], + stretch: {min:.5, top:[0x21BE,AMS,.12,0,1.1], ext:[0x23D0,SIZE1], bot:[0x21C2,AMS,.12,0,1.1]} + }, + 0x2950: // left barb dow right barb down harpoon + { + dir: H, HW: [], + stretch: {min:.5, left:[0x21BD,MAIN], rep:[0x2212,MAIN], right:[0x21C1,MAIN]} + }, + 0x2951: // up barb left down barb left harpoon + { + dir: V, HW: [], + stretch: {min:.5, top:[0x21BF,AMS,.12,0,1.1], ext:[0x23D0,SIZE1], bot:[0x21C3,AMS,.12,0,1.1]} + }, + 0x295A: // leftwards harpoon with barb up from bar + { + dir: H, HW: [], + stretch: {min:1, left:[0x21BC,MAIN], rep:[0x2212,MAIN], right:[0x2223,SIZE1,0,-.05,.9]} + }, + 0x295B: // rightwards harpoon with barb up from bar + { + dir: H, HW: [], + stretch: {min:1, left:[0x2223,SIZE1,-.05,-.05,.9], rep:[0x2212,MAIN], right:[0x21C0,MAIN]} + }, + 0x295C: // up harpoon with barb right from bar + { + dir: V, HW: [], + stretch: {min:.7, bot:[0x22A5,BOLD,0,0,.75], ext:[0x23D0,SIZE1], top:[0x21BE,AMS,.12,0,1.1]} + }, + 0x295D: // down harpoon with barb right from bar + { + dir: V, HW: [], + stretch: {min:.7, top:[0x22A4,BOLD,0,0,.75], ext:[0x23D0,SIZE1], bot:[0x21C2,AMS,.12,0,1.1]} + }, + 0x295E: // leftwards harpoon with barb down from bar + { + dir: H, HW: [], + stretch: {min:1, left:[0x21BD,MAIN], rep:[0x2212,MAIN], right:[0x2223,SIZE1,0,-.05,.9]} + }, + 0x295F: // rightwards harpoon with barb down from bar + { + dir: H, HW: [], + stretch: {min:1, left:[0x2223,SIZE1,-.05,-.05,.9], rep:[0x2212,MAIN], right:[0x21C1,MAIN]} + }, + 0x2960: // up harpoon with barb left from bar + { + dir: V, HW: [], + stretch: {min:.7, bot:[0x22A5,BOLD,0,0,.75], ext:[0x23D0,SIZE1], top:[0x21BF,AMS,.12,0,1.1]} + }, + 0x2961: // down harpoon with barb left from bar + { + dir: V, HW: [], + stretch: {min:.7, top:[0x22A4,BOLD,0,0,.75], ext:[0x23D0,SIZE1], bot:[0x21C3,AMS,.12,0,1.1]} + } + }; + + for (var id in delim) {if (delim.hasOwnProperty(id)) {DELIMITERS[id] = delim[id]}}; + + CHTML.fontLoaded("TeX/fontdata-extra"); + +})(MathJax.OutputJax.CommonHTML); diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index 1bb578955..e8457cdd0 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -735,7 +735,7 @@ code = delim.alias; delim = this.FONTDATA.DELIMITERS[code]; if (!delim) {delim = {HW: [0,this.FONTDATA.VARIANT[MML.VARIANT.NORMAL]]}} } -// if (delim.load) {HUB.RestartAfter(AJAX.Require(this.fontDir+"/fontdata-"+delim.load+".js"))} + if (delim.load) HUB.RestartAfter(AJAX.Require(this.fontDir+"/TeX/fontdata-"+delim.load+".js")); for (var i = 0, m = delim.HW.length; i < m; i++) { if (delim.HW[i][0]*scale >= HW-.01 || (i == m-1 && !delim.stretch)) { if (delim.HW[i][2]) scale *= delim.HW[i][2]; From 35bd8e0acddd20d65de0e6c7614a7b89f4413124 Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Sat, 14 Mar 2015 18:15:45 -0400 Subject: [PATCH 077/186] Better positioning of extender in vertical stretchy delimiters. --- unpacked/jax/output/CommonHTML/jax.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index e8457cdd0..832f22c81 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -767,10 +767,10 @@ var n = Math.ceil((H-h)/(k*(ebox.h+ebox.d)*.9)); H = .9*n*k*(ebox.h+ebox.d) + h; } - var s = 1.1*(H - h)/k + .2*k; // space to cover by extender + var s = 1.1*(H - h)/k + .3; // space to cover by extender s /= (ebox.h+ebox.d); // scale factor; this.Transform(ext, - "translateY("+CHTML.Em(-ebox.d+.05)+") scaleY("+s.toFixed(3).replace(/0+$/,"")+")", + "translateY("+CHTML.Em(-ebox.d+.25)+") scaleY("+s.toFixed(3).replace(/0+$/,"")+")", "left "+CHTML.Em(ebox.d) ); ext.style.paddingTop=ext.style.paddingBottom = 0; From beabbc7a171484a8ddbda518d5d184c2f432787e Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Sat, 14 Mar 2015 18:40:58 -0400 Subject: [PATCH 078/186] Add bevelled fraction support --- unpacked/jax/output/CommonHTML/jax.js | 73 +++++++++++++++++---------- 1 file changed, 46 insertions(+), 27 deletions(-) diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index 832f22c81..df1df735b 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -57,6 +57,7 @@ "mjx-numerator": {display:"block", "text-align":"center"}, "mjx-denominator": {display:"block", "text-align":"center"}, ".MJXc-fpad": {"padding-left":".1em", "padding-right":".1em"}, + ".MJXc-bevelled > *": {display:"inline-block"}, "mjx-stack": {display:"inline-block"}, "mjx-op": {display:"block"}, @@ -1753,35 +1754,53 @@ var nbox = this.CHTMLbboxFor(0), dbox = this.CHTMLbboxFor(1); values.linethickness = Math.max(0,CHTML.length2em(values.linethickness||"0",0)); var mt = CHTML.TEX.min_rule_thickness/CHTML.em/scale, a = CHTML.TEX.axis_height; - var t = values.linethickness, p,q, u,v; - if (isDisplay) {u = CHTML.TEX.num1; v = CHTML.TEX.denom1} - else {u = (t === 0 ? CHTML.TEX.num3 : CHTML.TEX.num2); v = CHTML.TEX.denom2} - if (t === 0) { // \atop - p = Math.max((isDisplay ? 7 : 3) * CHTML.TEX.rule_thickness, 2*mt); // force to at least 2 px - q = (u - nbox.d*sscale) - (dbox.h*sscale - v); - if (q < p) {u += (p - q)/2; v += (p - q)/2} - frac.style.verticalAlign = CHTML.Em(-v); - } else { // \over - p = Math.max((isDisplay ? 3 : 0) * t, mt); // force to be at least 1px - t = Math.max(t,mt); - q = (u - nbox.d*sscale) - (a + t/2); if (q < p) u += (p - q); - q = (a - t/2) - (dbox.h*sscale - v); if (q < p) v += (p - q); - frac.style.verticalAlign = CHTML.Em(t/2-v); - num.style.borderBottom = CHTML.Em(t)+" solid"; - num.className += " MJXc-fpad"; nbox.L = nbox.R = .1; - denom.className += " MJXc-fpad"; dbox.L = dbox.R = .1; + var t = values.linethickness, p,q, u,v; + if (values.bevelled) { + frac.className = "MJXc-bevelled"; + var delta = (isDisplay ? .4 : .15); + var H = sscale*Math.max(nbox.h+nbox.d,dbox.h+dbox.d) + 2*delta; + var bevel = HTML.Element("mjx-bevel"); frac.insertBefore(bevel,denom); + var bbox = CHTML.createDelimiter(bevel,0x2F,H); + u = sscale*(nbox.d-nbox.h)/2+a+delta; + v = sscale*(dbox.d-dbox.h)/2+a-delta; + if (u) num.style.verticalAlign = CHTML.Em(u); + if (v) denom.style.verticalAlign = CHTML.Em(v); + bevel.style.marginLeft = bevel.style.marginRight = CHTML.Em(-delta/2); + this.CHTML = CHTML.emptyBBox(); + CHTML.combineBBoxes(this.CHTML,nbox,0,u,sscale); + CHTML.combineBBoxes(this.CHTML,bbox,sscale*nbox.w-delta/2,0,sscale); + CHTML.combineBBoxes(this.CHTML,dbox,sscale*nbox.w+bbox.w-delta,v,sscale); + CHTML.cleanBBox(this.CHTML); + } else { + if (isDisplay) {u = CHTML.TEX.num1; v = CHTML.TEX.denom1} + else {u = (t === 0 ? CHTML.TEX.num3 : CHTML.TEX.num2); v = CHTML.TEX.denom2} + if (t === 0) { // \atop + p = Math.max((isDisplay ? 7 : 3) * CHTML.TEX.rule_thickness, 2*mt); // force to at least 2 px + q = (u - nbox.d*sscale) - (dbox.h*sscale - v); + if (q < p) {u += (p - q)/2; v += (p - q)/2} + frac.style.verticalAlign = CHTML.Em(-v); + } else { // \over + p = Math.max((isDisplay ? 3 : 0) * t, mt); // force to be at least 1px + t = Math.max(t,mt); + q = (u - nbox.d*sscale) - (a + t/2); if (q < p) u += (p - q); + q = (a - t/2) - (dbox.h*sscale - v); if (q < p) v += (p - q); + frac.style.verticalAlign = CHTML.Em(t/2-v); + num.style.borderBottom = CHTML.Em(t)+" solid"; + num.className += " MJXc-fpad"; nbox.L = nbox.R = .1; + denom.className += " MJXc-fpad"; dbox.L = dbox.R = .1; + } + // + // Determine the new bounding box and place the parts + // + this.CHTML = CHTML.emptyBBox(); + CHTML.combineBBoxes(this.CHTML,nbox,0,u,sscale); + CHTML.combineBBoxes(this.CHTML,dbox,0,-v,sscale); + CHTML.cleanBBox(this.CHTML); + u -= sscale*nbox.d + a + t/2; v -= sscale*dbox.h - a + t/2; + if (u > 0) num.style.paddingBottom = CHTML.Em(u); + if (v > 0) denom.style.paddingTop = CHTML.Em(v); } // - // Determine the new bounding box and place the parts - // - this.CHTML = CHTML.emptyBBox(); - CHTML.combineBBoxes(this.CHTML,nbox,0,u,sscale); - CHTML.combineBBoxes(this.CHTML,dbox,0,-v,sscale); - CHTML.cleanBBox(this.CHTML); - u -= sscale*nbox.d + a + t/2; v -= sscale*dbox.h - a + t/2; - if (u > 0) num.style.paddingBottom = CHTML.Em(u); - if (v > 0) denom.style.paddingTop = CHTML.Em(v); - // // Add nulldelimiterspace around the fraction // (TeXBook pg 150 and Appendix G rule 15e) // From e202cde5ed66eee5d9f1770fddd7a1a9045b560f Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Sat, 14 Mar 2015 19:01:21 -0400 Subject: [PATCH 079/186] Add support for href, class, RDFa, aria, and other attributes. --- unpacked/jax/output/CommonHTML/jax.js | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index df1df735b..e900b3510 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -1068,14 +1068,39 @@ if (!this.CHTML) this.CHTML = {}; this.CHTML = CHTML.zeroBBox(); if (this.inferred) return node; + if (this.href) node = HTML.addElement(node,"a",{href:this.href, isMathJax:true}); if (!this.CHTMLnodeID) {this.CHTMLnodeID = CHTML.GetID()}; var id = (this.id || "MJXc-Node-"+this.CHTMLnodeID); - return HTML.addElement(node,"mjx-"+this.type,{id:id}); + return this.CHTMLhandleAttributes(HTML.addElement(node,"mjx-"+this.type,{id:id})); }, CHTMLnodeElement: function () { if (!this.CHTMLnodeID) {return null} return document.getElementById(this.id||"MJXc-Node-"+this.CHTMLnodeID); }, + + CHTMLhandleAttributes: function (node) { + if (this["class"]) node.className = this["class"]; + // + // Copy RDFa, aria, and other tags from the MathML to the CHTML + // output nodes. Don't copy those in the MML.nocopyAttributes list, + // the ignoreMMLattributes configuration list, or anything that + // already exists as a property of the node (e.g., no "onlick", etc.) + // If a name in the ignoreMMLattributes object is set to false, then + // the attribute WILL be copied. + // + if (this.attrNames) { + var copy = this.attrNames, skip = MML.nocopyAttributes, ignore = HUB.config.ignoreMMLattributes; + var defaults = (this.type === "mstyle" ? MML.math.prototype.defaults : this.defaults); + for (var i = 0, m = copy.length; i < m; i++) { + var id = copy[i]; + if (ignore[id] == false || (!skip[id] && !ignore[id] && + defaults[id] == null && typeof(node[id]) === "undefined")) { + node.setAttribute(id,this.attr[id]) + } + } + } + return node; + }, CHTMLhandleStyle: function (node) { if (this.style) node.style.cssText = this.style; From c52d2aaa0ca3a17b7b1062edb5d6be07c61e160a Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Sat, 14 Mar 2015 19:06:09 -0400 Subject: [PATCH 080/186] Add some FIXME comments. --- unpacked/jax/output/CommonHTML/jax.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index e900b3510..c933a4592 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -1104,6 +1104,8 @@ CHTMLhandleStyle: function (node) { if (this.style) node.style.cssText = this.style; + // ### FIXME: remove font size and other font settings from non-token elements? + // ### FIXME: modify bounding box to handle border, padding, and margin. }, CHTMLhandleColor: function (node) { From d3b5895468f846fad7452ec558561adc2ed82ef5 Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Sun, 15 Mar 2015 08:52:01 -0400 Subject: [PATCH 081/186] Create a bbox object with methods for scaling, combining, etc, rather than scaleBBox, combineBBoxes, etc. --- unpacked/jax/output/CommonHTML/jax.js | 153 ++++++++++++++------------ 1 file changed, 80 insertions(+), 73 deletions(-) diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index c933a4592..affa68adb 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -701,7 +701,7 @@ handleText: function (node,text,variant,bbox) { if (node.childNodes.length === 0) { HTML.addElement(node,"mjx-char"); - bbox = CHTML.emptyBBox(); + bbox = CHTML.BBOX.empty(); } var string = {text:text, i:0, length:text.length}; if (typeof(variant) === "string") variant = this.FONTDATA.VARIANT[variant]; @@ -712,7 +712,7 @@ list.push.apply(list,this.getCharList(variant,n)); } this.addCharList(node.firstChild,list,bbox); - this.cleanBBox(bbox); + bbox.clean(); bbox.h += HFUZZ; bbox.d += DFUZZ; bbox.t += HFUZZ; bbox.b += DFUZZ; node.firstChild.style[bbox.h < 0 ? "marginTop" : "paddingTop"] = this.Em(bbox.h-(bbox.a||0)); node.firstChild.style[bbox.d < 0 ? "marginBottom": "paddingBottom"] = this.Em(bbox.d); @@ -722,7 +722,7 @@ /********************************************************/ createDelimiter: function (node,code,HW,scale,font) { - var bbox = this.zeroBBox(); + var bbox = this.BBOX.zero(); if (!code) { bbox.w = bbox.r = this.TEX.nulldelimiterspace; HTML.addElement(node,"mjx-box",{style:{width:bbox.w}}); @@ -754,7 +754,7 @@ var top, bot, mid, ext, tbox, bbox, mbox, ebox, k = 1; tbox = this.createChar(tmp,(delim.top||delim.ext),scale,font); top = tmp.removeChild(tmp.firstChild); bbox = this.createChar(tmp,(delim.bot||delim.ext),scale,font); bot = tmp.removeChild(tmp.firstChild); - mbox = ebox = this.zeroBBox(); + mbox = ebox = this.BBOX.zero(); var h = tbox.h + tbox.d + bbox.h + bbox.d; node.appendChild(top); if (delim.mid) { @@ -805,7 +805,7 @@ lbox = this.createChar(tmp,(delim.left||delim.rep),scale,font); left = tmp.removeChild(tmp.firstChild); rbox = this.createChar(tmp,(delim.right||delim.rep),scale,font); right = tmp.removeChild(tmp.firstChild); node.appendChild(left); - var BBOX = this.zeroBBox(); + var BBOX = this.BBOX.zero(); BBOX.h = Math.max(lbox.h,rbox.h); BBOX.d = Math.max(lbox.d,rbox.d); left.style.marginLeft = CHTML.Em(-lbox.l); left.style.marginRight = CHTML.Em(lbox.r-lbox.w); right.style.marginleft = CHTML.Em(-rbox.l); right.style.marginRight = CHTML.Em(rbox.r-rbox.w); @@ -946,47 +946,53 @@ /********************************************************/ - zeroBBox: function () { - return {h:0, d:0, w:0, l:0, r:0, t:0, b:0}; - }, - emptyBBox: function () { - return {h:-BIGDIMEN, d:-BIGDIMEN, w:0, l:BIGDIMEN, r:-BIGDIMEN, - t:-BIGDIMEN, b:-BIGDIMEN}; - }, - cleanBBox: function (bbox) { - if (bbox.h === -BIGDIMEN) bbox.h = 0; - if (bbox.d === -BIGDIMEN) bbox.d = 0; - if (bbox.l === BIGDIMEN) bbox.l = 0; - if (bbox.r === -BIGDIMEN) bbox.r = 0; - if (bbox.t === -BIGDIMEN) bbox.t = 0; - if (bbox.b === -BIGDIMEN) bbox.b = 0; - }, - scaleBBox: function (bbox,level,dlevel) { - var scale = Math.pow(SCRIPTFACTOR,Math.min(2,level)-(dlevel||0)); - bbox.w *= scale; bbox.h *= scale; bbox.d *= scale; - bbox.l *= scale; bbox.r *= scale; bbox.t *= scale; bbox.b *= scale; - if (bbox.L) bbox.L *= scale; - if (bbox.R) bbox.R *= scale; - }, - combineBBoxes: function (bbox,cbox,x,y,scale) { - if (x + scale*cbox.r > bbox.r) bbox.r = x + scale*cbox.r; - if (x + scale*cbox.l < bbox.l) bbox.l = x + scale*cbox.l; - if (x + scale*(cbox.w+(cbox.L||0)+(cbox.R||0)) > bbox.w) - bbox.w = x + scale*(cbox.w + (cbox.L||0) + (cbox.R||0)); - if (y + scale*cbox.h > bbox.h) bbox.h = y + scale*cbox.h; - if (scale*cbox.d - y > bbox.d) bbox.d = scale*cbox.d - y; - if (y + scale*cbox.t > bbox.t) bbox.t = y + scale*cbox.t; - if (scale*cbox.b - y > bbox.b) bbox.b = scale*cbox.b - y; - }, - - /********************************************************/ - arrayEntry: function (a,i) {return a[Math.max(0,Math.min(i,a.length-1))]} }); /**********************************************************/ + CHTML.BBOX = MathJax.Object.Subclass({ + Init: function (def) { + for (var id in def) { + if (def.hasOwnProperty(id)) this[id] = def[id]; + } + }, + clean: function () { + if (this.h === -BIGDIMEN) this.h = 0; + if (this.d === -BIGDIMEN) this.d = 0; + if (this.l === BIGDIMEN) this.l = 0; + if (this.r === -BIGDIMEN) this.r = 0; + if (this.t === -BIGDIMEN) this.t = 0; + if (this.b === -BIGDIMEN) this.b = 0; + }, + scale: function (level,dlevel) { + var scale = Math.pow(SCRIPTFACTOR,Math.min(2,level)-(dlevel||0)); + this.w *= scale; this.h *= scale; this.d *= scale; + this.l *= scale; this.r *= scale; this.t *= scale; this.b *= scale; + if (this.L) this.L *= scale; + if (this.R) this.R *= scale; + }, + combine: function (cbox,x,y,scale) { + if (x + scale*cbox.r > this.r) this.r = x + scale*cbox.r; + if (x + scale*cbox.l < this.l) this.l = x + scale*cbox.l; + if (x + scale*(cbox.w+(cbox.L||0)+(cbox.R||0)) > this.w) + this.w = x + scale*(cbox.w + (cbox.L||0) + (cbox.R||0)); + if (y + scale*cbox.h > this.h) this.h = y + scale*cbox.h; + if (scale*cbox.d - y > this.d) this.d = scale*cbox.d - y; + if (y + scale*cbox.t > this.t) this.t = y + scale*cbox.t; + if (scale*cbox.b - y > this.b) this.b = scale*cbox.b - y; + } + },{ + zero: function () {return CHTML.BBOX({h:0, d:0, w:0, l:0, r:0, t:0, b:0})}, + empty: function () { + return CHTML.BBOX({h:-BIGDIMEN, d:-BIGDIMEN, w:0, l:BIGDIMEN, r:-BIGDIMEN, + t:-BIGDIMEN, b:-BIGDIMEN}); + } + }); + + /**********************************************************/ + MathJax.Hub.Register.StartupHook("mml Jax Ready",function () { MML = MathJax.ElementJax.mml; @@ -1005,7 +1011,7 @@ this.CHTMLhandleColor(node); var m = Math.max((options.minChildren||0),this.data.length); for (var i = 0; i < m; i++) this.CHTMLaddChild(node,i,options); - if (!options.noBBox) CHTML.cleanBBox(this.CHTML); + if (!options.noBBox) this.CHTML.clean(); return node; }, CHTMLaddChild: function (node,i,options) { @@ -1019,7 +1025,7 @@ child.toCommonHTML(node,options.childOptions); if (!options.noBBox) { var bbox = this.CHTML, cbox = child.CHTML; - CHTML.combineBBoxes(bbox,cbox,bbox.w,0,1); + bbox.combine(cbox,bbox.w,0,1); if (cbox.ic) {bbox.ic = cbox.ic} else {delete bbox.ic} if (cbox.skew) bbox.skew = cbox.skew; } @@ -1066,7 +1072,7 @@ CHTMLcreateNode: function (node) { if (!this.CHTML) this.CHTML = {}; - this.CHTML = CHTML.zeroBBox(); + this.CHTML = CHTML.BBOX.zero(); if (this.inferred) return node; if (this.href) node = HTML.addElement(node,"a",{href:this.href, isMathJax:true}); if (!this.CHTMLnodeID) {this.CHTMLnodeID = CHTML.GetID()}; @@ -1145,7 +1151,7 @@ CHTMLbboxFor: function (n) { if (this.data[n] && this.data[n].CHTML) return this.data[n].CHTML; - return CHTML.zeroBBox(); + return CHTML.BBOX.zero(); }, // // Debugging function to see if internal BBox matches actual bbox @@ -1225,7 +1231,7 @@ MML.mo.Augment({ toCommonHTML: function (node) { node = this.CHTMLcreateNode(node); - this.CHTML = CHTML.emptyBBox(); + this.CHTML = CHTML.BBOX.empty(); var values = this.getValues("displaystyle","largeop","mathvariant"); values.text = this.data.join(""); @@ -1246,7 +1252,7 @@ if (values.largeop) this.CHTMLcenterOp(node); } - CHTML.cleanBBox(this.CHTML); + this.CHTML.clean(); this.CHTMLhandleSpace(node); this.CHTMLhandleStyle(node); this.CHTMLhandleColor(node); @@ -1425,7 +1431,7 @@ node.style.marginTop = CHTML.Em(h-STRUTHEIGHT); node.style.padding = "0 "+CHTML.Em(w)+" "+CHTML.Em(d)+" 0"; var bbox = {w:w, h:h, d:d, l:0, r:w, t:h, b:d}; - CHTML.combineBBoxes(bbox,cbox,x,y,1); + bbox.combine(cbox,x,y,1); bbox.w = w; bbox.h = h; bbox.d = d; this.CHTML = bbox; return node.parentNode; @@ -1625,7 +1631,7 @@ // CHTMLplaceBoxes: function (base,under,over,values,boxes) { var W = this.CHTML.w, i, m = boxes.length; - var BBOX = this.CHTML = CHTML.zeroBBox(); + var BBOX = this.CHTML = CHTML.BBOX.zero(); boxes[this.base].x = boxes[this.base].y = 0; var dx = BIGDIMEN; for (i = 0; i < m; i++) { var SCALE = (i === this.base ? 1 : i === this.over ? values.oscale : values.uscale); @@ -1640,7 +1646,7 @@ var node = (i === this.base ? base : i === this.over ? over : under); node.style.paddingLeft = CHTML.Em((boxes[i].x-dx)/SCALE); } - CHTML.combineBBoxes(BBOX,boxes[i],boxes[i].x-dx,boxes[i].y,SCALE); + BBOX.combine(boxes[i],boxes[i].x-dx,boxes[i].y,SCALE); } } } @@ -1680,10 +1686,10 @@ // // Get the bounding boxes and maximum width of scripts // - var boxes = [], BBOX = this.CHTML = CHTML.emptyBBox(); + var boxes = [], BBOX = this.CHTML = CHTML.BBOX.empty(); for (var i = 0, m = this.data.length; i < m; i++) boxes[i] = this.CHTMLbboxFor(i); var bbox = boxes[this.base], subbox = boxes[this.sub], supbox = boxes[this.sup]; - CHTML.combineBBoxes(BBOX,bbox,0,0,1); + BBOX.combine(bbox,0,0,1); // // Get initial values for parameters // @@ -1711,7 +1717,7 @@ v = Math.max(v,CHTML.TEX.sub1,sscale*subbox.h-(4/5)*ex,values.subscriptshift); sub.style.verticalAlign = CHTML.Em(-v/sscale); sub.style.paddingRight = CHTML.Em(s/sscale); - CHTML.combineBBoxes(BBOX,subbox,x,-v,sscale); + BBOX.combine(subbox,x,-v,sscale); } } else { if (!sub) { @@ -1720,7 +1726,7 @@ sup.style.verticalAlign = CHTML.Em(u/sscale); sup.style.paddingLeft = CHTML.Em(delta/sscale); sup.style.paddingRight = CHTML.Em(s/sscale); - CHTML.combineBBoxes(BBOX,supbox,x+delta,u,sscale); + BBOX.combine(supbox,x+delta,u,sscale); } else { v = Math.max(v,CHTML.TEX.sub2); var t = CHTML.TEX.rule_thickness; @@ -1736,11 +1742,11 @@ sup.style.paddingLeft = CHTML.Em(delta/sscale); sup.style.paddingRight = CHTML.Em(s/sscale); stack.style.verticalAlign = CHTML.Em(-v); - CHTML.combineBBoxes(BBOX,supbox,x+delta,u,sscale); - CHTML.combineBBoxes(BBOX,subbox,x,-v,sscale); + BBOX.combine(supbox,x+delta,u,sscale); + BBOX.combine(subbox,x,-v,sscale); } } - CHTML.cleanBBox(BBOX); + BBOX.clean(); this.CHTMLhandleSpace(node); return node; } @@ -1778,10 +1784,10 @@ // Get the bounding boxes for the parts, and determine the placement // of the numerator and denominator // - var nbox = this.CHTMLbboxFor(0), dbox = this.CHTMLbboxFor(1); + var nbox = this.CHTMLbboxFor(0), dbox = this.CHTMLbboxFor(1), BBOX; values.linethickness = Math.max(0,CHTML.length2em(values.linethickness||"0",0)); var mt = CHTML.TEX.min_rule_thickness/CHTML.em/scale, a = CHTML.TEX.axis_height; - var t = values.linethickness, p,q, u,v; + var t = values.linethickness, p,q, u,v; if (values.bevelled) { frac.className = "MJXc-bevelled"; var delta = (isDisplay ? .4 : .15); @@ -1793,11 +1799,11 @@ if (u) num.style.verticalAlign = CHTML.Em(u); if (v) denom.style.verticalAlign = CHTML.Em(v); bevel.style.marginLeft = bevel.style.marginRight = CHTML.Em(-delta/2); - this.CHTML = CHTML.emptyBBox(); - CHTML.combineBBoxes(this.CHTML,nbox,0,u,sscale); - CHTML.combineBBoxes(this.CHTML,bbox,sscale*nbox.w-delta/2,0,sscale); - CHTML.combineBBoxes(this.CHTML,dbox,sscale*nbox.w+bbox.w-delta,v,sscale); - CHTML.cleanBBox(this.CHTML); + BBOX = this.CHTML = CHTML.BBOX.empty(); + BBOX.combine(nbox,0,u,sscale); + BBOX.combine(bbox,sscale*nbox.w-delta/2,0,sscale); + BBOX.combine(dbox,sscale*nbox.w+bbox.w-delta,v,sscale); + BBOX.clean(); } else { if (isDisplay) {u = CHTML.TEX.num1; v = CHTML.TEX.denom1} else {u = (t === 0 ? CHTML.TEX.num3 : CHTML.TEX.num2); v = CHTML.TEX.denom2} @@ -1819,10 +1825,10 @@ // // Determine the new bounding box and place the parts // - this.CHTML = CHTML.emptyBBox(); - CHTML.combineBBoxes(this.CHTML,nbox,0,u,sscale); - CHTML.combineBBoxes(this.CHTML,dbox,0,-v,sscale); - CHTML.cleanBBox(this.CHTML); + BBOX = this.CHTML = CHTML.BBOX.empty(); + BBOX.combine(nbox,0,u,sscale); + BBOX.combine(dbox,0,-v,sscale); + BBOX.clean(); u -= sscale*nbox.d + a + t/2; v -= sscale*dbox.h - a + t/2; if (u > 0) num.style.paddingBottom = CHTML.Em(u); if (v > 0) denom.style.paddingTop = CHTML.Em(v); @@ -1832,7 +1838,7 @@ // (TeXBook pg 150 and Appendix G rule 15e) // if (!this.texWithDelims && !this.useMMLspacing) { - var space = CHTML.TEX.nulldelimiterspace, BBOX = this.CHTML; + var space = CHTML.TEX.nulldelimiterspace; frac.style.padding = "0 "+CHTML.Em(space); BBOX.l += space; BBOX.r += space; BBOX.w += 2*space; } @@ -1853,7 +1859,7 @@ }); var base = node.firstChild; var sqrt = HTML.addElement(node,"mjx-box"); sqrt.appendChild(base); - var bbox = this.CHTMLbboxFor(0), BBOX = this.CHTML = CHTML.emptyBBox(); + var bbox = this.CHTMLbboxFor(0), BBOX = this.CHTML = CHTML.BBOX.empty(); var t = CHTML.TEX.rule_thickness, T = CHTML.TEX.surd_height, p = t, q, H; if (this.Get("displaystyle")) p = CHTML.TEX.x_height; q = t + p/4; @@ -1867,8 +1873,9 @@ base.style.borderTop = CHTML.Em(T)+" solid"; sqrt.style.paddingTop = CHTML.Em(2*t-T); // use wider line, but don't affect height bbox.h += q + 2*t; - CHTML.combineBBoxes(BBOX,sbox,x,H-sbox.h,1); - CHTML.combineBBoxes(BBOX,bbox,x+sbox.w,0,1); + BBOX.combine(sbox,x,H-sbox.h,1); + BBOX.combine(bbox,x+sbox.w,0,1); + BBOX.clean(); this.CHTMLhandleSpace(node); return node; }, @@ -1894,7 +1901,7 @@ if (dx > w) root.firstChild.style.paddingLeft = CHTML.Em(dx-w); dx -= sbox.offset/scale; root.style.width = CHTML.Em(dx); - CHTML.combineBBoxes(BBOX,bbox,0,h,scale); + BBOX.combine(bbox,0,h,scale); return dx*scale; }, CHTMLrootHeight: function (bbox,sbox,scale) { @@ -1953,7 +1960,7 @@ var dlevel = this.Get("scriptlevel",null,true); if (this.scriptlevel !== dlevel) { this.CHTMLhandleScriptlevel(node,dlevel); - CHTML.scaleBBox(this.CHTML,this.scriptlevel,dlevel); + this.CHTML.scale(this.scriptlevel,dlevel); } } return node; From edfe2899838708d405aa7aeaff2b8cf712144996 Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Sun, 15 Mar 2015 09:25:44 -0400 Subject: [PATCH 082/186] Handle msup and msub children properly. --- unpacked/jax/output/CommonHTML/jax.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index affa68adb..af28055a9 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -1664,10 +1664,10 @@ var types = ["mjx-base","mjx-sub","mjx-sup"]; if (this.sup === 1) types[1] = types[2]; node = this.CHTMLdefaultNode(node,{ - childNodes:types, noBBox:true, forceChild:true, minChildren: 2 + childNodes:types, noBBox:true, forceChild:true, minChildren: 3 }); - var base, sub, sup; base = node.firstChild; sub = sup = base.nextSibling; - if (sub.nextSibling) sup = sub.nextSibling; + var base, sub, sup; base = node.childNodes[this.base]; + sub = node.childNodes[this.sub]; sup = node.childNodes[this.sup]; if (!this.CHTMLnotEmpty(this.data[this.sub])) {node.removeChild(sub); sub = null} if (!this.CHTMLnotEmpty(this.data[this.sup])) {node.removeChild(sup); sup = null} if (node.childNodes.length === 3) { @@ -1675,7 +1675,7 @@ stack.appendChild(sup); stack.appendChild(sub); } // - // Get the scale of the base and its limits + // Get the scale of the base and its scripts // var sscale = 1; if (values.scriptlevel < 2) { From d31dad0e79479c1d38dadc3e7d98fa74329f32cc Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Sun, 15 Mar 2015 10:11:54 -0400 Subject: [PATCH 083/186] Adjust bounding box to accound for border and padding --- unpacked/jax/output/CommonHTML/jax.js | 57 ++++++++++++++++++++------- 1 file changed, 42 insertions(+), 15 deletions(-) diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index af28055a9..b2fd84da3 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -982,13 +982,34 @@ if (scale*cbox.d - y > this.d) this.d = scale*cbox.d - y; if (y + scale*cbox.t > this.t) this.t = y + scale*cbox.t; if (scale*cbox.b - y > this.b) this.b = scale*cbox.b - y; + }, + adjust: function (m,x,X,M) { + this[x] += CHTML.length2em(m); + if (M == null) { + if (this[x] > this[X]) this[X] = this[x]; + } else { + if (this[X] < M) this[X] = M; + } } },{ zero: function () {return CHTML.BBOX({h:0, d:0, w:0, l:0, r:0, t:0, b:0})}, empty: function () { return CHTML.BBOX({h:-BIGDIMEN, d:-BIGDIMEN, w:0, l:BIGDIMEN, r:-BIGDIMEN, t:-BIGDIMEN, b:-BIGDIMEN}); - } + }, + // + // CSS styles that affect BBOXes + // + styleAdjust: [ + ["borderTopWidth","h","t"], + ["borderRightWidth","w","r"], + ["borderBottomWidth","d","b"], + ["borderLeftWidth","w","l",0], + ["paddingTop","h","t"], + ["paddingRight","w","r"], + ["paddingBottom","d","b"], + ["paddingLeft","w","l",0], + ] }); /**********************************************************/ @@ -1006,12 +1027,14 @@ CHTMLdefaultNode: function (node,options) { if (!options) options = {}; node = this.CHTMLcreateNode(node); - if (!options.noBBox) this.CHTMLhandleSpace(node); - this.CHTMLhandleStyle(node); - this.CHTMLhandleColor(node); var m = Math.max((options.minChildren||0),this.data.length); for (var i = 0; i < m; i++) this.CHTMLaddChild(node,i,options); - if (!options.noBBox) this.CHTML.clean(); + if (!options.noBBox) { + this.CHTML.clean(); + this.CHTMLhandleSpace(node); + } + this.CHTMLhandleStyle(node); + this.CHTMLhandleColor(node); return node; }, CHTMLaddChild: function (node,i,options) { @@ -1109,9 +1132,13 @@ }, CHTMLhandleStyle: function (node) { - if (this.style) node.style.cssText = this.style; + var BBOX = this.CHTML, style = node.style, w; + if (this.style) style.cssText = this.style; + for (var i = 0, m = CHTML.BBOX.styleAdjust.length; i < m; i++) { + var data = CHTML.BBOX.styleAdjust[i]; + if (style[data[0]]) BBOX.adjust(style[data[0]],data[1],data[2],data[3]); + } // ### FIXME: remove font size and other font settings from non-token elements? - // ### FIXME: modify bounding box to handle border, padding, and margin. }, CHTMLhandleColor: function (node) { @@ -1220,7 +1247,7 @@ if (bbox.skew != null && text.length !== 1) delete bbox.skew; if (bbox.r > bbox.w && text.length === 1 /*&& !variant.noIC*/) { // ### FIXME: handle variants bbox.ic = bbox.r - bbox.w; bbox.w = bbox.r; - node.style.paddingRight = CHTML.Em(bbox.ic); + node.lastChild.style.paddingRight = CHTML.Em(bbox.ic); } return node; } @@ -1383,8 +1410,6 @@ MML.mspace.Augment({ toCommonHTML: function (node) { node = this.CHTMLcreateNode(node); - this.CHTMLhandleStyle(node); - this.CHTMLhandleColor(node); var values = this.getValues("height","depth","width"); var w = CHTML.length2em(values.width), h = CHTML.length2em(values.height), @@ -1395,6 +1420,8 @@ node.style.width = CHTML.Em(w); node.style.height = CHTML.Em(h+d); if (d) node.style.verticalAlign = CHTML.Em(-d); + this.CHTMLhandleStyle(node); + this.CHTMLhandleColor(node); return node; } }); @@ -1914,9 +1941,6 @@ MML.mfenced.Augment({ toCommonHTML: function (node) { node = this.CHTMLcreateNode(node); - this.CHTMLhandleSpace(node); - this.CHTMLhandleStyle(node); - this.CHTMLhandleColor(node); // // Make row of open, data, sep, ... data, close // @@ -1936,6 +1960,9 @@ this.CHTMLstretchChildV(i,H,D); } this.CHTMLstretchChildV("close",H,D); + this.CHTMLhandleSpace(node); + this.CHTMLhandleStyle(node); + this.CHTMLhandleColor(node); return node; } }); @@ -2035,10 +2062,10 @@ CHTMLdefaultNode: function (node,options) { if (!options) options = {}; node = this.CHTMLcreateNode(node); - this.CHTMLhandleStyle(node); - this.CHTMLhandleColor(node); // skip label for now for (var i = 1, m = this.data.length; i < m; i++) this.CHTMLaddChild(node,i,options); + this.CHTMLhandleStyle(node); + this.CHTMLhandleColor(node); return node; } }); From 6a81434b164c3f8cca44cf712989f48222bc6139 Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Sun, 15 Mar 2015 10:40:09 -0400 Subject: [PATCH 084/186] Remove font-based styles (this will be looked up later on token elements) --- unpacked/jax/output/CommonHTML/jax.js | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index b2fd84da3..fad21b53b 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -946,7 +946,12 @@ /********************************************************/ - arrayEntry: function (a,i) {return a[Math.max(0,Math.min(i,a.length-1))]} + arrayEntry: function (a,i) {return a[Math.max(0,Math.min(i,a.length-1))]}, + + // + // Styles to be removed from style="..." attributes + // + removeStyles: ["fontSize","fontFamily","fontWeight","fontStyle","fontVariant","font"] }); @@ -1132,13 +1137,22 @@ }, CHTMLhandleStyle: function (node) { - var BBOX = this.CHTML, style = node.style, w; - if (this.style) style.cssText = this.style; - for (var i = 0, m = CHTML.BBOX.styleAdjust.length; i < m; i++) { + if (!this.style) return; + var BBOX = this.CHTML, style = node.style, i, m; + style.cssText = this.style; + // ### FIXME: adjust for width, height, vertical-align? + for (i = 0, m = CHTML.BBOX.styleAdjust.length; i < m; i++) { var data = CHTML.BBOX.styleAdjust[i]; if (style[data[0]]) BBOX.adjust(style[data[0]],data[1],data[2],data[3]); } - // ### FIXME: remove font size and other font settings from non-token elements? + this.removedStyles = {}; + for (i = 0, m = CHTML.removeStyles.length; i < m; i++) { + var id = CHTML.removeStyles[i]; + if (style[id]) { + this.removedStyles[id] = style[id]; + style[id] = ""; + } + } }, CHTMLhandleColor: function (node) { From 5d3508d830007a547b4ff85460484fb1fc4fe3f0 Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Mon, 16 Mar 2015 09:18:35 -0400 Subject: [PATCH 085/186] Add support for style='font-family:...', fontfamily, fontweight, and fontstyle attributes. Cache the results in case they are used more than once. --- unpacked/jax/output/CommonHTML/jax.js | 113 ++++++++++++++++++++++---- 1 file changed, 97 insertions(+), 16 deletions(-) diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index fad21b53b..5bb3b58c1 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -601,14 +601,32 @@ unknown[n] = [.8,.2,HDW.w,0,HDW.w,{a:a, A:HDW.h-a, d:HDW.d}]; unknown[n].c = c; }, + styledText: function (variant,text) { + HUB.signal.Post(["CommonHTML Jax - styled text",text,variant]); + var style = variant.style; + var id = "_"+style.family; + if (style.weight) id += "_"+style.weight; + if (style.style) id += "_"+style.style; + if (!this.STYLEDTEXT) this.STYLEDTEXT = {}; + if (!this.STYLEDTEXT[id]) this.STYLEDTEXT[id] = {cache:{}, className:""}; + var unknown = this.STYLEDTEXT[id]; + if (!unknown["_"+text]) { + var HDW = this.getHDW(text,"",style); + var a = (HDW.h-HDW.d)/2+AFUZZ; // ### FIXME: is this really the axis of the surrounding text? + unknown["_"+text] = [.8,.2,HDW.w,0,HDW.w,{a:a, A:HDW.h-a, d:HDW.d}]; + unknown["_"+text].c = text; + } + return {type:"unknown", n:"_"+text, font:unknown, style:style}; + }, + // // Get the height, depth and width of a character // (height and depth are of the font, not the character). // WARNING: causes reflow of the page! // - getHDW: function (c,name) { - var test1 = HTML.addElement(document.body,"mjx-chartest",{className:name},[["mjx-char",{},[c]]]); - var test2 = HTML.addElement(document.body,"mjx-chartest",{className:name},[["mjx-char",{},[c,["mjx-box"]]]]); + getHDW: function (c,name,styles) { + var test1 = HTML.addElement(document.body,"mjx-chartest",{className:name,style:styles},[["mjx-char",{},[c]]]); + var test2 = HTML.addElement(document.body,"mjx-chartest",{className:name,style:styles},[["mjx-char",{},[c,["mjx-box"]]]]); var em = window.parseFloat(window.getComputedStyle(test1).fontSize); var d = (test2.offsetHeight-500)/em; var w = test1.offsetWidth/em, h = test1.offsetHeight/em - d; @@ -616,6 +634,7 @@ document.body.removeChild(test2); return {h:h, d:d, w:w} }, + /********************************************************/ @@ -674,7 +693,7 @@ // unknown: function (item,node,bbox,state) { this.char(item,node,bbox,state,0); - node = this.flushText(node,state); + node = this.flushText(node,state,item.style); node.style.lineHeight = "normal"; var C = item.font[item.n]; node.style.marginTop = CHTML.Em(-C[5].A-HFUZZ); @@ -686,8 +705,9 @@ // Put the pending text into a box of the class, and // reset the data about the text. // - flushText: function (node,state) { - node = HTML.addElement(node,"mjx-charbox",{className:state.className},[state.text]); + flushText: function (node,state,style) { + node = HTML.addElement(node,"mjx-charbox", + {className:state.className,style:style},[state.text]); state.text = ""; state.className = null; return node; } @@ -703,15 +723,18 @@ HTML.addElement(node,"mjx-char"); bbox = CHTML.BBOX.empty(); } - var string = {text:text, i:0, length:text.length}; if (typeof(variant) === "string") variant = this.FONTDATA.VARIANT[variant]; if (!variant) variant = this.FONTDATA.VARIANT[MML.VARIANT.NORMAL]; - var list = []; - while (string.i < string.length) { - var n = this.getUnicode(string); - list.push.apply(list,this.getCharList(variant,n)); + var string = {text:text, i:0, length:text.length}, list = []; + if (variant.style && string.length) { + list.push(this.styledText(variant,text)); + } else { + while (string.i < string.length) { + var n = this.getUnicode(string); + list.push.apply(list,this.getCharList(variant,n)); + } } - this.addCharList(node.firstChild,list,bbox); + if (list.length) this.addCharList(node.firstChild,list,bbox); bbox.clean(); bbox.h += HFUZZ; bbox.d += DFUZZ; bbox.t += HFUZZ; bbox.b += DFUZZ; node.firstChild.style[bbox.h < 0 ? "marginTop" : "paddingTop"] = this.Em(bbox.h-(bbox.a||0)); @@ -1032,6 +1055,7 @@ CHTMLdefaultNode: function (node,options) { if (!options) options = {}; node = this.CHTMLcreateNode(node); + if (this.isToken) this.CHTMLgetVariant(); var m = Math.max((options.minChildren||0),this.data.length); for (var i = 0; i < m; i++) this.CHTMLaddChild(node,i,options); if (!options.noBBox) { @@ -1189,6 +1213,63 @@ CHTMLhandleText: function (node,text,variant) { this.CHTML = CHTML.handleText(node,text,variant,this.CHTML); }, + + CHTMLgetVariant: function () { + var values = this.getValues("mathvariant","fontfamily","fontweight","fontstyle"); + values.hasVariant = this.Get("mathvariant",true); // null if not explicitly specified + if (this.style) { + var span = HTML.Element("span"); span.style.cssText = this.style; + if (span.style.fontFamily) values.family = span.style.fontFamily; + if (span.style.fontWeight) values.weight = span.style.fontWeight; + if (span.style.fontStyle) values.style = span.style.fontStyle; + } + if (!values.hasVariant) { + if (values.fontfamily) values.family = values.fontfamily; + if (values.fontweight) values.weight = values.fontweight; + if (values.fontstyle) values.style = values.fontstyle; + } + if (values.weight && values.weight.match(/^\d+$/)) + values.weight = (parseInt(values.weight) > 600 ? "bold" : "normal"); + var variant = values.mathvariant; if (this.variantForm) variant = "-TeX-variant"; + if (values.family && !values.hasVariant) { + if (!values.weight && values.mathvariant.match(/bold/)) values.weight = "bold"; + if (!values.style && values.mathvariant.match(/italic/)) values.style = "italic"; + this.CHTMLvariant = {fonts:[], noRemap:true, cache:{}, style: { + "font-family":values.family, "font-weight":values.weight, "font-style":values.style + }}; + return; + } + if (values.weight === "bold") { + variant = { + normal:MML.VARIANT.BOLD, italic:MML.VARIANT.BOLDITALIC, + fraktur:MML.VARIANT.BOLDFRAKTUR, script:MML.VARIANT.BOLDSCRIPT, + "sans-serif":MML.VARIANT.BOLDSANSSERIF, + "sans-serif-italic":MML.VARIANT.SANSSERIFBOLDITALIC + }[variant]||variant; + } else if (values.weight === "normal") { + variant = { + bold:MML.VARIANT.normal, "bold-italic":MML.VARIANT.ITALIC, + "bold-fraktur":MML.VARIANT.FRAKTUR, "bold-script":MML.VARIANT.SCRIPT, + "bold-sans-serif":MML.VARIANT.SANSSERIF, + "sans-serif-bold-italic":MML.VARIANT.SANSSERIFITALIC + }[variant]||variant; + } + if (values.style === "italic") { + variant = { + normal:MML.VARIANT.ITALIC, bold:MML.VARIANT.BOLDITALIC, + "sans-serif":MML.VARIANT.SANSSERIFITALIC, + "bold-sans-serif":MML.VARIANT.SANSSERIFBOLDITALIC + }[variant]||variant; + } else if (values.style === "normal") { + variant = { + italic:MML.VARIANT.NORMAL, "bold-italic":MML.VARIANT.BOLD, + "sans-serif-italic":MML.VARIANT.SANSSERIF, + "sans-serif-bold-italic":MML.VARIANT.BOLDSANSSERIF + }[variant]||variant; + } + this.CHTMLvariant = CHTML.FONTDATA.VARIANT[variant] || + CHTML.FONTDATA.VARIANT[MML.VARIANT.NORMAL]; + }, CHTMLbboxFor: function (n) { if (this.data[n] && this.data[n].CHTML) return this.data[n].CHTML; @@ -1212,7 +1293,6 @@ ]); }, - CHTMLnotEmpty: function (mml) { while (mml && mml.data.length < 2 && (mml.type === "mrow" || mml.type === "texatom")) mml = mml.data[0]; @@ -1229,7 +1309,7 @@ var text = this.toString(); if (options.remap) text = options.remap(text,options.remapchars); // ### FIXME: handle mtextFontInherit - this.CHTMLhandleText(node,text,options.variant||this.parent.Get("mathvariant")); + this.CHTMLhandleText(node,text,options.variant||this.parent.CHTMLvariant); } }); MML.entity.Augment({ @@ -1238,7 +1318,7 @@ var text = this.toString(); if (options.remapchars) text = options.remap(text,options.remapchars); // ### FIXME: handle mtextFontInherit - this.CHTMLhandleText(node,text,options.variant||this.parent.Get("mathvariant")); + this.CHTMLhandleText(node,text,options.variant||this.parent.CHTMLvariant); } }); @@ -1437,7 +1517,8 @@ this.CHTMLhandleStyle(node); this.CHTMLhandleColor(node); return node; - } + }, + CHTMLgetVariant: function () {} }); /********************************************************/ From 3d371041a60bdf16dac8c6a41cb31f4c86769615 Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Mon, 16 Mar 2015 09:43:19 -0400 Subject: [PATCH 086/186] Add ability to look up styles that have been removed from mstyle with a style attribute. --- unpacked/jax/element/mml/jax.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/unpacked/jax/element/mml/jax.js b/unpacked/jax/element/mml/jax.js index 2cd3ab4ac..44a251399 100644 --- a/unpacked/jax/element/mml/jax.js +++ b/unpacked/jax/element/mml/jax.js @@ -264,6 +264,7 @@ MathJax.ElementJax.mml.Augment({ noInheritAttribute: { texClass: true }, + getRemoved: {}, linebreakContainer: false, Init: function () { @@ -312,6 +313,7 @@ MathJax.ElementJax.mml.Augment({ var obj = this.inherit; var root = obj; while (obj) { var value = obj[name]; if (value == null && obj.attr) {value = obj.attr[name]} + if (obj.removedStyles && obj.getRemoved[name] && value == null) value = obj.removedStyles[obj.getRemoved[name]]; if (value != null && obj.noInheritAttribute && !obj.noInheritAttribute[name]) { var noInherit = obj.noInherit[this.type]; if (!(noInherit && noInherit[name])) {return value} @@ -916,6 +918,7 @@ MathJax.ElementJax.mml.Augment({ mpadded: {width: true, height: true, depth: true, lspace: true, voffset: true}, mtable: {width: true, height: true, depth: true, align: true} }, + getRemoved: {fontfamily:"fontFamily", fontweight:"fontWeight", fontstyle:"fontStyle"}, setTeXclass: MML.mbase.setChildTeXclass }); From f5703641395ebfae6739ac692cee7e5f6586e07f Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Mon, 16 Mar 2015 09:44:43 -0400 Subject: [PATCH 087/186] Break CHTMLhandleStyle() into two parts, one that sets the styles and removes the unwanted ones, and CHTMLhandleBBox() that adjustst the BBOX based on the styles. Use this to handle inheritance of font-family, font-weight, and font-style from mstyle with style attributes. --- unpacked/jax/output/CommonHTML/jax.js | 44 ++++++++++++++++----------- 1 file changed, 27 insertions(+), 17 deletions(-) diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index 5bb3b58c1..3eb246fef 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -1055,6 +1055,7 @@ CHTMLdefaultNode: function (node,options) { if (!options) options = {}; node = this.CHTMLcreateNode(node); + this.CHTMLhandleStyle(node); if (this.isToken) this.CHTMLgetVariant(); var m = Math.max((options.minChildren||0),this.data.length); for (var i = 0; i < m; i++) this.CHTMLaddChild(node,i,options); @@ -1062,7 +1063,7 @@ this.CHTML.clean(); this.CHTMLhandleSpace(node); } - this.CHTMLhandleStyle(node); + this.CHTMLhandleBBox(node); this.CHTMLhandleColor(node); return node; }, @@ -1162,15 +1163,9 @@ CHTMLhandleStyle: function (node) { if (!this.style) return; - var BBOX = this.CHTML, style = node.style, i, m; - style.cssText = this.style; - // ### FIXME: adjust for width, height, vertical-align? - for (i = 0, m = CHTML.BBOX.styleAdjust.length; i < m; i++) { - var data = CHTML.BBOX.styleAdjust[i]; - if (style[data[0]]) BBOX.adjust(style[data[0]],data[1],data[2],data[3]); - } - this.removedStyles = {}; - for (i = 0, m = CHTML.removeStyles.length; i < m; i++) { + var BBOX = this.CHTML, style = node.style; + style.cssText = this.style; this.removedStyles = {}; + for (var i = 0, m = CHTML.removeStyles.length; i < m; i++) { var id = CHTML.removeStyles[i]; if (style[id]) { this.removedStyles[id] = style[id]; @@ -1179,6 +1174,16 @@ } }, + CHTMLhandleBBox: function (node) { + if (!this.style) return; + var BBOX = this.CHTML, style = node.style; + // ### FIXME: adjust for width, height, vertical-align? + for (var i = 0, m = CHTML.BBOX.styleAdjust.length; i < m; i++) { + var data = CHTML.BBOX.styleAdjust[i]; + if (style[data[0]]) BBOX.adjust(style[data[0]],data[1],data[2],data[3]); + } + }, + CHTMLhandleColor: function (node) { if (this.mathcolor) {node.style.color = this.mathcolor} else if (this.color) {node.style.color = this.color} @@ -1352,9 +1357,12 @@ MML.mo.Augment({ toCommonHTML: function (node) { node = this.CHTMLcreateNode(node); + this.CHTMLhandleStyle(node); + this.CHTMLgetVariant(); this.CHTML = CHTML.BBOX.empty(); - var values = this.getValues("displaystyle","largeop","mathvariant"); + var values = this.getValues("displaystyle","largeop"); + values.variant = this.CHTMLvariant; values.text = this.data.join(""); if (values.text == "") { if (this.fence) node.style.width = CHTML.Em(CHTML.TEX.nulldelimiterspace); @@ -1375,7 +1383,7 @@ this.CHTML.clean(); this.CHTMLhandleSpace(node); - this.CHTMLhandleStyle(node); + this.CHTMLhandleBBox(node); this.CHTMLhandleColor(node); return node; @@ -1504,6 +1512,7 @@ MML.mspace.Augment({ toCommonHTML: function (node) { node = this.CHTMLcreateNode(node); + this.CHTMLhandleStyle(node); var values = this.getValues("height","depth","width"); var w = CHTML.length2em(values.width), h = CHTML.length2em(values.height), @@ -1514,11 +1523,10 @@ node.style.width = CHTML.Em(w); node.style.height = CHTML.Em(h+d); if (d) node.style.verticalAlign = CHTML.Em(-d); - this.CHTMLhandleStyle(node); + this.CHTMLhandleBBox(node); this.CHTMLhandleColor(node); return node; - }, - CHTMLgetVariant: function () {} + } }); /********************************************************/ @@ -2036,6 +2044,7 @@ MML.mfenced.Augment({ toCommonHTML: function (node) { node = this.CHTMLcreateNode(node); + this.CHTMLhandleStyle(node); // // Make row of open, data, sep, ... data, close // @@ -2056,7 +2065,7 @@ } this.CHTMLstretchChildV("close",H,D); this.CHTMLhandleSpace(node); - this.CHTMLhandleStyle(node); + this.CHTMLhandleBBox(node); this.CHTMLhandleColor(node); return node; } @@ -2157,9 +2166,10 @@ CHTMLdefaultNode: function (node,options) { if (!options) options = {}; node = this.CHTMLcreateNode(node); + this.CHTMLhandleStyle(node); // skip label for now for (var i = 1, m = this.data.length; i < m; i++) this.CHTMLaddChild(node,i,options); - this.CHTMLhandleStyle(node); + this.CHTMLhandleBBox(node); this.CHTMLhandleColor(node); return node; } From 1bfcea3c4809ec31c7e99edbd0e24ea40f08084b Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Mon, 16 Mar 2015 10:35:02 -0400 Subject: [PATCH 088/186] Support mtextFontInherit --- unpacked/jax/output/CommonHTML/jax.js | 31 +++++++++++++++++++++------ 1 file changed, 25 insertions(+), 6 deletions(-) diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index 3eb246fef..b371cc48e 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -604,11 +604,11 @@ styledText: function (variant,text) { HUB.signal.Post(["CommonHTML Jax - styled text",text,variant]); var style = variant.style; - var id = "_"+style.family; - if (style.weight) id += "_"+style.weight; - if (style.style) id += "_"+style.style; + var id = "_"+(style["font-family"]||variant.className||""); + if (style["font-weight"]) id += "_"+style["font-weight"]; + if (style["font-style"]) id += "_"+style["font-style"]; if (!this.STYLEDTEXT) this.STYLEDTEXT = {}; - if (!this.STYLEDTEXT[id]) this.STYLEDTEXT[id] = {cache:{}, className:""}; + if (!this.STYLEDTEXT[id]) this.STYLEDTEXT[id] = {className:variant.className||""}; var unknown = this.STYLEDTEXT[id]; if (!unknown["_"+text]) { var HDW = this.getHDW(text,"",style); @@ -1313,7 +1313,6 @@ if (options == null) options = {}; var text = this.toString(); if (options.remap) text = options.remap(text,options.remapchars); - // ### FIXME: handle mtextFontInherit this.CHTMLhandleText(node,text,options.variant||this.parent.CHTMLvariant); } }); @@ -1322,7 +1321,6 @@ if (options == null) options = {}; var text = this.toString(); if (options.remapchars) text = options.remap(text,options.remapchars); - // ### FIXME: handle mtextFontInherit this.CHTMLhandleText(node,text,options.variant||this.parent.CHTMLvariant); } }); @@ -1507,6 +1505,27 @@ }); + /********************************************************/ + + MML.mtext.Augment({ + CHTMLgetVariant: function () { + if (CHTML.config.mtextFontInherit) { + var variant = {cache:{}, fonts:[], className:"MJXc-font-inherit", style:{}}; + var name = this.Get("mathvariant"); + if (name.match(/bold/)) variant.style["font-weight"] = "bold"; + if (name.match(/italic/)) variant.style["font-style"] = "italic"; + if (name === "monospace") variant.className += " MJXc-monospace-font"; + if (name === "double-struck") variant.className += " MJXc-double-struck-font"; + if (name.match(/fraktur/)) variant.className += " MJXc-fraktur-font"; + if (name.match(/sans-serif/)) variant.className += " MJXc-sans-serif-font"; + if (name.match(/script/)) variant.className += " MJXc-script-font"; + this.CHTMLvariant = variant; + } else { + this.SUPER(arguments).CHTMLgetVariant.call(this); + } + } + }); + /********************************************************/ MML.mspace.Augment({ From 930a959f716dd75ba7c2262c5bb9e8cdee1253d6 Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Mon, 16 Mar 2015 10:44:35 -0400 Subject: [PATCH 089/186] Fix some bboxes that weren't converted when changing to the BBOX object. --- unpacked/jax/output/CommonHTML/jax.js | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index b371cc48e..95971830e 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -813,12 +813,12 @@ } } node.appendChild(bot); - var BBOX = { + var BBOX = CHTML.BBOX({ w: Math.max(tbox.w,ebox.w,bbox.w,mbox.w), l: Math.min(tbox.l,ebox.l,bbox.l,mbox.l), r: Math.max(tbox.r,ebox.r,bbox.r,mbox.r), h: H-bbox.d, d: bbox.d, t: H-bbox.d, b: bbox.d - }; + }); BBOX.offset = .5 * BBOX.w; return BBOX; }, @@ -1579,7 +1579,7 @@ node.style.width = 0; node.style.marginTop = CHTML.Em(h-STRUTHEIGHT); node.style.padding = "0 "+CHTML.Em(w)+" "+CHTML.Em(d)+" 0"; - var bbox = {w:w, h:h, d:d, l:0, r:w, t:h, b:d}; + var bbox = CHTML.BBOX({w:w, h:h, d:d, l:0, r:w, t:h, b:d}); bbox.combine(cbox,x,y,1); bbox.w = w; bbox.h = h; bbox.d = d; this.CHTML = bbox; @@ -2121,7 +2121,6 @@ MML.TeXAtom.Augment({ toCommonHTML: function (node) { - // ### FIXME: handle TeX class? node = this.CHTMLdefaultNode(node); var H = this.CHTML.h, D = this.CHTML.d; for (var i = 0, m = this.data.length; i < m; i++) this.CHTMLstretchChildV(i,H,D); From 3205a1c1e8acf155904677f4a4a72d4166fd6947 Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Mon, 16 Mar 2015 11:03:52 -0400 Subject: [PATCH 090/186] Handle VCENTER TeXatom. --- unpacked/jax/output/CommonHTML/jax.js | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index 95971830e..e400180f7 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -2122,8 +2122,11 @@ MML.TeXAtom.Augment({ toCommonHTML: function (node) { node = this.CHTMLdefaultNode(node); - var H = this.CHTML.h, D = this.CHTML.d; - for (var i = 0, m = this.data.length; i < m; i++) this.CHTMLstretchChildV(i,H,D); + if (this.texClass === MML.TEXCLASS.VCENTER) { + var a = CHTML.TEX.axis_height, BBOX = this.CHTML; + var v = a-(BBOX.h+BBOX.d)/2+BBOX.d; + node.style.verticalAlign = CHTML.Em(v); + } return node; } }); From cc370bfcbaab2e729c6b2eedf241c9f2e854d757 Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Mon, 16 Mar 2015 12:00:10 -0400 Subject: [PATCH 091/186] spacing can be handled within the CHTMLdefaultNode() routine. --- unpacked/jax/output/CommonHTML/jax.js | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index e400180f7..20d0d7b13 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -1059,10 +1059,8 @@ if (this.isToken) this.CHTMLgetVariant(); var m = Math.max((options.minChildren||0),this.data.length); for (var i = 0; i < m; i++) this.CHTMLaddChild(node,i,options); - if (!options.noBBox) { - this.CHTML.clean(); - this.CHTMLhandleSpace(node); - } + if (!options.noBBox) this.CHTML.clean(); + this.CHTMLhandleSpace(node); this.CHTMLhandleBBox(node); this.CHTMLhandleColor(node); return node; @@ -1639,7 +1637,6 @@ // Handle horizontal positions // this.CHTMLplaceBoxes(base,under,over,values,boxes); - this.CHTMLhandleSpace(node); return node; }, // @@ -1896,7 +1893,6 @@ } } BBOX.clean(); - this.CHTMLhandleSpace(node); return node; } }); @@ -1991,7 +1987,6 @@ frac.style.padding = "0 "+CHTML.Em(space); BBOX.l += space; BBOX.r += space; BBOX.w += 2*space; } - this.CHTMLhandleSpace(node); // // Return the completed fraction // @@ -2025,7 +2020,6 @@ BBOX.combine(sbox,x,H-sbox.h,1); BBOX.combine(bbox,x+sbox.w,0,1); BBOX.clean(); - this.CHTMLhandleSpace(node); return node; }, CHTMLaddRoot: function () {return 0} From b7868268f95264e6969e9641df5710e4d7f29626 Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Mon, 16 Mar 2015 19:25:27 -0400 Subject: [PATCH 092/186] Handle mathsize, fontsize, style=font-size, setting scriptlevel, and other size changing functions. Get proper bounding boxes for these, and store the scale in the bbox object so that we can refer to it during bbox computations. --- unpacked/jax/element/mml/jax.js | 6 +- unpacked/jax/output/CommonHTML/jax.js | 336 ++++++++++++-------------- 2 files changed, 158 insertions(+), 184 deletions(-) diff --git a/unpacked/jax/element/mml/jax.js b/unpacked/jax/element/mml/jax.js index 44a251399..01809d868 100644 --- a/unpacked/jax/element/mml/jax.js +++ b/unpacked/jax/element/mml/jax.js @@ -906,9 +906,7 @@ MathJax.ElementJax.mml.Augment({ if (level == null) { level = this.Get("scriptlevel"); } else if (String(level).match(/^ *[-+]/)) { - delete this.scriptlevel; - var LEVEL = this.Get("scriptlevel"); - this.scriptlevel = level; + var LEVEL = this.Get("scriptlevel",null,true); level = LEVEL + parseInt(level); } return level; @@ -918,7 +916,7 @@ MathJax.ElementJax.mml.Augment({ mpadded: {width: true, height: true, depth: true, lspace: true, voffset: true}, mtable: {width: true, height: true, depth: true, align: true} }, - getRemoved: {fontfamily:"fontFamily", fontweight:"fontWeight", fontstyle:"fontStyle"}, + getRemoved: {fontfamily:"fontFamily", fontweight:"fontWeight", fontstyle:"fontStyle", fontsize:"fontSize"}, setTeXclass: MML.mbase.setChildTeXclass }); diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index 20d0d7b13..56d7597ac 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -459,7 +459,7 @@ big_op_spacing4: .6, big_op_spacing5: .1, - surd_height: .1, + surd_height: .075, scriptspace: .05, nulldelimiterspace: .12, @@ -721,7 +721,7 @@ handleText: function (node,text,variant,bbox) { if (node.childNodes.length === 0) { HTML.addElement(node,"mjx-char"); - bbox = CHTML.BBOX.empty(); + bbox = CHTML.BBOX.empty(bbox); } if (typeof(variant) === "string") variant = this.FONTDATA.VARIANT[variant]; if (!variant) variant = this.FONTDATA.VARIANT[MML.VARIANT.NORMAL]; @@ -744,14 +744,13 @@ /********************************************************/ - createDelimiter: function (node,code,HW,scale,font) { - var bbox = this.BBOX.zero(); + createDelimiter: function (node,code,HW,BBOX,font) { if (!code) { + var bbox = this.BBOX.zero(); bbox.w = bbox.r = this.TEX.nulldelimiterspace; HTML.addElement(node,"mjx-box",{style:{width:bbox.w}}); return bbox; } - if (!scale) scale = 1; if (!(HW instanceof Array)) HW = [HW,HW]; var hw = HW[1]; HW = HW[0]; var delim = {alias: code}; @@ -761,38 +760,38 @@ } if (delim.load) HUB.RestartAfter(AJAX.Require(this.fontDir+"/TeX/fontdata-"+delim.load+".js")); for (var i = 0, m = delim.HW.length; i < m; i++) { - if (delim.HW[i][0]*scale >= HW-.01 || (i == m-1 && !delim.stretch)) { - if (delim.HW[i][2]) scale *= delim.HW[i][2]; + if (delim.HW[i][0] >= HW-.01 || (i == m-1 && !delim.stretch)) { if (delim.HW[i][3]) code = delim.HW[i][3]; - var BBOX = this.createChar(node,[code,delim.HW[i][1]],scale,font); - BBOX.offset = .6 * BBOX.w; - return BBOX; + bbox = this.createChar(node,[code,delim.HW[i][1]],(delim.HW[i][2]||1),font); + bbox.offset = .6 * bbox.w; + if (BBOX) {bbox.scale = BBOX.scale; BBOX.rscale = BBOX.rscale} + return bbox; } } if (!delim.stretch) return bbox; - return this["extendDelimiter"+delim.dir](node,hw,delim.stretch,scale,font); + return this["extendDelimiter"+delim.dir](node,hw,delim.stretch,BBOX,font); }, - extendDelimiterV: function (node,H,delim,scale,font) { + extendDelimiterV: function (node,H,delim,BBOX,font) { node = HTML.addElement(node,"mjx-delim-v"); var tmp = HTML.Element("span"); var top, bot, mid, ext, tbox, bbox, mbox, ebox, k = 1; - tbox = this.createChar(tmp,(delim.top||delim.ext),scale,font); top = tmp.removeChild(tmp.firstChild); - bbox = this.createChar(tmp,(delim.bot||delim.ext),scale,font); bot = tmp.removeChild(tmp.firstChild); - mbox = ebox = this.BBOX.zero(); + tbox = this.createChar(tmp,(delim.top||delim.ext),1,font); top = tmp.removeChild(tmp.firstChild); + bbox = this.createChar(tmp,(delim.bot||delim.ext),1,font); bot = tmp.removeChild(tmp.firstChild); + mbox = ebox = CHTML.BBOX.zero(); var h = tbox.h + tbox.d + bbox.h + bbox.d; node.appendChild(top); if (delim.mid) { - mbox = this.createChar(tmp,delim.mid,scale,font); mid = tmp.removeChild(tmp.firstChild); + mbox = this.createChar(tmp,delim.mid,1,font); mid = tmp.removeChild(tmp.firstChild); h += mbox.h + mbox.d; k = 2; } if (delim.min && H < h*delim.min) H = h*delim.min; if (H > h) { - ebox = this.createChar(tmp,delim.ext,scale,font); ext = tmp.removeChild(tmp.firstChild); + ebox = this.createChar(tmp,delim.ext,1,font); ext = tmp.removeChild(tmp.firstChild); if (delim.fullExtenders) { var n = Math.ceil((H-h)/(k*(ebox.h+ebox.d)*.9)); H = .9*n*k*(ebox.h+ebox.d) + h; } var s = 1.1*(H - h)/k + .3; // space to cover by extender - s /= (ebox.h+ebox.d); // scale factor; + s /= (ebox.h+ebox.d); // scale factor; this.Transform(ext, "translateY("+CHTML.Em(-ebox.d+.25)+") scaleY("+s.toFixed(3).replace(/0+$/,"")+")", "left "+CHTML.Em(ebox.d) @@ -813,42 +812,43 @@ } } node.appendChild(bot); - var BBOX = CHTML.BBOX({ + var vbox = CHTML.BBOX({ w: Math.max(tbox.w,ebox.w,bbox.w,mbox.w), l: Math.min(tbox.l,ebox.l,bbox.l,mbox.l), r: Math.max(tbox.r,ebox.r,bbox.r,mbox.r), h: H-bbox.d, d: bbox.d, t: H-bbox.d, b: bbox.d }); - BBOX.offset = .5 * BBOX.w; - return BBOX; + vbox.offset = .5 * vbox.w; + if (BBOX) {vbox.scale = BBOX.scale; vbox.rscale = BBOX.rscale} + return vbox; }, - extendDelimiterH: function (node,W,delim,scale,font) { + extendDelimiterH: function (node,W,delim,BBOX,font) { node = HTML.addElement(node,"mjx-delim-h"); var tmp = HTML.Element("span"); var left, right, mid, ext, ext2, lbox, rbox, mbox, ebox, k = 1; - lbox = this.createChar(tmp,(delim.left||delim.rep),scale,font); left = tmp.removeChild(tmp.firstChild); - rbox = this.createChar(tmp,(delim.right||delim.rep),scale,font); right = tmp.removeChild(tmp.firstChild); + lbox = this.createChar(tmp,(delim.left||delim.rep),1,font); left = tmp.removeChild(tmp.firstChild); + rbox = this.createChar(tmp,(delim.right||delim.rep),1,font); right = tmp.removeChild(tmp.firstChild); node.appendChild(left); - var BBOX = this.BBOX.zero(); - BBOX.h = Math.max(lbox.h,rbox.h); BBOX.d = Math.max(lbox.d,rbox.d); + var hbox = CHTML.BBOX.zero(); + hbox.h = Math.max(lbox.h,rbox.h); hbox.d = Math.max(lbox.d,rbox.d); left.style.marginLeft = CHTML.Em(-lbox.l); left.style.marginRight = CHTML.Em(lbox.r-lbox.w); right.style.marginleft = CHTML.Em(-rbox.l); right.style.marginRight = CHTML.Em(rbox.r-rbox.w); var w = (lbox.r - lbox.l) + (rbox.r - rbox.l) - .05; if (delim.mid) { - mbox = this.createChar(tmp,delim.mid,scale,font); + mbox = this.createChar(tmp,delim.mid,1,font); mid = tmp.removeChild(tmp.firstChild); w += mbox.w; k = 2; - if (mbox.h > BBOX.h) BBOX.h = mbox.h; - if (mbox.d < BBOX.d) BBOX.d = mbox.d; + if (mbox.h > hbox.h) hbox.h = mbox.h; + if (mbox.d < hbox.d) hbox.d = mbox.d; } if (delim.min && W < w*delim.min) W = w*delim.min; right.style.marginLeft = CHTML.Em((W-w-rbox.l)/k); - BBOX.w = BBOX.r = W; + hbox.w = hbox.r = W; if (W > w) { - ebox = this.createChar(tmp,delim.rep,scale,font); ext = tmp.removeChild(tmp.firstChild); - if (ebox.h > BBOX.h) BBOX.h = ebox.h; - if (ebox.d < BBOX.d) BBOX.d = ebox.d; + ebox = this.createChar(tmp,delim.rep,1,font); ext = tmp.removeChild(tmp.firstChild); + if (ebox.h > hbox.h) hbox.h = ebox.h; + if (ebox.d < hbox.d) hbox.d = ebox.d; var s = (W - w)/k + .2; // space to cover by extender - s /= (ebox.r - ebox.l); // scale factor + s /= (ebox.r - ebox.l); // scale factor this.Transform(ext, "translateX("+CHTML.Em(-ebox.l-.1)+") scaleX("+s.toFixed(3).replace(/0+$/,"")+")", CHTML.Em(ebox.l)+" center" @@ -868,13 +868,14 @@ } node.appendChild(right); this.adjustTops([left,ext,mid,ext2,right]); - BBOX.t = BBOX.h; BBOX.b = BBOX.d; + hbox.t = hbox.h; hbox.b = hbox.d; if (ext) { - if (BBOX.h !== ebox.h) node.style.marginTop = CHTML.Em(ebox.h - BBOX.h); - if (BBOX.d !== ebox.d) node.style.marginBottom = CHTML.Em(ebox.d - BBOX.d); - BBOX.h = ebox.h; BBOX.d = ebox.d; + if (hbox.h !== ebox.h) node.style.marginTop = CHTML.Em(ebox.h - hbox.h); + if (hbox.d !== ebox.d) node.style.marginBottom = CHTML.Em(ebox.d - hbox.d); + hbox.h = ebox.h; hbox.d = ebox.d; } - return BBOX; + if (BBOX) {hbox.scale = BBOX.scale; hbox.rscale = BBOX.rscale} + return hbox; }, adjustTops: function (nodes) { // @@ -994,8 +995,7 @@ if (this.t === -BIGDIMEN) this.t = 0; if (this.b === -BIGDIMEN) this.b = 0; }, - scale: function (level,dlevel) { - var scale = Math.pow(SCRIPTFACTOR,Math.min(2,level)-(dlevel||0)); + rescale: function (scale) { this.w *= scale; this.h *= scale; this.d *= scale; this.l *= scale; this.r *= scale; this.t *= scale; this.b *= scale; if (this.L) this.L *= scale; @@ -1020,10 +1020,14 @@ } } },{ - zero: function () {return CHTML.BBOX({h:0, d:0, w:0, l:0, r:0, t:0, b:0})}, - empty: function () { - return CHTML.BBOX({h:-BIGDIMEN, d:-BIGDIMEN, w:0, l:BIGDIMEN, r:-BIGDIMEN, - t:-BIGDIMEN, b:-BIGDIMEN}); + zero: function () { + return CHTML.BBOX({h:0, d:0, w:0, l:0, r:0, t:0, b:0, scale:1, rscale:1}); + }, + empty: function (bbox) { + if (!bbox) bbox = CHTML.BBOX.zero(); + return MathJax.Hub.Insert(bbox,{ + h:-BIGDIMEN, d:-BIGDIMEN, w:0, l:BIGDIMEN, r:-BIGDIMEN, t:-BIGDIMEN, b:-BIGDIMEN + }); }, // // CSS styles that affect BBOXes @@ -1056,6 +1060,7 @@ if (!options) options = {}; node = this.CHTMLcreateNode(node); this.CHTMLhandleStyle(node); + this.CHTMLhandleScale(node); if (this.isToken) this.CHTMLgetVariant(); var m = Math.max((options.minChildren||0),this.data.length); for (var i = 0; i < m; i++) this.CHTMLaddChild(node,i,options); @@ -1074,6 +1079,11 @@ node = HTML.addElement(node,type); } child.toCommonHTML(node,options.childOptions); + if (type && child.CHTML.rscale !== 1) { + // move scale factor to outer container (which seems to be more accurate) + node.style.fontSize = node.firstChild.style.fontSize; + node.firstChild.style.fontSize = ""; + } if (!options.noBBox) { var bbox = this.CHTML, cbox = child.CHTML; bbox.combine(cbox,bbox.w,0,1); @@ -1124,7 +1134,6 @@ CHTMLcreateNode: function (node) { if (!this.CHTML) this.CHTML = {}; this.CHTML = CHTML.BBOX.zero(); - if (this.inferred) return node; if (this.href) node = HTML.addElement(node,"a",{href:this.href, isMathJax:true}); if (!this.CHTMLnodeID) {this.CHTMLnodeID = CHTML.GetID()}; var id = (this.id || "MJXc-Node-"+this.CHTMLnodeID); @@ -1159,6 +1168,30 @@ return node; }, + CHTMLhandleScale: function (node) { + var scale = 1, parent = this.parent, pscale = (parent ? parent.CHTML.scale : 1); + var values = this.getValues("scriptlevel","fontsize","mathsize"); + if (this.type === "mstyle" || this.type === "math") + values.scriptlevel = this.Get("scriptlevel",null,true); + if (this.removedStyles && this.removedStyles.fontSize && !values.fontsize) + values.fontsize = this.removedStyles.fontSize; + if (values.fontsize && !this.mathsize) values.mathsize = values.fontsize; + if (values.scriptlevel !== 0) { + if (values.scriptlevel > 2) values.scriptlevel = 2; + scale = Math.pow(this.Get("scriptsizemultiplier"),values.scriptlevel); + values.scriptminsize = CHTML.length2em(this.Get("scriptminsize")); + if (scale < values.scriptminsize) scale = values.scriptminsize; + } + if (this.isToken) { + this.CHTML.mscale = CHTML.length2em(values.mathsize,pscale); + scale *= this.CHTML.mscale; + } + this.CHTML.scale = scale; pscale = this.CHTML.rscale = scale/pscale; + if (Math.abs(pscale-1) < .001) pscale = 1; + if (node && pscale !== 1) node.style.fontSize = CHTML.Percent(pscale); + return scale; + }, + CHTMLhandleStyle: function (node) { if (!this.style) return; var BBOX = this.CHTML, style = node.style; @@ -1173,8 +1206,9 @@ }, CHTMLhandleBBox: function (node) { - if (!this.style) return; var BBOX = this.CHTML, style = node.style; + if (BBOX.mscale != null && BBOX.mscale !== 1) BBOX.rescale(BBOX.mscale); + if (!this.style) return; // ### FIXME: adjust for width, height, vertical-align? for (var i = 0, m = CHTML.BBOX.styleAdjust.length; i < m; i++) { var data = CHTML.BBOX.styleAdjust[i]; @@ -1199,20 +1233,6 @@ } }, - CHTMLhandleScriptlevel: function (node,dlevel) { - var level = this.Get("scriptlevel"); - if (level === 0) return; - // ### FIXME: handle scriptminsize - if (level > 2) level = 2; - if (level > 0 && dlevel == null) { - node.className += " MJXc-script"; - } else { - if (dlevel) level -= dlevel; - var scale = Math.floor(Math.pow(SCRIPTFACTOR,level)*100); - node.style.fontSize = scale+"%"; - } - }, - CHTMLhandleText: function (node,text,variant) { this.CHTML = CHTML.handleText(node,text,variant,this.CHTML); }, @@ -1282,17 +1302,18 @@ // Debugging function to see if internal BBox matches actual bbox // CHTMLdrawBBox: function (node) { - var bbox = this.CHTML; + var bbox = this.CHTML, scale = bbox.rscale; HTML.addElement(node.parentNode,"mjx-box", - {style:{opacity:.25,"margin-left":CHTML.Em(-bbox.w-(bbox.R||0))}},[ + {style:{opacity:.25,"margin-left":CHTML.Em(-scale*(bbox.w+(bbox.R||0)))}},[ ["mjx-box",{style:{ - height:CHTML.Em(bbox.h),width:CHTML.Em(bbox.w),"background-color":"red"} - }], + height:CHTML.Em(scale*bbox.h),width:CHTML.Em(scale*bbox.w), + "background-color":"red" + }}], ["mjx-box",{style:{ - height:CHTML.Em(bbox.d),width:CHTML.Em(bbox.w), - "margin-left":CHTML.Em(-bbox.w),"vertical-align":CHTML.Em(-bbox.d), - "background-color":"green"} - }] + height:CHTML.Em(scale*bbox.d),width:CHTML.Em(scale*bbox.w), + "margin-left":CHTML.Em(-scale*bbox.w),"vertical-align":CHTML.Em(-scale*bbox.d), + "background-color":"green" + }}] ]); }, @@ -1354,8 +1375,9 @@ toCommonHTML: function (node) { node = this.CHTMLcreateNode(node); this.CHTMLhandleStyle(node); + this.CHTMLhandleScale(node); this.CHTMLgetVariant(); - this.CHTML = CHTML.BBOX.empty(); + CHTML.BBOX.empty(this.CHTML); var values = this.getValues("displaystyle","largeop"); values.variant = this.CHTMLvariant; @@ -1471,7 +1493,7 @@ if (H != values.minsize) {H = [Math.max(H*CHTML.TEX.delimiterfactor/1000,H-CHTML.TEX.delimitershortfall),H]} while (node.firstChild) node.removeChild(node.firstChild); - this.CHTML = bbox = CHTML.createDelimiter(node,this.data.join("").charCodeAt(0),H,1); + this.CHTML = bbox = CHTML.createDelimiter(node,this.data.join("").charCodeAt(0),H,bbox); bbox.sH = (H instanceof Array ? H[1] : H); // // Reposition as needed @@ -1496,7 +1518,7 @@ W = Math.max(values.minsize,Math.min(values.maxsize,W)); if (W !== bbox.sW) { while (node.firstChild) node.removeChild(node.firstChild); - this.CHTML = bbox = CHTML.createDelimiter(node,this.data.join("").charCodeAt(0),W,1,values.mathvariant); + this.CHTML = bbox = CHTML.createDelimiter(node,this.data.join("").charCodeAt(0),W,bbox,values.mathvariant); bbox.sW = W; } } @@ -1616,10 +1638,6 @@ nodes[1] = under = over = node.removeChild(node.firstChild); if (node.firstChild) nodes[2] = over = node.removeChild(node.firstChild); // - // Get the scale of the base and its limits - // - this.CHTMLgetScaleFactors(values,under,over); - // // Get the bounding boxes and the maximum width // var boxes = [], W = this.CHTMLgetBBoxes(boxes,nodes,values); @@ -1640,27 +1658,11 @@ return node; }, // - // Compute scaling factors for the under- and over-scripts - // - CHTMLgetScaleFactors: function (values,under,over) { - values.oscale = values.uscale = 1; - if (values.scriptlevel < 2) { - if (!values.accent) { - values.oscale = SCRIPTFACTOR; - if (this.data[this.over]) this.data[this.over].CHTMLhandleScriptlevel(over); - } - if (!values.accentunder) { - values.uscale = SCRIPTFACTOR; - if (this.data[this.under]) this.data[this.under].CHTMLhandleScriptlevel(under); - } - } - }, - // // Get the bounding boxes for the children, stretch // any stretchable elements, and compute the maximum width // CHTMLgetBBoxes: function (bbox,nodes,values) { - var i, m = this.data.length, SCALE, + var i, m = this.data.length, scale, w = -BIGDIMEN, // maximum width of non-stretchy items W = w; // maximum width of all items // @@ -1669,8 +1671,8 @@ for (i = 0; i < m; i++) { bbox[i] = this.CHTMLbboxFor(i); bbox[i].x = bbox[i].y = 0; if (this.data[i]) bbox[i].stretch = this.data[i].CHTMLcanStretch("Horizontal"); - SCALE = (i === this.base ? 1 : i === this.over ? values.oscale : values.uscale); - W = Math.max(W,SCALE*(bbox[i].w + (bbox[i].L||0) + (bbox[i].R||0))); + scale = (i === this.base ? 1 : bbox[i].rscale); + W = Math.max(W,scale*(bbox[i].w + (bbox[i].L||0) + (bbox[i].R||0))); if (!bbox[i].stretch && W > w) w = W; } if (w === -BIGDIMEN) w = W; @@ -1679,10 +1681,10 @@ // for (i = 0; i < m; i++) { if (bbox[i].stretch) { - SCALE = (i === this.base ? 1 : i === this.over ? values.oscale : values.uscale); - this.CHTMLstretchChildH(i,w/SCALE,nodes); + scale = (i === this.base ? 1 : bbox[i].rscale); + this.CHTMLstretchChildH(i,w/scale,nodes); bbox[i] = this.CHTMLbboxFor(i); bbox[i].x = bbox[i].y = 0; - W = Math.max(W,SCALE*(bbox[i].w + (bbox[i].L||0) + (bbox[i].R||0))); + W = Math.max(W,scale*(bbox[i].w + (bbox[i].L||0) + (bbox[i].R||0))); } } return W; @@ -1693,7 +1695,7 @@ CHTMLaddOverscript: function (over,boxes,values,delta,base) { var BBOX = this.CHTML; var w, z1, z2, z3 = CHTML.TEX.big_op_spacing5, k; - var scale = values.oscale, obox = boxes[this.over], bbox = boxes[this.base]; + var obox = boxes[this.over], bbox = boxes[this.base], scale = obox.rscale; // // Put the base and script into a stack // @@ -1737,7 +1739,7 @@ CHTMLaddUnderscript: function (under,boxes,values,delta,node,stack) { var BBOX = this.CHTML; var w, x = 0, z1, z2, z3 = CHTML.TEX.big_op_spacing5, k; - var scale = values.uscale, ubox = boxes[this.under], bbox = boxes[this.base]; + var ubox = boxes[this.under], bbox = boxes[this.base], scale = ubox.rscale; // // Create a table for the underscript // @@ -1776,25 +1778,27 @@ // Center boxes horizontally, taking offsets into account // CHTMLplaceBoxes: function (base,under,over,values,boxes) { - var W = this.CHTML.w, i, m = boxes.length; - var BBOX = this.CHTML = CHTML.BBOX.zero(); + var W = this.CHTML.w, i, m = boxes.length, scale; + var BBOX = CHTML.BBOX.zero(); + BBOX.scale = this.CHTML.scale; BBOX.rscale = this.CHTML.rscale; boxes[this.base].x = boxes[this.base].y = 0; var dx = BIGDIMEN; for (i = 0; i < m; i++) { - var SCALE = (i === this.base ? 1 : i === this.over ? values.oscale : values.uscale); - var w = SCALE*(boxes[i].w + (boxes[i].L||0) + (boxes[i].R||0)); + scale = (i === this.base ? 1 : boxes[i].rscale); + var w = scale*(boxes[i].w + (boxes[i].L||0) + (boxes[i].R||0)); boxes[i].x += (W-w)/2; if (boxes[i].x < dx) dx = boxes[i].x; } for (i = 0; i < m; i++) { if (this.data[i]) { - var SCALE = (i === this.base ? 1 : i === this.over ? values.oscale : values.uscale); + scale = (i === this.base ? 1 : boxes[i].rscale); if (boxes[i].x - dx) { var node = (i === this.base ? base : i === this.over ? over : under); - node.style.paddingLeft = CHTML.Em((boxes[i].x-dx)/SCALE); + node.style.paddingLeft = CHTML.Em((boxes[i].x-dx)/scale); } - BBOX.combine(boxes[i],boxes[i].x-dx,boxes[i].y,SCALE); + BBOX.combine(boxes[i],boxes[i].x-dx,boxes[i].y,scale); } } + this.CHTML = BBOX; } }); @@ -1821,26 +1825,18 @@ stack.appendChild(sup); stack.appendChild(sub); } // - // Get the scale of the base and its scripts - // - var sscale = 1; - if (values.scriptlevel < 2) { - sscale = SCRIPTFACTOR; - if (sub) this.data[this.sub].CHTMLhandleScriptlevel(sub); - if (sup) this.data[this.sup].CHTMLhandleScriptlevel(sup); - } - // // Get the bounding boxes and maximum width of scripts // - var boxes = [], BBOX = this.CHTML = CHTML.BBOX.empty(); + var boxes = [], BBOX = CHTML.BBOX.empty(this.CHTML); for (var i = 0, m = this.data.length; i < m; i++) boxes[i] = this.CHTMLbboxFor(i); - var bbox = boxes[this.base], subbox = boxes[this.sub], supbox = boxes[this.sup]; + var bbox = boxes[this.base], sbox = boxes[this.sub], Sbox = boxes[this.sup]; + var sscale = (sub ? sbox.rscale : 1), Sscale = (sup ? Sbox.rscale : 1); BBOX.combine(bbox,0,0,1); // // Get initial values for parameters // var ex = CHTML.TEX.x_height, s = CHTML.TEX.scriptspace; - var q = CHTML.TEX.sup_drop * sscale, r = CHTML.TEX.sub_drop * sscale; + var q = CHTML.TEX.sup_drop * Sscale, r = CHTML.TEX.sub_drop * sscale; var u = bbox.h - q, v = bbox.d + r, delta = 0, p; if (bbox.ic) { BBOX.w -= bbox.ic; // remove IC (added by mo and mi) @@ -1857,39 +1853,39 @@ // // Add the super- and subscripts // - var x = BBOX.w; if (sub) subbox.w += s; if (sup) supbox.w += s; + var x = BBOX.w; if (sub) sbox.w += s; if (sup) Sbox.w += s; if (!sup) { if (sub) { - v = Math.max(v,CHTML.TEX.sub1,sscale*subbox.h-(4/5)*ex,values.subscriptshift); + v = Math.max(v,CHTML.TEX.sub1,sscale*sbox.h-(4/5)*ex,values.subscriptshift); sub.style.verticalAlign = CHTML.Em(-v/sscale); sub.style.paddingRight = CHTML.Em(s/sscale); - BBOX.combine(subbox,x,-v,sscale); + BBOX.combine(sbox,x,-v,sscale); } } else { if (!sub) { p = CHTML.TEX[(values.displaystyle ? "sup1" : (values.texprimestyle ? "sup3" : "sup2"))]; - u = Math.max(u,p,sscale*supbox.d+(1/4)*ex,values.superscriptshift); - sup.style.verticalAlign = CHTML.Em(u/sscale); - sup.style.paddingLeft = CHTML.Em(delta/sscale); - sup.style.paddingRight = CHTML.Em(s/sscale); - BBOX.combine(supbox,x+delta,u,sscale); + u = Math.max(u,p,Sscale*Sbox.d+(1/4)*ex,values.superscriptshift); + sup.style.verticalAlign = CHTML.Em(u/Sscale); + sup.style.paddingLeft = CHTML.Em(delta/Sscale); + sup.style.paddingRight = CHTML.Em(s/Sscale); + BBOX.combine(Sbox,x+delta,u,Sscale); } else { v = Math.max(v,CHTML.TEX.sub2); var t = CHTML.TEX.rule_thickness; - if ((u - sscale*supbox.d) - (sscale*subbox.h - v) < 3*t) { - v = 3*t - u + sscale*(supbox.d + subbox.h); - q = (4/5)*ex - (u - sscale*supbox.d); + if ((u - Sscale*Sbox.d) - (sscale*sbox.h - v) < 3*t) { + v = 3*t - u + Sscale*Sbox.d + sscale*sbox.h; + q = (4/5)*ex - (u - Sscale*Sbox.d); if (q > 0) {u += q; v -= q} } u = Math.max(u,values.superscriptshift); v = Math.max(v,values.subscriptshift); sub.style.paddingRight = CHTML.Em(s/sscale); - sup.style.paddingBottom = CHTML.Em((u+v)/sscale-supbox.d-subbox.h); - sup.style.paddingLeft = CHTML.Em(delta/sscale); - sup.style.paddingRight = CHTML.Em(s/sscale); + sup.style.paddingBottom = CHTML.Em(u/Sscale+v/sscale-Sbox.d-sbox.h/sscale*Sscale); + sup.style.paddingLeft = CHTML.Em(delta/Sscale); + sup.style.paddingRight = CHTML.Em(s/Sscale); stack.style.verticalAlign = CHTML.Em(-v); - BBOX.combine(supbox,x+delta,u,sscale); - BBOX.combine(subbox,x,-v,sscale); + BBOX.combine(Sbox,x+delta,u,Sscale); + BBOX.combine(sbox,x,-v,sscale); } } BBOX.clean(); @@ -1909,15 +1905,6 @@ "numalign","denomalign","bevelled"); var isDisplay = values.displaystyle; // - // Get the scale of the fraction and its parts - // - var sscale = 1, scale = (values.scriptlevel > 0 ? SCRIPTFACTOR : 1); - if (!isDisplay && values.scriptlevel < 2) { - sscale = SCRIPTFACTOR; - if (this.data[0]) this.data[0].CHTMLhandleScriptlevel(node.firstChild); - if (this.data[1]) this.data[1].CHTMLhandleScriptlevel(node.lastChild); - } - // // Create the table for the fraction and set the alignment // var num = node.firstChild, denom = node.lastChild; @@ -1929,54 +1916,53 @@ // Get the bounding boxes for the parts, and determine the placement // of the numerator and denominator // - var nbox = this.CHTMLbboxFor(0), dbox = this.CHTMLbboxFor(1), BBOX; + var nbox = this.CHTMLbboxFor(0), dbox = this.CHTMLbboxFor(1), + BBOX = CHTML.BBOX.empty(this.CHTML), nscale = nbox.rscale, dscale = dbox.rscale; values.linethickness = Math.max(0,CHTML.length2em(values.linethickness||"0",0)); - var mt = CHTML.TEX.min_rule_thickness/CHTML.em/scale, a = CHTML.TEX.axis_height; + var mt = CHTML.TEX.min_rule_thickness/CHTML.em/BBOX.scale, a = CHTML.TEX.axis_height; var t = values.linethickness, p,q, u,v; if (values.bevelled) { frac.className = "MJXc-bevelled"; var delta = (isDisplay ? .4 : .15); - var H = sscale*Math.max(nbox.h+nbox.d,dbox.h+dbox.d) + 2*delta; + var H = Math.max(nscale*(nbox.h+nbox.d),dscale*(dbox.h+dbox.d)) + 2*delta; var bevel = HTML.Element("mjx-bevel"); frac.insertBefore(bevel,denom); var bbox = CHTML.createDelimiter(bevel,0x2F,H); - u = sscale*(nbox.d-nbox.h)/2+a+delta; - v = sscale*(dbox.d-dbox.h)/2+a-delta; - if (u) num.style.verticalAlign = CHTML.Em(u); - if (v) denom.style.verticalAlign = CHTML.Em(v); + u = nscale*(nbox.d-nbox.h)/2+a+delta; + v = dscale*(dbox.d-dbox.h)/2+a-delta; + if (u) num.style.verticalAlign = CHTML.Em(u/nscale); + if (v) denom.style.verticalAlign = CHTML.Em(v/dscale); bevel.style.marginLeft = bevel.style.marginRight = CHTML.Em(-delta/2); - BBOX = this.CHTML = CHTML.BBOX.empty(); - BBOX.combine(nbox,0,u,sscale); - BBOX.combine(bbox,sscale*nbox.w-delta/2,0,sscale); - BBOX.combine(dbox,sscale*nbox.w+bbox.w-delta,v,sscale); + BBOX.combine(nbox,0,u,nscale); + BBOX.combine(bbox,nscale*nbox.w-delta/2,0,nscale); + BBOX.combine(dbox,nscale*nbox.w+bbox.w-delta,v,dscale); BBOX.clean(); } else { if (isDisplay) {u = CHTML.TEX.num1; v = CHTML.TEX.denom1} else {u = (t === 0 ? CHTML.TEX.num3 : CHTML.TEX.num2); v = CHTML.TEX.denom2} if (t === 0) { // \atop p = Math.max((isDisplay ? 7 : 3) * CHTML.TEX.rule_thickness, 2*mt); // force to at least 2 px - q = (u - nbox.d*sscale) - (dbox.h*sscale - v); + q = (u - nbox.d*nscale) - (dbox.h*dscale - v); if (q < p) {u += (p - q)/2; v += (p - q)/2} frac.style.verticalAlign = CHTML.Em(-v); } else { // \over p = Math.max((isDisplay ? 3 : 0) * t, mt); // force to be at least 1px t = Math.max(t,mt); - q = (u - nbox.d*sscale) - (a + t/2); if (q < p) u += (p - q); - q = (a - t/2) - (dbox.h*sscale - v); if (q < p) v += (p - q); + q = (u - nbox.d*nscale) - (a + t/2); if (q < p) u += (p - q); + q = (a - t/2) - (dbox.h*dscale - v); if (q < p) v += (p - q); frac.style.verticalAlign = CHTML.Em(t/2-v); - num.style.borderBottom = CHTML.Em(t)+" solid"; + num.style.borderBottom = CHTML.Em(t/nscale)+" solid"; num.className += " MJXc-fpad"; nbox.L = nbox.R = .1; denom.className += " MJXc-fpad"; dbox.L = dbox.R = .1; } // // Determine the new bounding box and place the parts // - BBOX = this.CHTML = CHTML.BBOX.empty(); - BBOX.combine(nbox,0,u,sscale); - BBOX.combine(dbox,0,-v,sscale); + BBOX.combine(nbox,0,u,nscale); + BBOX.combine(dbox,0,-v,dscale); BBOX.clean(); - u -= sscale*nbox.d + a + t/2; v -= sscale*dbox.h - a + t/2; - if (u > 0) num.style.paddingBottom = CHTML.Em(u); - if (v > 0) denom.style.paddingTop = CHTML.Em(v); + u -= nscale*nbox.d + a + t/2; v -= dscale*dbox.h - a + t/2; + if (u > 0) num.style.paddingBottom = CHTML.Em(u/nscale); + if (v > 0) denom.style.paddingTop = CHTML.Em(v/dscale); } // // Add nulldelimiterspace around the fraction @@ -2003,13 +1989,13 @@ }); var base = node.firstChild; var sqrt = HTML.addElement(node,"mjx-box"); sqrt.appendChild(base); - var bbox = this.CHTMLbboxFor(0), BBOX = this.CHTML = CHTML.BBOX.empty(); + var bbox = this.CHTMLbboxFor(0), BBOX = CHTML.BBOX.empty(this.CHTML); var t = CHTML.TEX.rule_thickness, T = CHTML.TEX.surd_height, p = t, q, H; if (this.Get("displaystyle")) p = CHTML.TEX.x_height; q = t + p/4; H = bbox.h + bbox.d + q + t; var surd = HTML.Element("mjx-surd"); sqrt.insertBefore(surd,base); - var sbox = CHTML.createDelimiter(surd,0x221A,[H-.04,H],1); + var sbox = CHTML.createDelimiter(surd,0x221A,[H-.04,H]); if (sbox.h + sbox.d > H) q = ((sbox.h+sbox.d) - (H-t))/2; H = bbox.h + q + t; var x = this.CHTMLaddRoot(node,sbox,sbox.h+sbox.d-H); @@ -2031,12 +2017,8 @@ toCommonHTML: MML.msqrt.prototype.toCommonHTML, CHTMLaddRoot: function (sqrt,sbox,d) { if (!this.data[1]) return; - var BBOX = this.CHTML, bbox = this.data[1].CHTML, - root = sqrt.firstChild; - var dlevel = Math.min(2,this.Get("scriptlevel")), - level = Math.min(2,this.data[1].Get("scriptlevel")); - scale = Math.pow(SCRIPTFACTOR,level-dlevel); - if (scale !== 1) this.data[1].CHTMLhandleScriptlevel(root,dlevel); + var BBOX = this.CHTML, bbox = this.data[1].CHTML, root = sqrt.firstChild; + var scale = bbox.rscale; var h = this.CHTMLrootHeight(bbox,sbox,scale)-d; var w = Math.min(bbox.w,bbox.r); // remove extra right-hand padding, if any var dx = Math.max(w,sbox.offset/scale); @@ -2100,13 +2082,7 @@ MML.mstyle.Augment({ toCommonHTML: function (node) { node = this.CHTMLdefaultNode(node); - if (this.scriptlevel) { - var dlevel = this.Get("scriptlevel",null,true); - if (this.scriptlevel !== dlevel) { - this.CHTMLhandleScriptlevel(node,dlevel); - this.CHTML.scale(this.scriptlevel,dlevel); - } - } + if (this.scriptlevel) this.CHTML.rescale(this.data[0].CHTML.rscale); return node; } }); From 0020f2a8220386b4636daaa638cabaf3e16a438e Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Tue, 17 Mar 2015 06:29:50 -0400 Subject: [PATCH 093/186] Adjust CHTMLhandleScale() so that \large, etc. affect fractions and other such constructs. (Do the scaling on the mstyle element rather than the individual token elements.) --- unpacked/jax/output/CommonHTML/jax.js | 47 ++++++++++++--------------- 1 file changed, 21 insertions(+), 26 deletions(-) diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index 56d7597ac..f68af6f87 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -1169,27 +1169,22 @@ }, CHTMLhandleScale: function (node) { - var scale = 1, parent = this.parent, pscale = (parent ? parent.CHTML.scale : 1); + var scale = 1, parent = this.parent, pscale = (parent ? parent.CHTML.scale : 1); var values = this.getValues("scriptlevel","fontsize","mathsize"); - if (this.type === "mstyle" || this.type === "math") - values.scriptlevel = this.Get("scriptlevel",null,true); + if (values.scriptlevel !== 0) { + if (values.scriptlevel > 2) values.scriptlevel = 2; + scale = Math.pow(this.Get("scriptsizemultiplier"),values.scriptlevel); + values.scriptminsize = CHTML.length2em(this.Get("scriptminsize")); + if (scale < values.scriptminsize) scale = values.scriptminsize; + } if (this.removedStyles && this.removedStyles.fontSize && !values.fontsize) values.fontsize = this.removedStyles.fontSize; - if (values.fontsize && !this.mathsize) values.mathsize = values.fontsize; - if (values.scriptlevel !== 0) { - if (values.scriptlevel > 2) values.scriptlevel = 2; - scale = Math.pow(this.Get("scriptsizemultiplier"),values.scriptlevel); - values.scriptminsize = CHTML.length2em(this.Get("scriptminsize")); - if (scale < values.scriptminsize) scale = values.scriptminsize; - } - if (this.isToken) { - this.CHTML.mscale = CHTML.length2em(values.mathsize,pscale); - scale *= this.CHTML.mscale; - } + if (values.fontsize && !this.mathsize) values.mathsize = values.fontsize; + scale *= CHTML.length2em(values.mathsize); this.CHTML.scale = scale; pscale = this.CHTML.rscale = scale/pscale; if (Math.abs(pscale-1) < .001) pscale = 1; if (node && pscale !== 1) node.style.fontSize = CHTML.Percent(pscale); - return scale; + return scale; }, CHTMLhandleStyle: function (node) { @@ -1238,7 +1233,7 @@ }, CHTMLgetVariant: function () { - var values = this.getValues("mathvariant","fontfamily","fontweight","fontstyle"); + var values = this.getValues("mathvariant","fontfamily","fontweight","fontstyle"); values.hasVariant = this.Get("mathvariant",true); // null if not explicitly specified if (this.style) { var span = HTML.Element("span"); span.style.cssText = this.style; @@ -1253,15 +1248,15 @@ } if (values.weight && values.weight.match(/^\d+$/)) values.weight = (parseInt(values.weight) > 600 ? "bold" : "normal"); - var variant = values.mathvariant; if (this.variantForm) variant = "-TeX-variant"; - if (values.family && !values.hasVariant) { - if (!values.weight && values.mathvariant.match(/bold/)) values.weight = "bold"; - if (!values.style && values.mathvariant.match(/italic/)) values.style = "italic"; - this.CHTMLvariant = {fonts:[], noRemap:true, cache:{}, style: { + var variant = values.mathvariant; if (this.variantForm) variant = "-TeX-variant"; + if (values.family && !values.hasVariant) { + if (!values.weight && values.mathvariant.match(/bold/)) values.weight = "bold"; + if (!values.style && values.mathvariant.match(/italic/)) values.style = "italic"; + this.CHTMLvariant = {fonts:[], noRemap:true, cache:{}, style: { "font-family":values.family, "font-weight":values.weight, "font-style":values.style }}; return; - } + } if (values.weight === "bold") { variant = { normal:MML.VARIANT.BOLD, italic:MML.VARIANT.BOLDITALIC, @@ -1923,9 +1918,9 @@ var t = values.linethickness, p,q, u,v; if (values.bevelled) { frac.className = "MJXc-bevelled"; - var delta = (isDisplay ? .4 : .15); - var H = Math.max(nscale*(nbox.h+nbox.d),dscale*(dbox.h+dbox.d)) + 2*delta; - var bevel = HTML.Element("mjx-bevel"); frac.insertBefore(bevel,denom); + var delta = (isDisplay ? .4 : .15); + var H = Math.max(nscale*(nbox.h+nbox.d),dscale*(dbox.h+dbox.d)) + 2*delta; + var bevel = HTML.Element("mjx-bevel"); frac.insertBefore(bevel,denom); var bbox = CHTML.createDelimiter(bevel,0x2F,H); u = nscale*(nbox.d-nbox.h)/2+a+delta; v = dscale*(dbox.d-dbox.h)/2+a-delta; @@ -2082,7 +2077,7 @@ MML.mstyle.Augment({ toCommonHTML: function (node) { node = this.CHTMLdefaultNode(node); - if (this.scriptlevel) this.CHTML.rescale(this.data[0].CHTML.rscale); + if (this.scriptlevel) this.CHTML.rescale(this.data[0].CHTML.rscale); return node; } }); From 6478163a397bf784b141cb397d42bf5ecce26c56 Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Tue, 17 Mar 2015 07:09:06 -0400 Subject: [PATCH 094/186] Make mn handle italic correction and skew like mn does. --- unpacked/jax/output/CommonHTML/jax.js | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index f68af6f87..21bf52d14 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -1356,7 +1356,22 @@ node = this.CHTMLdefaultNode(node); var bbox = this.CHTML, text = this.data.join(""); if (bbox.skew != null && text.length !== 1) delete bbox.skew; - if (bbox.r > bbox.w && text.length === 1 /*&& !variant.noIC*/) { // ### FIXME: handle variants + if (bbox.r > bbox.w && text.length === 1 && !this.CHTMLvariant.noIC) { + bbox.ic = bbox.r - bbox.w; bbox.w = bbox.r; + node.lastChild.style.paddingRight = CHTML.Em(bbox.ic); + } + return node; + } + }); + + /********************************************************/ + + MML.mn.Augment({ + toCommonHTML: function (node) { + node = this.CHTMLdefaultNode(node); + var bbox = this.CHTML, text = this.data.join(""); + if (bbox.skew != null && text.length !== 1) delete bbox.skew; + if (bbox.r > bbox.w && text.length === 1 && !this.CHTMLvariant.noIC) { bbox.ic = bbox.r - bbox.w; bbox.w = bbox.r; node.lastChild.style.paddingRight = CHTML.Em(bbox.ic); } From e971f875d4ead407c0bba87df350ff7e28e2ca3e Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Tue, 17 Mar 2015 12:15:04 -0400 Subject: [PATCH 095/186] Handle stretchy embellished operators. --- unpacked/jax/element/mml/jax.js | 5 + unpacked/jax/output/CommonHTML/jax.js | 223 ++++++++++++++++++-------- 2 files changed, 159 insertions(+), 69 deletions(-) diff --git a/unpacked/jax/element/mml/jax.js b/unpacked/jax/element/mml/jax.js index 01809d868..33041e3b4 100644 --- a/unpacked/jax/element/mml/jax.js +++ b/unpacked/jax/element/mml/jax.js @@ -401,6 +401,11 @@ MathJax.ElementJax.mml.Augment({ isEmbellished: function () {return false}, Core: function () {return this}, CoreMO: function () {return this}, + childIndex: function(child) { + if (child == null) return; + for (var i = 0, m = this.data.length; i < m; i++) if (child === this.data[i]) return i; + }, + CoreIndex: function () {return this.childIndex(this.Core())}, hasNewline: function () { if (this.isEmbellished()) {return this.CoreMO().hasNewline()} if (this.isToken || this.linebreakContainer) {return false} diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index 21bf52d14..779fa38da 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -1011,6 +1011,10 @@ if (y + scale*cbox.t > this.t) this.t = y + scale*cbox.t; if (scale*cbox.b - y > this.b) this.b = scale*cbox.b - y; }, + updateFrom: function (cbox) { + this.h = cbox.h; this.d = cbox.d; this.w = cbox.w; this.r = cbox.r; this.l = cbox.l; + this.t = cbox.t; this.b = cbox.b; + }, adjust: function (m,x,X,M) { this[x] += CHTML.length2em(m); if (M == null) { @@ -1025,9 +1029,9 @@ }, empty: function (bbox) { if (!bbox) bbox = CHTML.BBOX.zero(); - return MathJax.Hub.Insert(bbox,{ - h:-BIGDIMEN, d:-BIGDIMEN, w:0, l:BIGDIMEN, r:-BIGDIMEN, t:-BIGDIMEN, b:-BIGDIMEN - }); + bbox.h = bbox.d = bbox.r = bbox.t = bbox.b = -BIGDIMEN; + bbox.w = 0; bbox.l = BIGDIMEN; + return bbox; }, // // CSS styles that affect BBOXes @@ -1058,7 +1062,7 @@ CHTMLdefaultNode: function (node,options) { if (!options) options = {}; - node = this.CHTMLcreateNode(node); + node = this.CHTMLcreateNode(node); this.CHTML = CHTML.BBOX.empty(); this.CHTMLhandleStyle(node); this.CHTMLhandleScale(node); if (this.isToken) this.CHTMLgetVariant(); @@ -1095,12 +1099,12 @@ CHTMLstretchChildV: function (i,H,D) { var data = this.data[i]; if (data) { - var bbox = this.CHTML; - if (bbox.stretch || (bbox.stretch == null && data.CHTMLcanStretch("Vertical",H,D))) { - var w = data.CHTML.w; - data.CHTMLstretchV(H,D); - var dbox = data.CHTML; + var bbox = this.CHTML, dbox = data.CHTML; + if (dbox.stretch || (dbox.stretch == null && data.CHTMLcanStretch("Vertical",H,D))) { + var w = dbox.w; + dbox = data.CHTMLstretchV(H,D); bbox.w += dbox.w - w; + if (bbox.w > bbox.r) bbox.r = bbox.w; if (dbox.h > bbox.h) bbox.h = dbox.h; if (dbox.d > bbox.d) bbox.d = dbox.d; if (dbox.t > bbox.t) bbox.t = dbox.t; @@ -1108,13 +1112,19 @@ } } }, - CHTMLstretchChildH: function (i,W,nodes) { + CHTMLstretchChildH: function (i,W,node) { var data = this.data[i]; if (data) { - var bbox = this.CHTML; - if (bbox.stretch || (bbox.stretch == null && data.CHTMLcanStretch("Horizontal",W))) { - data.CHTMLstretchH(nodes[i].firstChild,W); - MathJax.Hub.Insert(this.CHTML,data.CHTML); + var bbox = this.CHTML, dbox = data.CHTML; + if (dbox.stretch || (dbox.stretch == null && data.CHTMLcanStretch("Horizontal",W))) { + var w = dbox.w; + dbox = data.CHTMLstretchH(node,W); + bbox.w += dbox.w - w; + if (bbox.w > bbox.r) bbox.r = bbox.w; + if (dbox.h > bbox.h) bbox.h = dbox.h; + if (dbox.d > bbox.d) bbox.d = dbox.d; + if (dbox.t > bbox.t) bbox.t = dbox.t; + if (dbox.b > bbox.b) bbox.b = dbox.b; } } }, @@ -1128,8 +1138,14 @@ this.CHTML.stretch = stretch; return stretch; }, - CHTMLstretchV: function (h,d) {}, - CHTMLstretchH: function (node,w) {}, + CHTMLstretchV: function (h,d) { + this.CHTML.updateFrom(this.Core().CHTMLstretchV(h,d)); + return this.CHTML; + }, + CHTMLstretchH: function (node,w) { + this.CHTML.updateFrom(this.Core().CHTMLstretchH(node,w)); + return this.CHTML; + }, CHTMLcreateNode: function (node) { if (!this.CHTML) this.CHTML = {}; @@ -1298,7 +1314,7 @@ // CHTMLdrawBBox: function (node) { var bbox = this.CHTML, scale = bbox.rscale; - HTML.addElement(node.parentNode,"mjx-box", + var box = HTML.Element("mjx-box", {style:{opacity:.25,"margin-left":CHTML.Em(-scale*(bbox.w+(bbox.R||0)))}},[ ["mjx-box",{style:{ height:CHTML.Em(scale*bbox.h),width:CHTML.Em(scale*bbox.w), @@ -1310,6 +1326,8 @@ "background-color":"green" }}] ]); + if (node.nextSibling) {node.parentNode.insertBefore(box,node.nextSibling)} + else {node.parentNode.appendChild(box)} }, CHTMLnotEmpty: function (mml) { @@ -1318,6 +1336,20 @@ return !!mml; } + },{ + // + // For use with embellished operators + // + CHTMLstretchV: function (h,d) { + this.Core().CHTMLstretchV(h,d); + this.toCommonHTML(this.CHTMLnodeElement(),true); + return this.CHTML; + }, + CHTMLstretchH: function (node,w) { + this.Core().CHTMLstretchH(w); + this.toCommonHTML(node,true); + return this.CHTML; + } }); /********************************************************/ @@ -1516,6 +1548,7 @@ bbox.h += H; bbox.d -= H; bbox.t += H; bbox.b -= H; } } + return this.CHTML; }, CHTMLstretchH: function (node,W) { var bbox = this.CHTML; @@ -1531,6 +1564,7 @@ this.CHTML = bbox = CHTML.createDelimiter(node,this.data.join("").charCodeAt(0),W,bbox,values.mathvariant); bbox.sW = W; } + return this.CHTML; } }); @@ -1581,11 +1615,16 @@ /********************************************************/ MML.mpadded.Augment({ - toCommonHTML: function (node) { - node = this.CHTMLdefaultNode(node,{childNodes:"mjx-box", forceChild:true}); - var child = node.firstChild, cbox = this.CHTMLbboxFor(0); - node = HTML.addElement(node,"mjx-block"); node.appendChild(child); - HTML.addElement(node,"mjx-strut"); // force proper alignment of short heights + toCommonHTML: function (node,stretch) { + var child; + if (stretch) { + node = node.firstChild; child = node.firstChild; + } else { + node = this.CHTMLdefaultNode(node,{childNodes:"mjx-box", forceChild:true}); + child = node.firstChild; node = HTML.addElement(node,"mjx-block"); + node.appendChild(child); HTML.addElement(node,"mjx-strut"); // force proper alignment of short heights + } + var cbox = this.CHTMLbboxFor(0); var values = this.getValues("width","height","depth","lspace","voffset"); var dimen, x = 0, y = 0, w = cbox.w, h = cbox.h, d = cbox.d; child.style.width = 0; child.style.margin = CHTML.Em(-h)+" 0 "+CHTML.Em(-d); @@ -1615,6 +1654,8 @@ this.CHTML = bbox; return node.parentNode; }, + CHTMLstretchV: MML.mbase.CHTMLstretchV, + CHTMLstretchH: MML.mbase.CHTMLstretchH, CHTMLdimen: function (length,d,D,m) { if (m == null) {m = -BIGDIMEN} length = String(length); @@ -1630,23 +1671,30 @@ /********************************************************/ MML.munderover.Augment({ - toCommonHTML: function (node) { + toCommonHTML: function (node,stretch) { var values = this.getValues("displaystyle","scriptlevel","accent","accentunder","align"); if (!values.displaystyle && this.data[this.base] != null && this.data[this.base].CoreMO().Get("movablelimits")) - return MML.msubsup.prototype.toCommonHTML.call(this,node); + return MML.msubsup.prototype.toCommonHTML.call(this,node,stretch); // // Get the nodes for base and limits // - var types = ["mjx-op","mjx-under","mjx-over"]; - if (this.over === 1) types[1] = types[2]; - node = this.CHTMLdefaultNode(node,{ - childNodes:types, noBBox:true, forceChild:true, minChildren: 2 - }); var base, under, over, nodes = []; - nodes[0] = base = node.removeChild(node.firstChild); - nodes[1] = under = over = node.removeChild(node.firstChild); - if (node.firstChild) nodes[2] = over = node.removeChild(node.firstChild); + if (stretch) { + base = node.getElementsByTagName("mjx-op")[0]; + under = node.getElementsByTagName("mjx-under")[0]; + over = node.getElementsByTagName("mjx-over")[0]; + nodes[0] = base; nodes[1] = under||over; nodes[2] = over; + } else { + var types = ["mjx-op","mjx-under","mjx-over"]; + if (this.over === 1) types[1] = types[2]; + node = this.CHTMLdefaultNode(node,{ + childNodes:types, noBBox:true, forceChild:true, minChildren: 2 + }); + nodes[0] = base = node.removeChild(node.firstChild); + nodes[1] = under = over = node.removeChild(node.firstChild); + if (node.firstChild) nodes[2] = over = node.removeChild(node.firstChild); + } // // Get the bounding boxes and the maximum width // @@ -1658,9 +1706,9 @@ // var stack = base, delta = 0; if (bbox.ic) {delta = 1.3*bbox.ic + .05} // make faked IC be closer to expeted results - if (this.data[this.over]) stack = this.CHTMLaddOverscript(over,boxes,values,delta,base); - if (this.data[this.under]) this.CHTMLaddUnderscript(under,boxes,values,delta,node,stack); - else node.appendChild(stack); + if (this.data[this.over]) stack = this.CHTMLaddOverscript(over,boxes,values,delta,base,stretch); + if (this.data[this.under]) this.CHTMLaddUnderscript(under,boxes,values,delta,node,stack,stretch); + else if (!stretch) node.appendChild(stack); // // Handle horizontal positions // @@ -1692,8 +1740,8 @@ for (i = 0; i < m; i++) { if (bbox[i].stretch) { scale = (i === this.base ? 1 : bbox[i].rscale); - this.CHTMLstretchChildH(i,w/scale,nodes); - bbox[i] = this.CHTMLbboxFor(i); bbox[i].x = bbox[i].y = 0; + bbox[i] = this.data[i].CHTMLstretchH(nodes[i].firstChild,w/scale); + bbox[i].x = bbox[i].y = 0; W = Math.max(W,scale*(bbox[i].w + (bbox[i].L||0) + (bbox[i].R||0))); } } @@ -1702,15 +1750,17 @@ // // Add an overscript // - CHTMLaddOverscript: function (over,boxes,values,delta,base) { + CHTMLaddOverscript: function (over,boxes,values,delta,base,stretch) { var BBOX = this.CHTML; var w, z1, z2, z3 = CHTML.TEX.big_op_spacing5, k; var obox = boxes[this.over], bbox = boxes[this.base], scale = obox.rscale; // // Put the base and script into a stack - // - var stack = HTML.Element("mjx-stack"); - stack.appendChild(over); stack.appendChild(base); + // + if (!stretch) { + var stack = HTML.Element("mjx-stack"); + stack.appendChild(over); stack.appendChild(base); + } if (obox.d < 0) { // // For negative depths, set the height and align to top @@ -1746,19 +1796,21 @@ // // Add an underscript // - CHTMLaddUnderscript: function (under,boxes,values,delta,node,stack) { + CHTMLaddUnderscript: function (under,boxes,values,delta,node,stack,stretch) { var BBOX = this.CHTML; var w, x = 0, z1, z2, z3 = CHTML.TEX.big_op_spacing5, k; var ubox = boxes[this.under], bbox = boxes[this.base], scale = ubox.rscale; // // Create a table for the underscript // - HTML.addElement(node,"mjx-itable",{},[ - ["mjx-row",{},[["mjx-cell"]]], - ["mjx-row"], - ]); - node.firstChild.firstChild.firstChild.appendChild(stack); - node.firstChild.lastChild.appendChild(under); + if (!stretch) { + HTML.addElement(node,"mjx-itable",{},[ + ["mjx-row",{},[["mjx-cell"]]], + ["mjx-row"], + ]); + node.firstChild.firstChild.firstChild.appendChild(stack); + node.firstChild.lastChild.appendChild(under); + } if (ubox.d < 0) { // // For negative depths, set the height and align to top @@ -1809,30 +1861,39 @@ } } this.CHTML = BBOX; - } + }, + CHTMLstretchV: MML.mbase.CHTMLstretchV, + CHTMLstretchH: MML.mbase.CHTMLstretchH }); /********************************************************/ MML.msubsup.Augment({ - toCommonHTML: function (node) { + toCommonHTML: function (node,stretch) { var values = this.getValues("displaystyle","scriptlevel", "subscriptshift","superscriptshift","texprimestyle"); // // Get the nodes for base and limits // - var types = ["mjx-base","mjx-sub","mjx-sup"]; - if (this.sup === 1) types[1] = types[2]; - node = this.CHTMLdefaultNode(node,{ - childNodes:types, noBBox:true, forceChild:true, minChildren: 3 - }); - var base, sub, sup; base = node.childNodes[this.base]; - sub = node.childNodes[this.sub]; sup = node.childNodes[this.sup]; - if (!this.CHTMLnotEmpty(this.data[this.sub])) {node.removeChild(sub); sub = null} - if (!this.CHTMLnotEmpty(this.data[this.sup])) {node.removeChild(sup); sup = null} - if (node.childNodes.length === 3) { - var stack = HTML.addElement(node,"mjx-stack"); - stack.appendChild(sup); stack.appendChild(sub); + var base, sub, sup; + if (stretch) { + base = node.getElementsByTagName("mjx-base")[0]; + sub = node.getElementsByTagName("mjx-sub")[0]; + sup = node.getElementsByTagName("mjx-sup")[0]; + } else { + var types = ["mjx-base","mjx-sub","mjx-sup"]; + if (this.sup === 1) types[1] = types[2]; + node = this.CHTMLdefaultNode(node,{ + childNodes:types, noBBox:true, forceChild:true, minChildren: 3 + }); + base = node.childNodes[this.base]; + sub = node.childNodes[this.sub]; sup = node.childNodes[this.sup]; + if (!this.CHTMLnotEmpty(this.data[this.sub])) {node.removeChild(sub); sub = null} + if (!this.CHTMLnotEmpty(this.data[this.sup])) {node.removeChild(sup); sup = null} + if (node.childNodes.length === 3) { + var stack = HTML.addElement(node,"mjx-stack"); + stack.appendChild(sup); stack.appendChild(sub); + } } // // Get the bounding boxes and maximum width of scripts @@ -1855,8 +1916,8 @@ } var bmml = this.data[this.base]; if (bmml && (bmml.type === "mi" || bmml.type === "mo")) { - if (bmml.data.join("").length === 1 && bmml.Get("scriptlevel") === 0 && - !bmml.Get("largeop")) {u = v = 0} // ### FIXME: get scale rather than use scriptlevel + if (bmml.data.join("").length === 1 && bbox.rscale === 1 && !bbox.sH && + !bmml.Get("largeop")) {u = v = 0} } values.subscriptshift = (values.subscriptshift === "" ? 0 : CHTML.length2em(values.subscriptshift)); values.superscriptshift = (values.superscriptshift === "" ? 0 : CHTML.length2em(values.superscriptshift)); @@ -1900,7 +1961,9 @@ } BBOX.clean(); return node; - } + }, + CHTMLstretchV: MML.mbase.CHTMLstretchV, + CHTMLstretchH: MML.mbase.CHTMLstretchH }); /********************************************************/ @@ -1987,7 +2050,8 @@ // Return the completed fraction // return node; - } + }, + CHTMLcanStretch: function (direction) {return false}, }); /********************************************************/ @@ -2084,6 +2148,17 @@ var bbox = this.CHTML, H = bbox.h, D = bbox.d; for (var i = 0, m = this.data.length; i < m; i++) this.CHTMLstretchChildV(i,H,D); return node; + }, + CHTMLstretchV: function (h,d) { + this.CHTMLstretchChildV(this.CoreIndex(),h,d); + return this.CHTML; + }, + CHTMLstretchH: function (node,w) { + var i = this.CoreIndex() + node = node.childNodes[i]; + if (node.nodeName.toLowerCase() === "a") node = node.firstChild; + this.CHTMLstretchChildH(i,w,node); + return this.CHTML; } }); @@ -2100,14 +2175,24 @@ /********************************************************/ MML.TeXAtom.Augment({ - toCommonHTML: function (node) { - node = this.CHTMLdefaultNode(node); + toCommonHTML: function (node,stretch) { + if (!stretch) node = this.CHTMLdefaultNode(node); if (this.texClass === MML.TEXCLASS.VCENTER) { var a = CHTML.TEX.axis_height, BBOX = this.CHTML; var v = a-(BBOX.h+BBOX.d)/2+BBOX.d; - node.style.verticalAlign = CHTML.Em(v); + if (Math.abs(v) > .001) node.style.verticalAlign = CHTML.Em(v); } return node; + }, + CHTMLstretchV: function (h,d) { + this.CHTML.updateFrom(this.Core().CHTMLstretchV(h,d)); + this.toCommonHTML(this.CHTMLnodeElement(),true); + return this.CHTML; + }, + CHTMLstretchH: function (node,w) { + this.CHTML.updateFrom(this.Core().CHTMLstretchH(node.firstChild,w)); + this.toCommonHTML(node,true); + return this.CHTML; } }); From 87abfa1085080e518ee9b2ba20fa480a7c7d3935 Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Tue, 17 Mar 2015 12:27:14 -0400 Subject: [PATCH 096/186] Use removedStyles when checking for font-based variant. --- unpacked/jax/output/CommonHTML/jax.js | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index 779fa38da..33439b40a 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -1249,13 +1249,13 @@ }, CHTMLgetVariant: function () { - var values = this.getValues("mathvariant","fontfamily","fontweight","fontstyle"); + var values = this.getValues("mathvariant","fontfamily","fontweight","fontstyle"), style; values.hasVariant = this.Get("mathvariant",true); // null if not explicitly specified - if (this.style) { - var span = HTML.Element("span"); span.style.cssText = this.style; - if (span.style.fontFamily) values.family = span.style.fontFamily; - if (span.style.fontWeight) values.weight = span.style.fontWeight; - if (span.style.fontStyle) values.style = span.style.fontStyle; + if (this.removedStyles) { + style = this.removedStyles; + if (style.fontFamily) values.family = style.fontFamily; + if (style.fontWeight) values.weight = style.fontWeight; + if (style.fontStyle) values.style = style.fontStyle; } if (!values.hasVariant) { if (values.fontfamily) values.family = values.fontfamily; From 0306af85643281e588b686723a8b534a1a0bb1d5 Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Tue, 17 Mar 2015 12:31:09 -0400 Subject: [PATCH 097/186] Use flushText() rather than adding the text by hand. --- unpacked/jax/output/CommonHTML/jax.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index 33439b40a..3dfccfc3a 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -650,7 +650,7 @@ } if (state.text !== "") { if (node.childNodes.length) { - HTML.addElement(node,"span",{className:state.className},[state.text]); + this.charList.flushText(node,state); } else { HTML.addText(node,state.text); node.className = state.className; From 548eba8ef05df315fd8291869236d4543bc5b20e Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Wed, 18 Mar 2015 10:43:51 -0400 Subject: [PATCH 098/186] Fix regression where bounding boxes aren't adjusted for mathsize --- unpacked/jax/output/CommonHTML/jax.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index 3dfccfc3a..97e5953dd 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -1196,7 +1196,10 @@ if (this.removedStyles && this.removedStyles.fontSize && !values.fontsize) values.fontsize = this.removedStyles.fontSize; if (values.fontsize && !this.mathsize) values.mathsize = values.fontsize; - scale *= CHTML.length2em(values.mathsize); + if (values.mathsize !== 1) { + this.CHTML.mscale = CHTML.length2em(values.mathsize); + scale *= this.CHTML.mscale; + } this.CHTML.scale = scale; pscale = this.CHTML.rscale = scale/pscale; if (Math.abs(pscale-1) < .001) pscale = 1; if (node && pscale !== 1) node.style.fontSize = CHTML.Percent(pscale); From ef47023ba60bd517bbbf1784472634fb18a8f56d Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Wed, 18 Mar 2015 11:01:37 -0400 Subject: [PATCH 099/186] Handle bold accents (and potentially, stretchy characters). --- unpacked/jax/output/CommonHTML/jax.js | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index 97e5953dd..bb0135e23 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -894,7 +894,8 @@ createChar: function (node,data,scale,font) { // ### FIXME: handle cache better (by data[1] and font) var text = "", variant = {fonts: [data[1]], noRemap:true, cache:{}}; - if (font && font === MML.VARIANT.BOLD) variant.fonts = [data[1]+"-bold",data[1]]; + if (font && font === MML.VARIANT.BOLD && this.FONTDATA.FONTS[data[1]+"-Bold"]) + variant.fonts = [data[1]+"-Bold",data[1]]; if (typeof(data[1]) !== "string") variant = data[1]; if (data[0] instanceof Array) { for (var i = 0, m = data[0].length; i < m; i++) text += String.fromCharCode(data[0][i]); @@ -1556,9 +1557,9 @@ CHTMLstretchH: function (node,W) { var bbox = this.CHTML; var values = this.getValues("maxsize","minsize","mathvariant","fontweight"); - // FIXME: should take style="font-weight:bold" into account as well - if ((values.fontweight === "bold" || parseInt(values.fontweight) >= 600) && - !this.Get("mathvariant",true)) values.mathvariant = MML.VARIANT.BOLD; + if ((values.fontweight === "bold" || (this.removedStyles||{}).fontWeight === "bold" || + parseInt(values.fontweight) >= 600) && !this.Get("mathvariant",true)) + values.mathvariant = MML.VARIANT.BOLD; values.maxsize = CHTML.length2em(values.maxsize,bbox.w); values.minsize = CHTML.length2em(values.minsize,bbox.w); W = Math.max(values.minsize,Math.min(values.maxsize,W)); From 95f632a6bd3e1270bc0625b1f4a6c7600abfcea4 Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Wed, 18 Mar 2015 11:23:45 -0400 Subject: [PATCH 100/186] Add autoload ability and stubs for the elements that need autoloading. --- unpacked/jax/output/CommonHTML/jax.js | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index bb0135e23..17f5a5ab0 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -1341,6 +1341,17 @@ } },{ + // + // Autoload files based on node type or file name + // + HTMLautoload: function () { + var file = CHTML.autoloadDir+"/"+this.type+".js"; + HUB.RestartAfter(AJAX.Require(file)); + }, + HTMLautoloadFile: function (name) { + var file = CHTML.autoloadDir+"/"+name+".js"; + HUB.RestartAfter(AJAX.Require(file)); + }, // // For use with embellished operators // @@ -2277,10 +2288,19 @@ return node; } }); - MML.annotation.Augment({toCommonHTML: function(node) {}}); + MML.annotation.Augment({toCommonHTML: function(node) {return this.CHTMLcreateNode(node)}}); MML["annotation-xml"].Augment({toCommonHTML: function(node) {}}); +// MML["annotation-xml"].Augment({toCommonHTML: MML.mbase.CHTMLautoload}); /********************************************************/ + +// MML.ms.Augment({toCommonHTML: MML.mbase.CHTMLautoload}); +// MML.mglyph.Augment({toCommonHTML: MML.mbase.CHTMLautoload}); +// MML.menclose.Augment({toCommonHTML: MML.mbase.CHTMLautoload}); +// MML.maction.Augment({toCommonHTML: MML.mbase.CHTMLautoload}); +// MML.mmultiscripts.Augment({toCommonHTML: MML.mbase.CHTMLautoload}); + + /********************************************************/ // // Loading isn't complete until the element jax is modified, From f64e50f9eb8171766b266e52faffa71566325509 Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Wed, 18 Mar 2015 11:28:17 -0400 Subject: [PATCH 101/186] Use BBOX.updateFrom() in semantics, and handle mstyle with no children. --- unpacked/jax/output/CommonHTML/jax.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index 17f5a5ab0..2cfad14f1 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -2182,7 +2182,7 @@ MML.mstyle.Augment({ toCommonHTML: function (node) { node = this.CHTMLdefaultNode(node); - if (this.scriptlevel) this.CHTML.rescale(this.data[0].CHTML.rscale); + if (this.scriptlevel && this.data[0]) this.CHTML.rescale(this.data[0].CHTML.rscale); return node; } }); @@ -2281,10 +2281,10 @@ MML.semantics.Augment({ toCommonHTML: function (node) { node = this.CHTMLcreateNode(node); - if (this.data[0]) { - this.data[0].toCommonHTML(node); - MathJax.Hub.Insert(this.data[0].CHTML||{},this.CHTML); - } + if (this.data[0]) { + this.data[0].toCommonHTML(node); + this.CHTML.updateFrom(this.data[0].CHTML); + } return node; } }); From 640b0d5f16d9a0ab83626464f472a9774b166c9f Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Wed, 18 Mar 2015 12:13:32 -0400 Subject: [PATCH 102/186] Add support for element --- unpacked/jax/output/CommonHTML/autoload/ms.js | 73 +++++++++++++++++++ unpacked/jax/output/CommonHTML/jax.js | 7 +- 2 files changed, 77 insertions(+), 3 deletions(-) create mode 100644 unpacked/jax/output/CommonHTML/autoload/ms.js diff --git a/unpacked/jax/output/CommonHTML/autoload/ms.js b/unpacked/jax/output/CommonHTML/autoload/ms.js new file mode 100644 index 000000000..72cb20452 --- /dev/null +++ b/unpacked/jax/output/CommonHTML/autoload/ms.js @@ -0,0 +1,73 @@ +/* -*- Mode: Javascript; indent-tabs-mode:nil; js-indent-level: 2 -*- */ +/* vim: set ts=2 et sw=2 tw=80: */ + +/************************************************************* + * + * MathJax/jax/output/CommonHTML/autoload/ms.js + * + * Implements the CommonHTML output for elements. + * + * --------------------------------------------------------------------- + * + * Copyright (c) 2015 The MathJax Consortium + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +MathJax.Hub.Register.StartupHook("CommonHTML Jax Ready",function () { + var VERSION = "2.5.0"; + var MML = MathJax.ElementJax.mml, + CHTML = MathJax.OutputJax.CommonHTML; + + MML.ms.Augment({ + toCommonHTML: function (node) { + // + // Create the node and handle its styles and scaling + // Get the variant and an empty bounding box + // + node = this.CHTMLcreateNode(node); + this.CHTMLhandleStyle(node); + this.CHTMLhandleScale(node); + this.CHTMLgetVariant(); + CHTML.BBOX.empty(this.CHTML); + // + // Get the quotes to use + // + var values = this.getValues("lquote","rquote"); + if (!this.hasValue("lquote")) values.lquote = "\u201C"; + if (!this.hasValue("rquote")) values.rquote = "\u201D"; + // + // Add the left quote, the child nodes, and the right quote + // FIXME: should the quotation marks be in MML.VARIANT.NORMAL? + // + this.CHTMLhandleText(node,values.lquote,this.CHTMLvariant); + for (var i = 0, m = this.data.length; i < m; i++) this.CHTMLaddChild(node,i,{}); + this.CHTMLhandleText(node,values.rquote,this.CHTMLvariant); + // + // Finish the bbox, add any needed space and color + // + this.CHTML.clean(); + this.CHTMLhandleSpace(node); + this.CHTMLhandleBBox(node); + this.CHTMLhandleColor(node); + // + // Return the completed node + // + return node; + } + }); + + MathJax.Hub.Startup.signal.Post("CommonHTML ms Ready"); + MathJax.Ajax.loadComplete(CHTML.autoloadDir+"/ms.js"); +}); + diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index 2cfad14f1..0dec66234 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -1249,6 +1249,7 @@ }, CHTMLhandleText: function (node,text,variant) { + if (node.firstChild && !this.CHTML) this.CHTML = CHTML.BBOX.empty(); this.CHTML = CHTML.handleText(node,text,variant,this.CHTML); }, @@ -1344,11 +1345,11 @@ // // Autoload files based on node type or file name // - HTMLautoload: function () { + CHTMLautoload: function () { var file = CHTML.autoloadDir+"/"+this.type+".js"; HUB.RestartAfter(AJAX.Require(file)); }, - HTMLautoloadFile: function (name) { + CHTMLautoloadFile: function (name) { var file = CHTML.autoloadDir+"/"+name+".js"; HUB.RestartAfter(AJAX.Require(file)); }, @@ -2294,7 +2295,7 @@ /********************************************************/ -// MML.ms.Augment({toCommonHTML: MML.mbase.CHTMLautoload}); + MML.ms.Augment({toCommonHTML: MML.mbase.CHTMLautoload}); // MML.mglyph.Augment({toCommonHTML: MML.mbase.CHTMLautoload}); // MML.menclose.Augment({toCommonHTML: MML.mbase.CHTMLautoload}); // MML.maction.Augment({toCommonHTML: MML.mbase.CHTMLautoload}); From f5103c709adf14329468be0574e39c065d046f25 Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Wed, 18 Mar 2015 14:03:42 -0400 Subject: [PATCH 103/186] Add support for annotation-xml used illegally as first child of semantics. --- .../CommonHTML/autoload/annotation-xml.js | 60 +++++++++++++++++++ unpacked/jax/output/CommonHTML/jax.js | 5 +- 2 files changed, 63 insertions(+), 2 deletions(-) create mode 100644 unpacked/jax/output/CommonHTML/autoload/annotation-xml.js diff --git a/unpacked/jax/output/CommonHTML/autoload/annotation-xml.js b/unpacked/jax/output/CommonHTML/autoload/annotation-xml.js new file mode 100644 index 000000000..bc4956370 --- /dev/null +++ b/unpacked/jax/output/CommonHTML/autoload/annotation-xml.js @@ -0,0 +1,60 @@ +/* -*- Mode: Javascript; indent-tabs-mode:nil; js-indent-level: 2 -*- */ +/* vim: set ts=2 et sw=2 tw=80: */ + +/************************************************************* + * + * MathJax/jax/output/CommonHTML/autoload/annotation-xm;l.js + * + * Implements the CommonHTML output for elements. + * + * --------------------------------------------------------------------- + * + * Copyright (c) 2015 The MathJax Consortium + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +MathJax.Hub.Register.StartupHook("CommonHTML Jax Ready",function () { + var VERSION = "2.5.0"; + var MML = MathJax.ElementJax.mml, + CHTML = MathJax.OutputJax.CommonHTML; + + MML["annotation-xml"].Augment({ + toCommonHTML: function (node) { + var encoding = this.Get("encoding"); + node = this.CHTMLdefaultNode(node,{childOptions:{encoding:encoding}}); + if (this.CHTML.rscale !== 1) this.CHTML.rescale(1/this.CHTML.rscale); + return node; + } + }); + + MML.xml.Augment({ + toCommonHTML: function (node,options) { + var bbox = this.CHTML = CHTML.BBOX.zero(); + for (var i = 0, m = this.data.length; i < m; i++) + {node.appendChild(this.data[i].cloneNode(true))} + // + // Warning: causes reflow + // + var w = node.offsetWidth, h = node.offsetHeight; + var strut = MathJax.HTML.addElement(node,"mjx-hd-test",{style:{height:h+"px"}}); + bbox.d = bbox.b = (node.offsetHeight - h)/CHTML.em; + bbox.w = bbox.r = w/CHTML.em; bbox.h = bbox.t = h/CHTML.em - bbox.d; + node.removeChild(strut); + } + }); + + MathJax.Hub.Startup.signal.Post("CommonHTML annotation-xml Ready"); + MathJax.Ajax.loadComplete(CHTML.autoloadDir+"/annotation-xml.js"); +}); + diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index 0dec66234..353bb5ab5 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -87,6 +87,8 @@ "font-style": "normal", "font-size": "90%" }, + + "mjx-annotation-xml": {"line-height":"normal"}, "mjx-box": {display:"inline-block"}, "mjx-block": {display:"block"}, @@ -2290,8 +2292,7 @@ } }); MML.annotation.Augment({toCommonHTML: function(node) {return this.CHTMLcreateNode(node)}}); - MML["annotation-xml"].Augment({toCommonHTML: function(node) {}}); -// MML["annotation-xml"].Augment({toCommonHTML: MML.mbase.CHTMLautoload}); + MML["annotation-xml"].Augment({toCommonHTML: MML.mbase.CHTMLautoload}); /********************************************************/ From 4ee1aa59e706822172f40119b9bf6c246cd77a24 Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Wed, 18 Mar 2015 14:43:54 -0400 Subject: [PATCH 104/186] Add support for mglyph --- .../jax/output/CommonHTML/autoload/mglyph.js | 94 +++++++++++++++++++ unpacked/jax/output/CommonHTML/jax.js | 2 +- 2 files changed, 95 insertions(+), 1 deletion(-) create mode 100644 unpacked/jax/output/CommonHTML/autoload/mglyph.js diff --git a/unpacked/jax/output/CommonHTML/autoload/mglyph.js b/unpacked/jax/output/CommonHTML/autoload/mglyph.js new file mode 100644 index 000000000..17c5cb643 --- /dev/null +++ b/unpacked/jax/output/CommonHTML/autoload/mglyph.js @@ -0,0 +1,94 @@ +/* -*- Mode: Javascript; indent-tabs-mode:nil; js-indent-level: 2 -*- */ +/* vim: set ts=2 et sw=2 tw=80: */ + +/************************************************************* + * + * MathJax/jax/output/CommonHTML/autoload/mglyph.js + * + * Implements the CommonHTML output for elements. + * + * --------------------------------------------------------------------- + * + * Copyright (c) 2015 The MathJax Consortium + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +MathJax.Hub.Register.StartupHook("CommonHTML Jax Ready",function () { + var VERSION = "2.5.0"; + var MML = MathJax.ElementJax.mml, + CHTML = MathJax.OutputJax.CommonHTML, + LOCALE = MathJax.Localization; + + MML.mglyph.Augment({ + toCommonHTML: function (node,options) { + var values = this.getValues("src","width","height","valign","alt"); + node = this.CHTMLcreateNode(node); + this.CHTMLhandleStyle(node); + this.CHTMLhandleScale(node); + if (values.src === "") { + var index = this.Get("index"); + this.CHTMLgetVariant(); + if (index && this.CHTMLvariant.style) + this.CHTMLhandleText(node,String.fromCharCode(index),this.CHTMLvariant); + } else { + var bbox = this.CHTML; + if (!bbox.img) bbox.img = MML.mglyph.GLYPH[values.src]; + if (!bbox.img) { + bbox.img = MML.mglyph.GLYPH[values.src] = {img: new Image(), status: "pending"}; + bbox.img.img.onload = MathJax.Callback(["CHTMLimgLoaded",this]); + bbox.img.img.onerror = MathJax.Callback(["CHTMLimgError",this]); + bbox.img.img.src = values.src; + MathJax.Hub.RestartAfter(bbox.img.img.onload); + } + if (bbox.img.status !== "OK") { + var err = MML.Error(LOCALE._(["MathML","BadMglyph"],"Bad mglyph: %1",values.src)); + err.data[0].data[0].mathsize = "75%"; + this.Append(err); err.toCommonHTML(node); this.data.pop(); + bbox.combine(err.CHTML,0,0,1); + } else { + var img = MathJax.HTML.addElement(node,"img",{ + isMathJax:true, src:values.src, alt:values.alt, title:values.alt + }); + var w = bbox.img.img.width/CHTML.em, h = bbox.img.img.height/CHTML.em; + if (values.width !== "") img.style.width = CHTML.Em(CHTML.length2em(values.width,w)); + if (values.height !== "") img.style.height = CHTML.Em(CHTML.length2em(values.height,h)); + // + // Warning: causes page reflows + // + bbox.w = bbox.r = img.offsetWidth/CHTML.em; bbox.h = bbox.t = img.offsetHeight/CHTML.em; + if (values.valign) { + bbox.d = bbox.b = -CHTML.length2em(values.valign,bbox.h); + img.style.verticalAlign = CHTML.Em(-bbox.d); + bbox.h -= bbox.d; bbox.t = bbox.h; + } + } + } + this.CHTMLhandleSpace(node); + this.CHTMLhandleBBox(node); + this.CHTMLhandleColor(node); + return node; + }, + CHTMLimgLoaded: function (event,status) { + if (typeof(event) === "string") status = event; + this.CHTML.img.status = (status || "OK"); + }, + CHTMLimgError: function () {this.CHTML.img.img.onload("error")} + },{ + GLYPH: {} // global list of all loaded glyphs + }); + + MathJax.Hub.Startup.signal.Post("CommonHTML mglyph Ready"); + MathJax.Ajax.loadComplete(CHTML.autoloadDir+"/mglyph.js"); +}); + diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index 353bb5ab5..67767bb43 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -2297,7 +2297,7 @@ /********************************************************/ MML.ms.Augment({toCommonHTML: MML.mbase.CHTMLautoload}); -// MML.mglyph.Augment({toCommonHTML: MML.mbase.CHTMLautoload}); + MML.mglyph.Augment({toCommonHTML: MML.mbase.CHTMLautoload}); // MML.menclose.Augment({toCommonHTML: MML.mbase.CHTMLautoload}); // MML.maction.Augment({toCommonHTML: MML.mbase.CHTMLautoload}); // MML.mmultiscripts.Augment({toCommonHTML: MML.mbase.CHTMLautoload}); From fff2255baedc14f33e885dabae68a212ac6e6605 Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Wed, 18 Mar 2015 14:54:33 -0400 Subject: [PATCH 105/186] Adjsut merror bounding box to match default CSS. --- unpacked/jax/output/CommonHTML/jax.js | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index 67767bb43..fc4ea494c 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -1610,6 +1610,26 @@ /********************************************************/ + MML.merror.Augment({ + toCommonHTML: function (node) { + node = this.CHTMLdefaultNode(node); + var bbox = this.CHTML; + // + // Adjust for font-size: 90% + // + bbox.rescale(.9); + // + // Adjust for padding and border + // + bbox.h += 3/CHTML.em; if (bbox.h > bbox.t) bbox.t = bbox.h; + bbox.d += 3/CHTML.em; if (bbox.d > bbox.b) bbox.b = bbox.d; + bbox.w += 8/CHTML.em; bbox.r = bbox.w; bbox.l = 0; + return node; + } + }); + + /********************************************************/ + MML.mspace.Augment({ toCommonHTML: function (node) { node = this.CHTMLcreateNode(node); From e24c7996fe2af3fb0ed9bebde9c89f3d6c7122b5 Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Wed, 18 Mar 2015 17:05:11 -0400 Subject: [PATCH 106/186] Fix bboxes (again) when mathsize is used, and fix the ID's when zooming. --- unpacked/jax/output/CommonHTML/jax.js | 47 +++++++++++++-------------- 1 file changed, 22 insertions(+), 25 deletions(-) diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index fc4ea494c..39c69f198 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -1004,7 +1004,8 @@ if (this.L) this.L *= scale; if (this.R) this.R *= scale; }, - combine: function (cbox,x,y,scale) { + combine: function (cbox,x,y) { + scale = cbox.rscale; if (x + scale*cbox.r > this.r) this.r = x + scale*cbox.r; if (x + scale*cbox.l < this.l) this.l = x + scale*cbox.l; if (x + scale*(cbox.w+(cbox.L||0)+(cbox.R||0)) > this.w) @@ -1093,7 +1094,7 @@ } if (!options.noBBox) { var bbox = this.CHTML, cbox = child.CHTML; - bbox.combine(cbox,bbox.w,0,1); + bbox.combine(cbox,bbox.w,0); if (cbox.ic) {bbox.ic = cbox.ic} else {delete bbox.ic} if (cbox.skew) bbox.skew = cbox.skew; } @@ -1154,13 +1155,13 @@ if (!this.CHTML) this.CHTML = {}; this.CHTML = CHTML.BBOX.zero(); if (this.href) node = HTML.addElement(node,"a",{href:this.href, isMathJax:true}); - if (!this.CHTMLnodeID) {this.CHTMLnodeID = CHTML.GetID()}; - var id = (this.id || "MJXc-Node-"+this.CHTMLnodeID); + if (!this.CHTMLnodeID) this.CHTMLnodeID = CHTML.GetID(); + var id = (this.id || "MJXc-Node-"+this.CHTMLnodeID)+CHTML.idPostfix; return this.CHTMLhandleAttributes(HTML.addElement(node,"mjx-"+this.type,{id:id})); }, CHTMLnodeElement: function () { if (!this.CHTMLnodeID) {return null} - return document.getElementById(this.id||"MJXc-Node-"+this.CHTMLnodeID); + return document.getElementById((this.id||"MJXc-Node-"+this.CHTMLnodeID)+CHTML.idPostfix); }, CHTMLhandleAttributes: function (node) { @@ -1199,10 +1200,7 @@ if (this.removedStyles && this.removedStyles.fontSize && !values.fontsize) values.fontsize = this.removedStyles.fontSize; if (values.fontsize && !this.mathsize) values.mathsize = values.fontsize; - if (values.mathsize !== 1) { - this.CHTML.mscale = CHTML.length2em(values.mathsize); - scale *= this.CHTML.mscale; - } + if (values.mathsize !== 1) scale *= CHTML.length2em(values.mathsize); this.CHTML.scale = scale; pscale = this.CHTML.rscale = scale/pscale; if (Math.abs(pscale-1) < .001) pscale = 1; if (node && pscale !== 1) node.style.fontSize = CHTML.Percent(pscale); @@ -1224,7 +1222,6 @@ CHTMLhandleBBox: function (node) { var BBOX = this.CHTML, style = node.style; - if (BBOX.mscale != null && BBOX.mscale !== 1) BBOX.rescale(BBOX.mscale); if (!this.style) return; // ### FIXME: adjust for width, height, vertical-align? for (var i = 0, m = CHTML.BBOX.styleAdjust.length; i < m; i++) { @@ -1687,7 +1684,7 @@ node.style.marginTop = CHTML.Em(h-STRUTHEIGHT); node.style.padding = "0 "+CHTML.Em(w)+" "+CHTML.Em(d)+" 0"; var bbox = CHTML.BBOX({w:w, h:h, d:d, l:0, r:w, t:h, b:d}); - bbox.combine(cbox,x,y,1); + bbox.combine(cbox,x,y); bbox.w = w; bbox.h = h; bbox.d = d; this.CHTML = bbox; return node.parentNode; @@ -1895,7 +1892,7 @@ var node = (i === this.base ? base : i === this.over ? over : under); node.style.paddingLeft = CHTML.Em((boxes[i].x-dx)/scale); } - BBOX.combine(boxes[i],boxes[i].x-dx,boxes[i].y,scale); + BBOX.combine(boxes[i],boxes[i].x-dx,boxes[i].y); } } this.CHTML = BBOX; @@ -1940,7 +1937,7 @@ for (var i = 0, m = this.data.length; i < m; i++) boxes[i] = this.CHTMLbboxFor(i); var bbox = boxes[this.base], sbox = boxes[this.sub], Sbox = boxes[this.sup]; var sscale = (sub ? sbox.rscale : 1), Sscale = (sup ? Sbox.rscale : 1); - BBOX.combine(bbox,0,0,1); + BBOX.combine(bbox,0,0); // // Get initial values for parameters // @@ -1968,7 +1965,7 @@ v = Math.max(v,CHTML.TEX.sub1,sscale*sbox.h-(4/5)*ex,values.subscriptshift); sub.style.verticalAlign = CHTML.Em(-v/sscale); sub.style.paddingRight = CHTML.Em(s/sscale); - BBOX.combine(sbox,x,-v,sscale); + BBOX.combine(sbox,x,-v); } } else { if (!sub) { @@ -1977,7 +1974,7 @@ sup.style.verticalAlign = CHTML.Em(u/Sscale); sup.style.paddingLeft = CHTML.Em(delta/Sscale); sup.style.paddingRight = CHTML.Em(s/Sscale); - BBOX.combine(Sbox,x+delta,u,Sscale); + BBOX.combine(Sbox,x+delta,u); } else { v = Math.max(v,CHTML.TEX.sub2); var t = CHTML.TEX.rule_thickness; @@ -1993,8 +1990,8 @@ sup.style.paddingLeft = CHTML.Em(delta/Sscale); sup.style.paddingRight = CHTML.Em(s/Sscale); stack.style.verticalAlign = CHTML.Em(-v); - BBOX.combine(Sbox,x+delta,u,Sscale); - BBOX.combine(sbox,x,-v,sscale); + BBOX.combine(Sbox,x+delta,u); + BBOX.combine(sbox,x,-v); } } BBOX.clean(); @@ -2043,9 +2040,9 @@ if (u) num.style.verticalAlign = CHTML.Em(u/nscale); if (v) denom.style.verticalAlign = CHTML.Em(v/dscale); bevel.style.marginLeft = bevel.style.marginRight = CHTML.Em(-delta/2); - BBOX.combine(nbox,0,u,nscale); - BBOX.combine(bbox,nscale*nbox.w-delta/2,0,nscale); - BBOX.combine(dbox,nscale*nbox.w+bbox.w-delta,v,dscale); + BBOX.combine(nbox,0,u); + BBOX.combine(bbox,nscale*nbox.w-delta/2,0); + BBOX.combine(dbox,nscale*nbox.w+bbox.w-delta,v); BBOX.clean(); } else { if (isDisplay) {u = CHTML.TEX.num1; v = CHTML.TEX.denom1} @@ -2068,8 +2065,8 @@ // // Determine the new bounding box and place the parts // - BBOX.combine(nbox,0,u,nscale); - BBOX.combine(dbox,0,-v,dscale); + BBOX.combine(nbox,0,u); + BBOX.combine(dbox,0,-v); BBOX.clean(); u -= nscale*nbox.d + a + t/2; v -= dscale*dbox.h - a + t/2; if (u > 0) num.style.paddingBottom = CHTML.Em(u/nscale); @@ -2115,8 +2112,8 @@ base.style.borderTop = CHTML.Em(T)+" solid"; sqrt.style.paddingTop = CHTML.Em(2*t-T); // use wider line, but don't affect height bbox.h += q + 2*t; - BBOX.combine(sbox,x,H-sbox.h,1); - BBOX.combine(bbox,x+sbox.w,0,1); + BBOX.combine(sbox,x,H-sbox.h); + BBOX.combine(bbox,x+sbox.w,0); BBOX.clean(); return node; }, @@ -2138,7 +2135,7 @@ if (dx > w) root.firstChild.style.paddingLeft = CHTML.Em(dx-w); dx -= sbox.offset/scale; root.style.width = CHTML.Em(dx); - BBOX.combine(bbox,0,h,scale); + BBOX.combine(bbox,0,h); return dx*scale; }, CHTMLrootHeight: function (bbox,sbox,scale) { From a4872ff48d9da4c4cd24c3a04a0b506d08e3c52b Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Wed, 18 Mar 2015 17:19:59 -0400 Subject: [PATCH 107/186] Handle HoverBBox (modulo getting em size mesurements) --- unpacked/jax/output/CommonHTML/jax.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index 39c69f198..cf323d8b7 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -365,9 +365,9 @@ }, getHoverSpan: function (jax,math) {return jax.root.CHTMLnodeElement()}, getHoverBBox: function (jax,span,math) { -// var bbox = span.CHTML, em = jax.CHTML.outerEm; -// var BBOX = {w:bbox.w*em, h:bbox.h*em, d:bbox.d*em}; -// if (bbox.width) {BBOX.width = bbox.width} + var bbox = jax.root.CHTML, em = CHTML.em; //jax.CHTML.outerEm; + var BBOX = {w:bbox.w*em, h:bbox.h*em, d:bbox.d*em}; + if (bbox.width) {BBOX.width = bbox.width} return BBOX; }, From a659ffd62d5d00dce5bc397eb712a365d3cd3161 Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Thu, 19 Mar 2015 17:02:48 -0400 Subject: [PATCH 108/186] Add mmultiscript support --- .../CommonHTML/autoload/mmultiscripts.js | 272 ++++++++++++++++++ unpacked/jax/output/CommonHTML/jax.js | 13 +- 2 files changed, 280 insertions(+), 5 deletions(-) create mode 100644 unpacked/jax/output/CommonHTML/autoload/mmultiscripts.js diff --git a/unpacked/jax/output/CommonHTML/autoload/mmultiscripts.js b/unpacked/jax/output/CommonHTML/autoload/mmultiscripts.js new file mode 100644 index 000000000..ebaa2ccb8 --- /dev/null +++ b/unpacked/jax/output/CommonHTML/autoload/mmultiscripts.js @@ -0,0 +1,272 @@ +/* -*- Mode: Javascript; indent-tabs-mode:nil; js-indent-level: 2 -*- */ +/* vim: set ts=2 et sw=2 tw=80: */ + +/************************************************************* + * + * MathJax/jax/output/CommonHTML/autoload/mmultiscripts.js + * + * Implements the CommonHTML output for elements. + * + * --------------------------------------------------------------------- + * + * Copyright (c) 2015 The MathJax Consortium + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +MathJax.Hub.Register.StartupHook("CommonHTML Jax Ready",function () { + var VERSION = "2.5.0"; + var MML = MathJax.ElementJax.mml, + HTML = MathJax.HTML, + CHTML = MathJax.OutputJax.CommonHTML; + + MML.mmultiscripts.Augment({ + toCommonHTML: function (node,stretch) { + node = this.CHTMLcreateNode(node); + this.CHTMLhandleStyle(node); + this.CHTMLhandleScale(node); + this.CHTMLgetVariant(); + CHTML.BBOX.empty(this.CHTML); + + // + // Get base node + // + this.CHTMLaddChild(node,0,{type:"mjx-base", noBBox:true, forceChild:true}); + var base = node.firstChild, bbox = this.CHTMLbboxFor(0); + if (bbox.ic) { + bbox.R -= bbox.ic; // remove IC (added by mo and mi) + base.style.marginRight = CHTML.Em(-bbox.ic); + delta = 1.3*bbox.ic + .05; // make faked IC be closer to expeted results + } + + // + // Collect scripts into horizontal boxes and add them into the node + // + var BOX = {}, BBOX = {}; + this.CHTMLgetScripts(BOX,BBOX,stretch); + var sub = BOX.sub, sup = BOX.sup, presub = BOX.presub, presup = BOX.presup; + var sbox = BBOX.sub, Sbox = BBOX.sup, pbox = BBOX.presub, Pbox = BBOX.presup; + this.CHTMLaddBoxes(node,base,BOX); + + // + // Get the initial values for the variables + // + var values = this.getValues("scriptlevel","scriptsizemultiplier"); + var sscale = (this.Get("scriptlevel") < 3 ? values.scriptsizemultiplier : 1); + var ex = CHTML.TEX.x_height, s = CHTML.TEX.scriptspace; + var q = CHTML.TEX.sup_drop * sscale, r = CHTML.TEX.sub_drop * sscale; + var u = bbox.h - q, v = bbox.d + r, delta = 0, p; + var bmml = this.data[this.base]; + if (bmml && (bmml.type === "mi" || bmml.type === "mo")) { + if (bmml.data.join("").length === 1 && bbox.rscale === 1 && !bbox.sH && + !bmml.Get("largeop")) {u = v = 0} + } + values = this.getValues("displaystyle","subscriptshift","superscriptshift","texprimestyle"); + values.subscriptshift = (values.subscriptshift === "" ? 0 : CHTML.length2em(values.subscriptshift)); + values.superscriptshift = (values.superscriptshift === "" ? 0 : CHTML.length2em(values.superscriptshift)); + + var dx = (presub ? s+pbox.w : presup ? s+Pbox.w-delta : 0); + this.CHTML.combine(bbox,dx,0); var x = this.CHTML.w; + + // + // Place the scripts as needed + // + if (!sup && !presup) { + v = Math.max(v,CHTML.TEX.sub1,values.subscriptshift); + if (sub) v = Math.max(v,sbox.h-(4/5)*ex); + if (presub) v = Math.max(v,pbox.h-(4/5)*ex); + if (sub) this.CHTMLplaceSubOnly(sub,sbox,x,v,s); + if (presub) this.CHTMLplacePresubOnly(presub,pbox,v,s); + } else { + if (!sub && !presub) { + p = CHTML.TEX[(values.displaystyle ? "sup1" : (values.texprimestyle ? "sup3" : "sup2"))]; + u = Math.max(u,p,values.superscriptshift); + if (sup) u = Math.max(u,Sbox.d+(1/4)*ex); + if (presup) u = Math.max(u,Pbox.d+(1/4)*ex); + if (sup) this.CHTMLplaceSupOnly(sup,Sbox,x,delta,u,s); + if (presup) this.CHTMLplacePresupOnly(presup,Pbox,delta,u,s); + } else { + v = Math.max(v,CHTML.TEX.sub2); + var t = CHTML.TEX.rule_thickness; + var h = (sbox||pbox).h, d = (Sbox||Pbox).d; + if (presub) h = Math.max(h,pbox.h); + if (presup) d = Math.max(d,Pbox.d); + if ((u - d) - (h - v) < 3*t) { + v = 3*t - u + d + h; q = (4/5)*ex - (u - d); + if (q > 0) {u += q; v -= q} + } + u = Math.max(u,values.superscriptshift); + v = Math.max(v,values.subscriptshift); + if (sup) { + if (sub) {this.CHTMLplaceSubSup(sub,sbox,sup,Sbox,x,delta,u,v,s)} + else {this.CHTMLplaceSupOnly(sup,Sbox,x,delta,u,s)} + } else if (sub) {this.CHTMLplaceSubOnly(sub,sbox,x,v,s)} + if (presup) { + if (presub) {this.CHTMLplacePresubPresup(presub,pbox,presup,Pbox,delta,u,v,s)} + else {this.CHTMLplacePresupOnly(presup,Pbox,delta,u,s)} + } else if (presub) {this.CHTMLplacePresubOnly(presub,pbox,v,s)} + } + } + this.CHTML.clean(); + this.CHTMLhandleSpace(node); + this.CHTMLhandleBBox(node); + this.CHTMLhandleColor(node); +this.CHTMLdrawBBox(node); + return node; + }, + // + // Get the subscript, superscript, presubscript, and presuperscript + // boxes, with proper spacing, and computer their bounding boxes. + // + CHTMLgetScripts: function (BOX,BBOX,stretch) { + var state = {i:1, w:0, BOX:BOX, BBOX:BBOX}, m = this.data.length; + var sub = "sub", sup = "sup"; + while (state.i < m) { + if ((this.data[state.i]||{}).type === "mprescripts") { + state.i++; state.w = 0; + sub = "presub"; sup = "presup"; + } else { + var sbox = this.CHTMLaddScript(sub,state); + var Sbox = this.CHTMLaddScript(sup,state); + var w = Math.max((sbox ? sbox.rscale*sbox.w : 0),(Sbox ? Sbox.rscale*Sbox.w : 0)); + this.CHTMLpadScript(sub,w,sbox,state); + this.CHTMLpadScript(sup,w,Sbox,state); + state.w += w; + } + } + if (BBOX.sub) BBOX.sub.clean(); + if (BBOX.sup) BBOX.sup.clean(); + if (BBOX.presub) BBOX.presub.clean(); + if (BBOX.presup) BBOX.presup.clean(); + }, + // + // Add a script to the proper box, creating the box if needed, + // and padding the box to account for any elements. + // Return the bounding box for the script for later use. + // + CHTMLaddScript: function (type,state) { + var BOX, BBOX, data = this.data[state.i]; + if (data && data.type !== "none") { + BOX = state.BOX[type]; + if (!BOX) { + BOX = state.BOX[type] = HTML.Element("mjx-"+type); + BBOX = state.BBOX[type] = CHTML.BBOX.empty(); + if (state.w) { + BOX.style.paddingLeft = CHTML.Em(state.w); + BBOX.w = BBOX.r = state.w; + } + } + data.toCommonHTML(BOX); + BBOX = data.CHTML; + } + state.i++; + return BBOX; + }, + // + // Add padding to the script box to make match the width of the + // super- or subscript that is above or below it, and adjust the + // bounding box for the script row. If these are pre-scripts, + // right-justify the scripts, otherwise, left-justify them. + // + CHTMLpadScript: function (type,w,bbox,state) { + if (!bbox) bbox = {w:0, fake:1}; + var BBOX = state.BBOX[type], dx = 0, dw = 0; + if (BBOX) { + if (bbox.rscale*bbox.w < w) { + var BOX = state.BOX[type]; dw = w-bbox.rscale*bbox.w; + var space = HTML.Element("mjx-spacer",{style:{width:CHTML.Em(dw)}}); + if (type.substr(0,3) === "pre" && !bbox.fake) { + BOX.insertBefore(space,BOX.lastChild); + dx = dw; dw = 0; + } else { + BOX.appendChild(space); + } + } + if (bbox.fake) {BBOX.w += dx} else {BBOX.combine(bbox,BBOX.w+dx,0)} + BBOX.w += dw; + } + }, + // + // Add the boxes into the main node, creating stacks when needed + // + CHTMLaddBoxes: function (node,base,BOX) { + var sub = BOX.sub, sup = BOX.sup, presub = BOX.presub, presup = BOX.presup; + if (presub && presup) { + var prestack = HTML.Element("mjx-prestack"); node.insertBefore(prestack,base); + prestack.appendChild(presup); prestack.appendChild(presub); + } else { + if (presub) node.insertBefore(presub,base); + if (presup) node.insertBefore(presup,base); + } + if (sub && sup) { + var stack = HTML.addElement(node,"mjx-stack"); + stack.appendChild(sup); stack.appendChild(sub); + } else { + if (sub) node.appendChild(sub); + if (sup) node.appendChild(sup); + } + }, + // + // Handle positioning the various scripts + // + CHTMLplaceSubOnly: function (sub,sbox,x,v,s) { + sub.style.verticalAlign = CHTML.Em(-v); + sub.style.marginRight = CHTML.Em(s); sbox.w += s; + this.CHTML.combine(sbox,x,-v); + }, + CHTMLplaceSupOnly: function (sup,Sbox,x,delta,u,s) { + sup.style.verticalAlign = CHTML.Em(u); + sup.style.paddingLeft = CHTML.Em(delta); + sup.style.paddingRight = CHTML.Em(s); Sbox.w += s; + this.CHTML.combine(Sbox,x+delta,u); + }, + CHTMLplaceSubSup: function (sub,sbox,sup,Sbox,x,delta,u,v,s) { + sub.style.paddingRight = CHTML.Em(s); sbox.w += s; + sup.style.paddingBottom = CHTML.Em(u+v-Sbox.d-sbox.h); + sup.style.paddingLeft = CHTML.Em(delta); + sup.style.paddingRight = CHTML.Em(s); Sbox.w += s; + sup.parentNode.style.verticalAlign = CHTML.Em(-v); + this.CHTML.combine(sbox,x,-v); + this.CHTML.combine(Sbox,x+delta,u); + }, + CHTMLplacePresubOnly: function (presub,pbox,v,s) { + presub.style.verticalAlign = CHTML.Em(-v); + presub.style.marginLeft = CHTML.Em(s); + this.CHTML.combine(pbox,s,-v); + }, + CHTMLplacePresupOnly: function (presup,Pbox,delta,u,s) { + presup.style.verticalAlign = CHTML.Em(u); + presup.style.paddingLeft = CHTML.Em(s); + presup.style.paddingRight = CHTML.Em(-delta); + this.CHTML.combine(Pbox,s,u); + }, + CHTMLplacePresubPresup: function (presub,pbox,presup,Pbox,delta,u,v,s) { + presub.style.paddingLeft = CHTML.Em(s); + presup.style.paddingBottom = CHTML.Em(u+v-Pbox.d-pbox.h); + presup.style.paddingLeft = CHTML.Em(delta+s); + presup.style.paddingRight = CHTML.Em(-delta); + presup.parentNode.style.verticalAlign = CHTML.Em(-v); + this.CHTML.combine(pbox,s,-v); + this.CHTML.combine(Pbox,s+delta,u); + }, + // + // Handle stretchy bases + // + CHTMLstretchH: MML.mbase.CHTMLstretchH, + CHTMLstretchV: MML.mbase.CHTMLstretchV + }); + + MathJax.Hub.Startup.signal.Post("CommonHTML mmultiscripts Ready"); + MathJax.Ajax.loadComplete(CHTML.autoloadDir+"/mmultiscripts.js"); +}); + diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index cf323d8b7..6a7f8e430 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -66,6 +66,8 @@ "mjx-stack > mjx-sup": {display:"block"}, "mjx-stack > mjx-sub": {display:"block"}, + "mjx-prestack > mjx-presup": {display:"block"}, + "mjx-prestack > mjx-presub": {display:"block"}, "mjx-delim-v > mjx-char": {transform:"scale(1)"}, // for Firefox to get horizontal alignment better "mjx-delim-h": {display:"block"}, @@ -1707,7 +1709,7 @@ MML.munderover.Augment({ toCommonHTML: function (node,stretch) { - var values = this.getValues("displaystyle","scriptlevel","accent","accentunder","align"); + var values = this.getValues("displaystyle","accent","accentunder","align"); if (!values.displaystyle && this.data[this.base] != null && this.data[this.base].CoreMO().Get("movablelimits")) return MML.msubsup.prototype.toCommonHTML.call(this,node,stretch); @@ -1905,8 +1907,9 @@ MML.msubsup.Augment({ toCommonHTML: function (node,stretch) { - var values = this.getValues("displaystyle","scriptlevel", - "subscriptshift","superscriptshift","texprimestyle"); + var values = this.getValues( + "displaystyle","subscriptshift","superscriptshift","texprimestyle" + ); // // Get the nodes for base and limits // @@ -2009,7 +2012,7 @@ childNodes:["mjx-numerator","mjx-denominator"], forceChild:true, noBBox:true, minChildren:2 }); - var values = this.getValues("linethickness","displaystyle","scriptlevel", + var values = this.getValues("linethickness","displaystyle", "numalign","denomalign","bevelled"); var isDisplay = values.displaystyle; // @@ -2317,7 +2320,7 @@ MML.mglyph.Augment({toCommonHTML: MML.mbase.CHTMLautoload}); // MML.menclose.Augment({toCommonHTML: MML.mbase.CHTMLautoload}); // MML.maction.Augment({toCommonHTML: MML.mbase.CHTMLautoload}); -// MML.mmultiscripts.Augment({toCommonHTML: MML.mbase.CHTMLautoload}); + MML.mmultiscripts.Augment({toCommonHTML: MML.mbase.CHTMLautoload}); /********************************************************/ From 8dd6d3329a70ccd28810b523e9fc4f924040ac6c Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Thu, 19 Mar 2015 17:58:50 -0400 Subject: [PATCH 109/186] Remove debugging bounding box for mmultiscripts. --- unpacked/jax/output/CommonHTML/autoload/mmultiscripts.js | 1 - 1 file changed, 1 deletion(-) diff --git a/unpacked/jax/output/CommonHTML/autoload/mmultiscripts.js b/unpacked/jax/output/CommonHTML/autoload/mmultiscripts.js index ebaa2ccb8..616e43b08 100644 --- a/unpacked/jax/output/CommonHTML/autoload/mmultiscripts.js +++ b/unpacked/jax/output/CommonHTML/autoload/mmultiscripts.js @@ -121,7 +121,6 @@ MathJax.Hub.Register.StartupHook("CommonHTML Jax Ready",function () { this.CHTMLhandleSpace(node); this.CHTMLhandleBBox(node); this.CHTMLhandleColor(node); -this.CHTMLdrawBBox(node); return node; }, // From 75baf0e3ced641f01e2a28d11626cbe19fde96ac Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Fri, 20 Mar 2015 11:20:04 -0400 Subject: [PATCH 110/186] Add scaling to match surrounding font, add equation chunking, and fix some issues with zooming. --- unpacked/jax/output/CommonHTML/config.js | 12 +- unpacked/jax/output/CommonHTML/jax.js | 357 ++++++++++++++++------- 2 files changed, 258 insertions(+), 111 deletions(-) diff --git a/unpacked/jax/output/CommonHTML/config.js b/unpacked/jax/output/CommonHTML/config.js index 8fbc8e369..d9cb893d7 100644 --- a/unpacked/jax/output/CommonHTML/config.js +++ b/unpacked/jax/output/CommonHTML/config.js @@ -35,8 +35,16 @@ MathJax.OutputJax.CommonHTML = MathJax.OutputJax({ webfontDir: MathJax.OutputJax.fontDir + "/CommonHTML", // fontname added later config: { + matchFontHeight: true, // try to match math font height to surrounding font? scale: 100, minScaleAdjust: 50, // global math scaling factor, and minimum adjusted scale factor mtextFontInherit: false, // to make be in page font rather than MathJax font + undefinedFamily: "STIXGeneral,'Cambria Math','Arial Unicode MS',serif", + + EqnChunk: (MathJax.Hub.Browser.isMobile ? 20: 100), + // number of equations to process before showing them + EqnChunkFactor: 1.5, // chunk size is multiplied by this after each chunk + EqnChunkDelay: 100, // milliseconds to delay between chunks (to let browser + // respond to other events) linebreaks: { automatic: false, // when false, only process linebreak="newline", @@ -46,9 +54,7 @@ MathJax.OutputJax.CommonHTML = MathJax.OutputJax({ // use "container" to compute size from containing element, // use "nn% container" for a portion of the container, // use "nn%" for a portion of the window size - }, - - undefinedFamily: "STIXGeneral,'Cambria Math','Arial Unicode MS',serif" + } } }); diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index 6a7f8e430..981f487ab 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -39,17 +39,32 @@ AFUZZ = .08, HFUZZ = .025, DFUZZ = .025; // adjustments to bounding box of character boxes var STYLES = { - ".MathJax_CHTML_Display": { - "display": "block", + "mjx-chtml": { + display: "inline-block", + "line-height": 0, + "text-indent": 0, + "white-space": "nowrap", + "font-style": "normal", + "font-weight": "normal", + "font-size": "100%", + "font-size-adjust":"none", + "text-indent": 0, + "text-transform": "none", + "letter-spacing": "normal", + "word-spacing": "normal", + "float": "none", + "direction": "ltr", + "word-wrap": "normal", + padding: "1px 0", + }, + ".MJXc-display": { + display: "block", "text-align": "center", "margin": "1em 0" }, "mjx-math": { "display": "inline-block", - "line-height": 0, - "text-indent": 0, - "white-space": "nowrap", "border-collapse":"collapse" }, "mjx-math *": {display:"inline-block", "text-align":"left"}, @@ -117,6 +132,30 @@ "mjx-chartest mjx-char": {display:"inline"}, "mjx-chartest mjx-box": {"padding-top": "500px"}, + ".MJXc-processing": { + visibility: "hidden", position:"fixed", + width: 0, height: 0, overflow:"hidden" + }, + ".MJXc-processed": {display:"none"}, + + "mjx-test": { + display: "block", + "font-style": "normal", + "font-weight": "normal", + "font-size": "100%", + "font-size-adjust":"none", + "text-indent": 0, + "text-transform": "none", + "letter-spacing": "normal", + "word-spacing": "normal", + overflow: "hidden", + height: "1px" + }, + "mjx-ex-box-test": { + position: "absolute", + width:"1px", height:"60ex" + }, + /*********************************/ "mjx-mtable": {"vertical-align":AXISHEIGHT+"em", "margin":"0 .125em"}, @@ -166,15 +205,47 @@ // // Determine pixels per inch // - var div = HTML.addElement(document.body,"div",{style:{width:"5in"}}); + var div = HTML.addElement(document.body,"mjx-block",{style:{display:"block",width:"5in"}}); this.pxPerInch = div.offsetWidth/5; div.parentNode.removeChild(div); + // + // Used in preTranslate to get scaling factors and line width + // + this.TestSpan = HTML.Element("mjx-test",{},[["mjx-ex-box-test"]]); + // // Set up styles and preload web fonts // return AJAX.Styles(this.config.styles,["InitializeCHTML",this]); }, + InitializeCHTML: function () { + this.getDefaultExEm(); + // + // If the defaultEm size is zero, it might be that a web font hasn't + // arrived yet, so try to wait for it, but don't wait too long. + // + if (this.defaultEm) return; + var ready = MathJax.Callback(); + AJAX.timer.start(AJAX,function (check) { + if (check.time(ready)) {HUB.signal.Post(["CommonHTML Jax - no default em size"]); return} + CHTML.getDefaultExEm(); + if (CHTML.defaultEm) {ready()} else {setTimeout(check,check.delay)} + },this.defaultEmDelay,this.defaultEmTimeout); + return ready; + }, + defaultEmDelay: 100, // initial delay when checking for defaultEm + defaultEmTimeout: 1000, // when to stop looking for defaultEm + getDefaultExEm: function () { + // + // Get the default sizes (need styles in place to do this) + // + document.body.appendChild(this.TestSpan); + var style = window.getComputedStyle(this.TestSpan); + this.defaultEm = parseFloat(style.fontSize); + this.defaultEx = this.TestSpan.firstChild.offsetHeight/60; + this.defaultWidth = this.TestSpan.offsetWidth; + document.body.removeChild(this.TestSpan); }, // @@ -200,7 +271,19 @@ preTranslate: function (state) { var scripts = state.jax[this.id], i, m = scripts.length, - script, prev, span, div, jax; + script, prev, node, jax, ex, em; + // + // Get linebreaking information + // + var maxwidth = 100000, relwidth = false, cwidth, + linebreak = this.config.linebreaks.automatic, + width = this.config.linebreaks.width; + if (linebreak) { + relwidth = !!width.match(/^\s*(\d+(\.\d*)?%\s*)?container\s*$/); + if (relwidth) {width = width.replace(/\s*container\s*/,"")} + else {maxwidth = this.defaultWidth} + if (width === "") {width = "100%"} + } // // Loop through the scripts // @@ -210,37 +293,73 @@ // Remove any existing output // prev = script.previousSibling; - if (prev && String(prev.className).match(/^MathJax_CHTML(_Display)?( MathJax_Processing)?$/)) - {prev.parentNode.removeChild(prev)} + if (prev && prev.nodeName.toLowerCase() === "mjx-chtml") + prev.parentNode.removeChild(prev); // - // Add the span, and a div if in display mode, - // then set the role and mark it as being processed + // Add the node for the math and mark it as being processed // jax = script.MathJax.elementJax; if (!jax) continue; jax.CHTML = {display: (jax.root.Get("display") === "block")} - span = div = HTML.Element("span",{ - className:"MathJax_CHTML", id:jax.inputID+"-Frame", isMathJax:true, jaxID:this.id, + node = HTML.Element("mjx-chtml",{ + id:jax.inputID+"-Frame", isMathJax:true, jaxID:this.id, oncontextmenu:EVENT.Menu, onmousedown: EVENT.Mousedown, onmouseover:EVENT.Mouseover, onmouseout:EVENT.Mouseout, onmousemove:EVENT.Mousemove, onclick:EVENT.Click, ondblclick:EVENT.DblClick }); - if (HUB.Browser.noContextMenu) { - span.ontouchstart = TOUCH.start; - span.ontouchend = TOUCH.end; - } if (jax.CHTML.display) { - div = HTML.Element("div",{className:"MathJax_CHTML_Display"}); - div.appendChild(span); + // + // Zoom box requires an outer container to get the positioning right. + // + var NODE = HTML.Element("mjx-chtml",{className:"MJXc-display"}); + NODE.appendChild(node); node = NODE; + } + if (HUB.Browser.noContextMenu) { + node.ontouchstart = TOUCH.start; + node.ontouchend = TOUCH.end; } // - div.className += " MathJax_Processing"; - script.parentNode.insertBefore(div,script); + node.className += " MJXc-processing"; + script.parentNode.insertBefore(node,script); + // + // Add test nodes for determineing scales and linebreak widths + // + script.parentNode.insertBefore(this.TestSpan.cloneNode(true),script); } - /* - * state.CHTMLeqn = state.CHTMLlast = 0; state.CHTMLi = -1; - * state.CHTMLchunk = this.config.EqnChunk; - * state.CHTMLdelay = false; - */ + // + // Determine the scaling factors for each script + // (this only requires one reflow rather than a reflow for each equation) + // + for (i = 0; i < m; i++) { + script = scripts[i]; if (!script.parentNode) continue; + test = script.previousSibling; + jax = script.MathJax.elementJax; if (!jax) continue; + var style = window.getComputedStyle(test); + em = parseFloat(style.fontSize); + ex = test.firstChild.offsetHeight/60; + if (ex === 0 || ex === "NaN") ex = this.defaultEx + node = test; + while (node && node.offsetWidth === 0) node = node.parentNode; + cwidth = (node ? node.offsetWidth : this.defaultWidth); + + scale = (this.config.matchFontHeight ? ex/this.TEX.x_height/em : 1); + scale = Math.floor(Math.max(this.config.minScaleAdjust/100,scale)*this.config.scale); + jax.CHTML.scale = scale/100; jax.CHTML.fontSize = scale+"%"; + jax.CHTML.outerEm = em; jax.CHTML.em = this.em = em * scale/100; + jax.CHTML.ex = ex; jax.CHTML.cwidth = cwidth/this.em; + jax.CHTML.lineWidth = (linebreak ? this.length2em(width,maxwidth/this.em) : maxwidth); + } + // + // Remove the test spans used for determining scales and linebreak widths + // + for (i = 0; i < m; i++) { + script = scripts[i]; if (!script.parentNode) continue; + test = scripts[i].previousSibling; + jax = scripts[i].MathJax.elementJax; if (!jax) continue; + test.parentNode.removeChild(test); + } + state.CHTMLeqn = state.CHTMLlast = 0; state.CHTMLi = -1; + state.CHTMLchunk = this.config.EqnChunk; + state.CHTMLdelay = false; }, /********************************************/ @@ -248,68 +367,96 @@ Translate: function (script,state) { if (!script.parentNode) return; - /* - * // - * // If we are supposed to do a chunk delay, do it - * // - * if (state.CHTMLdelay) { - * state.CHTMLdelay = false; - * HUB.RestartAfter(MathJax.Callback.Delay(this.config.EqnChunkDelay)); - * } - */ + // + // If we are supposed to do a chunk delay, do it + // + if (state.CHTMLdelay) { + state.CHTMLdelay = false; + HUB.RestartAfter(MathJax.Callback.Delay(this.config.EqnChunkDelay)); + } // // Get the data about the math // var jax = script.MathJax.elementJax, math = jax.root, - span = document.getElementById(jax.inputID+"-Frame"), - div = (jax.CHTML.display ? span.parentNode : span); + node = document.getElementById(jax.inputID+"-Frame"); + this.getMetrics(jax); + if (this.scale !== 1) node.style.fontSize = jax.CHTML.fontSize; // // Typeset the math // - this.initCHTML(math,span); - math.setTeXclass(); - try {math.toCommonHTML(span)} catch (err) { - while (span.firstChild) span.removeChild(span.firstChild); + this.initCHTML(math,node); + this.savePreview(script); + try { + math.setTeXclass(); + math.toCommonHTML(node); + } catch (err) { + while (node.firstChild) node.removeChild(node.firstChild); + this.restorePreview(script); throw err; } + this.restorePreview(script); // // Put it in place, and remove the processing marker // - div.className = div.className.split(/ /)[0]; + if (jax.CHTML.display) node = node.parentNode; + node.className = node.className.split(/ /)[0]; // - // Check if we are hiding the math until more is processed + // Hide the math and don't let its preview be removed // - if (this.hideProcessedMath) { - // - // Hide the math and don't let its preview be removed - // - div.className += " MathJax_Processed"; - if (script.MathJax.preview) { - jax.CHTML.preview = script.MathJax.preview; - delete script.MathJax.preview; - } - /* - * // - * // Check if we should show this chunk of equations - * // - * state.CHTMLeqn += (state.i - state.CHTMLi); state.CHTMLi = state.i; - * if (state.CHTMLeqn >= state.CHTMLlast + state.CHTMLchunk) { - * this.postTranslate(state); - * state.CHTMLchunk = Math.floor(state.CHTMLchunk*this.config.EqnChunkFactor); - * state.CHTMLdelay = true; // delay if there are more scripts - * } - */ + node.className += " MJXc-processed"; + if (script.MathJax.preview) { + jax.CHTML.preview = script.MathJax.preview; + delete script.MathJax.preview; + } + // + // Check if we should show this chunk of equations + // + state.CHTMLeqn += (state.i - state.CHTMLi); state.CHTMLi = state.i; + if (state.CHTMLeqn >= state.CHTMLlast + state.CHTMLchunk) { + this.postTranslate(state); + state.CHTMLchunk = Math.floor(state.CHTMLchunk*this.config.EqnChunkFactor); + state.CHTMLdelay = true; // delay if there are more scripts } }, - initCHTML: function (math,span) {}, + initCHTML: function (math,node) {}, + + // + // MathML previews can contain the same ID's as the HTML output, + // which confuses HTMLspanElement(), so remove the preview temporarily + // and restore it after typesetting the math. + // + savePreview: function (script) { + var preview = script.MathJax.preview; + if (preview && preview.parentNode) { + script.MathJax.tmpPreview = document.createElement("span"); + preview.parentNode.replaceChild(script.MathJax.tmpPreview,preview); + } + }, + restorePreview: function (script) { + var tmpPreview = script.MathJax.tmpPreview; + if (tmpPreview) { + tmpPreview.parentNode.replaceChild(script.MathJax.preview,tmpPreview); + delete script.MathJax.tmpPreview; + } + }, + // + // Get the jax metric information + // + getMetrics: function(jax) { + var data = jax.CHTML; + this.em = data.em; + this.outerEm = data.outerEm; + this.scale = data.scale; + this.cwidth = data.cwidth; + this.linebreakWidth = data.lineWidth; + }, /********************************************/ postTranslate: function (state) { var scripts = state.jax[this.id]; - if (!this.hideProcessedMath) return; for (var i = 0, m = scripts.length; i < m; i++) { var script = scripts[i]; if (script && script.MathJax.elementJax) { @@ -329,45 +476,43 @@ } } - /* - * // - * // Reveal this chunk of math - * // - * for (var i = state.CHTMLlast, m = state.CHTMLeqn; i < m; i++) { - * var script = scripts[i]; - * if (script && script.MathJax.elementJax) { - * // - * // Remove the processed marker - * // - * script.previousSibling.className = script.previousSibling.className.split(/ /)[0]; - * var data = script.MathJax.elementJax.CHTML; - * // - * // Remove the preview, if any - * // - * if (data.preview) { - * data.preview.innerHTML = ""; - * script.MathJax.preview = data.preview; - * delete data.preview; - * } - * } - * } - * // - * // Save our place so we know what is revealed - * // - * state.CHTMLlast = state.CHTMLeqn; - */ + // + // Reveal this chunk of math + // + for (var i = state.CHTMLlast, m = state.CHTMLeqn; i < m; i++) { + var script = scripts[i]; + if (script && script.MathJax.elementJax) { + // + // Remove the processed marker + // + script.previousSibling.className = script.previousSibling.className.split(/ /)[0]; + var data = script.MathJax.elementJax.CHTML; + // + // Remove the preview, if any + // + if (data.preview) { + data.preview.innerHTML = ""; + script.MathJax.preview = data.preview; + delete data.preview; + } + } + } + // + // Save our place so we know what is revealed + // + state.CHTMLlast = state.CHTMLeqn; }, /********************************************/ getJaxFromMath: function (math) { - if (math.parentNode.className === "MathJax_CHTML_Display") {math = math.parentNode} + if (math.parentNode.className === "MJXc-display") math = math.parentNode; do {math = math.nextSibling} while (math && math.nodeName.toLowerCase() !== "script"); return HUB.getJaxFor(math); }, getHoverSpan: function (jax,math) {return jax.root.CHTMLnodeElement()}, getHoverBBox: function (jax,span,math) { - var bbox = jax.root.CHTML, em = CHTML.em; //jax.CHTML.outerEm; + var bbox = jax.root.CHTML, em = jax.CHTML.outerEm; var BBOX = {w:bbox.w*em, h:bbox.h*em, d:bbox.d*em}; if (bbox.width) {BBOX.width = bbox.width} return BBOX; @@ -377,26 +522,23 @@ // // Re-render at larger size // - span.className = "MathJax"; - this.idPostfix = "-zoom"; jax.root.toCommonHTML(span,span); this.idPostfix = ""; + this.getMetrics(jax); + var node = HTML.addElement(span,"mjx-chtml"); + this.idPostfix = "-zoom"; jax.root.toCommonHTML(node); this.idPostfix = ""; // // Get height and width of zoomed math and original math // - span.style.position = "absolute"; - var zW = span.offsetWidth, zH = span.offsetHeight, - mH = math.offsetHeight, mW = math.offsetWidth; - if (mW === 0) {mW = math.parentNode.offsetWidth}; // IE7 gets mW == 0? - span.style.position = math.style.position = ""; + node.style.position = "absolute"; + var zW = node.offsetWidth, zH = node.offsetHeight, + mH = math.firstChild.offsetHeight, mW = math.firstChild.offsetWidth; + node.style.position = ""; // return {Y:-EVENT.getBBox(span).h, mW:mW, mH:mH, zW:zW, zH:zH}; }, Remove: function (jax) { - var span = document.getElementById(jax.inputID+"-Frame"); - if (span) { - if (jax.CHTML.display) {span = span.parentNode} - span.parentNode.removeChild(span); - } + var node = document.getElementById(jax.inputID+"-Frame"); + if (node) node.parentNode.removeChild(node); delete jax.CHTML; }, @@ -1393,7 +1535,6 @@ MML.math.Augment({ toCommonHTML: function (node) { node = this.CHTMLdefaultNode(node); - if (this.Get("display") === "block") {node.className += " MJXc-display"} return node; } }); @@ -1699,7 +1840,7 @@ var match = length.match(/width|height|depth/); var size = (match ? this.CHTML[match[0].charAt(0)] : (d ? this.CHTML[d] : 0)); var dimen = (CHTML.length2em(length,size)||0); - if (length.match(/^[-+]/)) dimen += D; + if (length.match(/^[-+]/) && D != null) dimen += D; if (m != null) dimen = Math.max(m,dimen); return dimen; } From d2fd86b75a0d105700809f192754088485dfd11c Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Fri, 20 Mar 2015 13:54:54 -0400 Subject: [PATCH 111/186] If the container's width is 0, also check for max-width before looking at parent element (finds container width better). --- unpacked/jax/output/CommonHTML/jax.js | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index 981f487ab..ce6a4b1e6 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -275,7 +275,7 @@ // // Get linebreaking information // - var maxwidth = 100000, relwidth = false, cwidth, + var maxwidth = 100000, relwidth = false, cwidth = 0, linebreak = this.config.linebreaks.automatic, width = this.config.linebreaks.width; if (linebreak) { @@ -338,8 +338,12 @@ ex = test.firstChild.offsetHeight/60; if (ex === 0 || ex === "NaN") ex = this.defaultEx node = test; - while (node && node.offsetWidth === 0) node = node.parentNode; - cwidth = (node ? node.offsetWidth : this.defaultWidth); + while (node) { + cwidth = node.offsetWidth; if (cwidth) break; + var style = window.getComputedStyle(node); + if (style.maxWidth !== "none") {cwidth = parseFloat(style.maxWidth); break} + node = node.parentNode; + } scale = (this.config.matchFontHeight ? ex/this.TEX.x_height/em : 1); scale = Math.floor(Math.max(this.config.minScaleAdjust/100,scale)*this.config.scale); From 51742a79ccfbaf380bc9a422be6cfacee4e94455 Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Sat, 21 Mar 2015 07:16:17 -0400 Subject: [PATCH 112/186] Copy scaling factors to new bbox in mpadded. --- unpacked/jax/output/CommonHTML/jax.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index ce6a4b1e6..c70565a5a 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -1830,7 +1830,8 @@ node.style.width = 0; node.style.marginTop = CHTML.Em(h-STRUTHEIGHT); node.style.padding = "0 "+CHTML.Em(w)+" "+CHTML.Em(d)+" 0"; - var bbox = CHTML.BBOX({w:w, h:h, d:d, l:0, r:w, t:h, b:d}); + var bbox = CHTML.BBOX({w:w, h:h, d:d, l:0, r:w, t:h, b:d, + scale:this.CHTML.scale, rscale:this.CHTML.rscale}); bbox.combine(cbox,x,y); bbox.w = w; bbox.h = h; bbox.d = d; this.CHTML = bbox; From ed7807ac36d2a46cf4bb975ed7a4a00a90aab5bb Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Sat, 21 Mar 2015 07:16:46 -0400 Subject: [PATCH 113/186] Handle stretchy bases in mmultiscripts --- .../CommonHTML/autoload/mmultiscripts.js | 40 ++++++++++++++----- 1 file changed, 30 insertions(+), 10 deletions(-) diff --git a/unpacked/jax/output/CommonHTML/autoload/mmultiscripts.js b/unpacked/jax/output/CommonHTML/autoload/mmultiscripts.js index 616e43b08..c49710e38 100644 --- a/unpacked/jax/output/CommonHTML/autoload/mmultiscripts.js +++ b/unpacked/jax/output/CommonHTML/autoload/mmultiscripts.js @@ -32,20 +32,28 @@ MathJax.Hub.Register.StartupHook("CommonHTML Jax Ready",function () { MML.mmultiscripts.Augment({ toCommonHTML: function (node,stretch) { - node = this.CHTMLcreateNode(node); - this.CHTMLhandleStyle(node); - this.CHTMLhandleScale(node); - this.CHTMLgetVariant(); + if (!stretch) { + node = this.CHTMLcreateNode(node); + this.CHTMLhandleStyle(node); + this.CHTMLhandleScale(node); + this.CHTMLgetVariant(); + } CHTML.BBOX.empty(this.CHTML); // // Get base node // - this.CHTMLaddChild(node,0,{type:"mjx-base", noBBox:true, forceChild:true}); - var base = node.firstChild, bbox = this.CHTMLbboxFor(0); + var base, bbox; + if (stretch) { + base = node.getElementsByTagName("mjx-base")[0]; + } else { + this.CHTMLaddChild(node,0,{type:"mjx-base", noBBox:true, forceChild:true}); + base = node.firstChild; + } + bbox = this.CHTMLbboxFor(0); if (bbox.ic) { bbox.R -= bbox.ic; // remove IC (added by mo and mi) - base.style.marginRight = CHTML.Em(-bbox.ic); + if (!stretch) base.style.marginRight = CHTML.Em(-bbox.ic); delta = 1.3*bbox.ic + .05; // make faked IC be closer to expeted results } @@ -53,10 +61,10 @@ MathJax.Hub.Register.StartupHook("CommonHTML Jax Ready",function () { // Collect scripts into horizontal boxes and add them into the node // var BOX = {}, BBOX = {}; - this.CHTMLgetScripts(BOX,BBOX,stretch); + this.CHTMLgetScripts(BOX,BBOX,stretch,node); var sub = BOX.sub, sup = BOX.sup, presub = BOX.presub, presup = BOX.presup; var sbox = BBOX.sub, Sbox = BBOX.sup, pbox = BBOX.presub, Pbox = BBOX.presup; - this.CHTMLaddBoxes(node,base,BOX); + if (!stretch) this.CHTMLaddBoxes(node,base,BOX); // // Get the initial values for the variables @@ -127,7 +135,19 @@ MathJax.Hub.Register.StartupHook("CommonHTML Jax Ready",function () { // Get the subscript, superscript, presubscript, and presuperscript // boxes, with proper spacing, and computer their bounding boxes. // - CHTMLgetScripts: function (BOX,BBOX,stretch) { + CHTMLgetScripts: function (BOX,BBOX,stretch,node) { + if (stretch) { + BOX.sub = node.getElementsByTagName("mjx-sub")[0]; + BOX.sup = node.getElementsByTagName("mjx-sup")[0]; + BOX.presub = node.getElementsByTagName("mjx-presub")[0]; + BOX.presup = node.getElementsByTagName("mjx-presup")[0]; + BBOX.sub = this.CHTMLbbox.sub; + BBOX.sup = this.CHTMLbbox.sup; + BBOX.presub = this.CHTMLbbox.presub; + BBOX.presup = this.CHTMLbbox.presup; + return; + } + this.CHTMLbbox = BBOX; // save for when stretched var state = {i:1, w:0, BOX:BOX, BBOX:BBOX}, m = this.data.length; var sub = "sub", sup = "sup"; while (state.i < m) { From ac30932664db49fd0e6aed9cc492d1a3852cf6e5 Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Sat, 21 Mar 2015 08:15:45 -0400 Subject: [PATCH 114/186] Make merror use surrounding font rather than MathJax fonts, and handle size of unknown text properly. --- unpacked/jax/output/CommonHTML/jax.js | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index c70565a5a..be2376832 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -391,14 +391,17 @@ // this.initCHTML(math,node); this.savePreview(script); + this.CHTMLnode = node; try { math.setTeXclass(); math.toCommonHTML(node); } catch (err) { while (node.firstChild) node.removeChild(node.firstChild); + delete this.CHTMLnode; this.restorePreview(script); throw err; } + delete this.CHTMLnode; this.restorePreview(script); // // Put it in place, and remove the processing marker @@ -761,12 +764,12 @@ if (!this.STYLEDTEXT[id]) this.STYLEDTEXT[id] = {className:variant.className||""}; var unknown = this.STYLEDTEXT[id]; if (!unknown["_"+text]) { - var HDW = this.getHDW(text,"",style); + var HDW = this.getHDW(text,variant.className||"",style); var a = (HDW.h-HDW.d)/2+AFUZZ; // ### FIXME: is this really the axis of the surrounding text? unknown["_"+text] = [.8,.2,HDW.w,0,HDW.w,{a:a, A:HDW.h-a, d:HDW.d}]; unknown["_"+text].c = text; } - return {type:"unknown", n:"_"+text, font:unknown, style:style}; + return {type:"unknown", n:"_"+text, font:unknown, style:style, rscale:variant.rscale}; }, // @@ -775,13 +778,13 @@ // WARNING: causes reflow of the page! // getHDW: function (c,name,styles) { - var test1 = HTML.addElement(document.body,"mjx-chartest",{className:name,style:styles},[["mjx-char",{},[c]]]); - var test2 = HTML.addElement(document.body,"mjx-chartest",{className:name,style:styles},[["mjx-char",{},[c,["mjx-box"]]]]); - var em = window.parseFloat(window.getComputedStyle(test1).fontSize); + var test1 = HTML.addElement(CHTML.CHTMLnode,"mjx-chartest",{className:name,style:styles},[["mjx-char",{},[c]]]); + var test2 = HTML.addElement(CHTML.CHTMLnode,"mjx-chartest",{className:name,style:styles},[["mjx-char",{},[c,["mjx-box"]]]]); + var em = CHTML.outerEm; var d = (test2.offsetHeight-500)/em; var w = test1.offsetWidth/em, h = test1.offsetHeight/em - d; - document.body.removeChild(test1); - document.body.removeChild(test2); + CHTML.CHTMLnode.removeChild(test1); + CHTML.CHTMLnode.removeChild(test2); return {h:h, d:d, w:w} }, @@ -824,7 +827,7 @@ if (bbox.d < C[1]) bbox.b = bbox.d = C[1]; if (bbox.l > bbox.w+C[3]) bbox.l = bbox.w+C[3]; if (bbox.r < bbox.w+C[4]) bbox.r = bbox.w+C[4]; - bbox.w += C[2]; + bbox.w += C[2] * (item.rscale||1); if (m == 1 && font.skew && font.skew[item.n]) bbox.skew = font.skew[item.n]; if (C[5].rfix) this.flushText(node,state).style.marginRight = CHTML.Em(C[5].rfix/1000); }, @@ -1735,8 +1738,10 @@ MML.mtext.Augment({ CHTMLgetVariant: function () { - if (CHTML.config.mtextFontInherit) { - var variant = {cache:{}, fonts:[], className:"MJXc-font-inherit", style:{}}; + if (CHTML.config.mtextFontInherit || this.Parent().type === "merror") { + var scale = 1/CHTML.scale; + var variant = {cache:{}, fonts:[], className:"MJXc-font-inherit", rscale:scale, + style:{"font-size":CHTML.Percent(scale)}}; var name = this.Get("mathvariant"); if (name.match(/bold/)) variant.style["font-weight"] = "bold"; if (name.match(/italic/)) variant.style["font-style"] = "italic"; From 9b0378af9b59b6e0bc50f2bd2efc3cf3f8f3c9f6 Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Tue, 24 Mar 2015 12:30:15 -0400 Subject: [PATCH 115/186] Don't need SCRIPTFACTOR or MJXc-script CSS now that the scaling is done explicitly. --- unpacked/jax/output/CommonHTML/jax.js | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index be2376832..34c990f8c 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -33,8 +33,7 @@ var EVENT, TOUCH, HOVER; // filled in later - var SCRIPTFACTOR = Math.sqrt(1/2), - AXISHEIGHT = .25, + var AXISHEIGHT = .25, STRUTHEIGHT = 1, AFUZZ = .08, HFUZZ = .025, DFUZZ = .025; // adjustments to bounding box of character boxes @@ -117,7 +116,6 @@ "mjx-line": {display:"block", width:"100%", "border-top":"0 solid"}, "mjx-strut": {width:0, "padding-top":STRUTHEIGHT+"em"}, - ".MJXc-script": {"font-size":SCRIPTFACTOR+"em"}, ".MJXc-space1": {"margin-left":".167em"}, ".MJXc-space2": {"margin-left":".222em"}, ".MJXc-space3": {"margin-left":".278em"}, From 9a5928be6e4d913550aad10a64b04ac300ccda3b Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Sat, 28 Mar 2015 11:39:45 -0400 Subject: [PATCH 116/186] Add fuller support for mtables and their attributes. --- .../jax/output/CommonHTML/autoload/mtable.js | 569 ++++++++++++++++++ unpacked/jax/output/CommonHTML/jax.js | 103 +--- 2 files changed, 590 insertions(+), 82 deletions(-) create mode 100644 unpacked/jax/output/CommonHTML/autoload/mtable.js diff --git a/unpacked/jax/output/CommonHTML/autoload/mtable.js b/unpacked/jax/output/CommonHTML/autoload/mtable.js new file mode 100644 index 000000000..216fdf5b7 --- /dev/null +++ b/unpacked/jax/output/CommonHTML/autoload/mtable.js @@ -0,0 +1,569 @@ +/* -*- Mode: Javascript; indent-tabs-mode:nil; js-indent-level: 2 -*- */ +/* vim: set ts=2 et sw=2 tw=80: */ + +/************************************************************* + * + * MathJax/jax/output/CommonHTML/autoload/mtable.js + * + * Implements the CommonHTML output for elements. + * + * --------------------------------------------------------------------- + * + * Copyright (c) 2015 The MathJax Consortium + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +MathJax.Hub.Register.StartupHook("CommonHTML Jax Ready",function () { + var VERSION = "2.5.0"; + var MML = MathJax.ElementJax.mml, + HTML = MathJax.HTML, CONFIG = MathJax.Hub.config, + CHTML = MathJax.OutputJax.CommonHTML, + SPLIT = MathJax.Hub.SplitList; + + var LABEL = -1, + BIGDIMEN = 1000000; + + MML.mtable.Augment({ + toCommonHTML: function (node) { + // + // Create the table nodes and put them in a table + // (so that its bottom is on the baseline, rather than aligned on the top row) + // + var state = {rows:[], labels:[], labeled: false}; + node = this.CHTMLdefaultNode(node,{noBBox:true, childOptions:state}); + var table = HTML.Element("mjx-table"); + while (node.firstChild) table.appendChild(node.firstChild); + node.appendChild(table); + // + // Get the table attributes + // + var values = this.getValues("columnalign","rowalign","columnspacing","rowspacing", + "columnwidth","equalcolumns","equalrows", + "columnlines","rowlines","frame","framespacing", + "align","width","side","minlabelspacing","useHeight"); + // + // Create the table + // + this.CHTMLgetBoxSizes(values,state); + this.CHTMLgetAttributes(values,state); + if (values.equalrows) { + state.HD = true; + state.HH = Math.max.apply(Math,state.H); + state.DD = Math.max.apply(Math,state.D); + } + this.CHTMLadjustCells(values,state); + if (values.frame) table.style.border = "1px "+values.frame; + this.CHTMLalignV(values,state,node); + this.CHTMLcolumnWidths(values,state,node); + this.CHTMLstretchCells(values,state); + if (state.labeled) this.CHTMLaddLabels(values,state,node,table); + // + // Set the bounding box (ignores overlapping outside of the table) + // + var BBOX = this.CHTML; + BBOX.w = BBOX.r = state.R; + BBOX.h = BBOX.t = state.T-state.B; + BBOX.d = BBOX.b = state.B; + if (!values.frame && !BBOX.pwidth) { + node.style.padding = "0 "+CHTML.Em(1/6); + BBOX.L = BBOX.R = 1/6; + } + // + // Add any needed space and color + // + this.CHTMLhandleSpace(node); + this.CHTMLhandleBBox(node); + this.CHTMLhandleColor(node); + // + // Return the completed node + // + return node; + }, + // + // Get the natural height, depth, and widths of the rows and columns + // + CHTMLgetBoxSizes: function (values,state) { + var LH = CHTML.FONTDATA.lineH * values.useHeight, + LD = CHTML.FONTDATA.lineD * values.useHeight; + var H = [], D = [], W = [], J = -1; + for (var i = 0, m = this.data.length; i < m; i++) { + var row = this.data[i], s = (row.type === "mtr" ? 0 : LABEL); + H[i] = LH; D[i] = LD; + for (var j = s, M = row.data.length + s; j < M; j++) { + if (W[j] == null) {W[j] = -BIGDIMEN; if (j > J) J = j} + var cbox = row.data[j-s].CHTML; + if (cbox.h > H[i]) H[i] = cbox.h; + if (cbox.d > D[i]) D[i] = cbox.d; + if (cbox.w > W[j]) W[j] = cbox.w; + } + } + state.H = H; state.D = D; state.W = W, state.J = J; + }, + // + // Pad the spacing and alignment attributes to match the size of the table + // + CHTMLgetAttributes: function (values,state) { + var CSPACE = SPLIT(values.columnspacing), + RSPACE = SPLIT(values.rowspacing), + CALIGN = SPLIT(values.columnalign), + RALIGN = SPLIT(values.rowalign), + CLINES = SPLIT(values.columnlines), + RLINES = SPLIT(values.rowlines), + CWIDTH = SPLIT(values.columnwidth), + RCALIGN = [], i, m, J = state.J, M = state.rows.length-1; + for (i = 0, m = CSPACE.length; i < m; i++) CSPACE[i] = CHTML.length2em(CSPACE[i]); + for (i = 0, m = RSPACE.length; i < m; i++) RSPACE[i] = CHTML.length2em(RSPACE[i]); + while (CSPACE.length < J) CSPACE.push(CSPACE[CSPACE.length-1]); + while (CALIGN.length <= J) CALIGN.push(CALIGN[CALIGN.length-1]); + while (CLINES.length < J) CLINES.push(CLINES[CLINES.length-1]); + while (CWIDTH.length <= J) CWIDTH.push(CWIDTH[CWIDTH.length-1]); + while (RSPACE.length < M) RSPACE.push(RSPACE[RSPACE.length-1]); + while (RALIGN.length <= M) RALIGN.push(RALIGN[RALIGN.length-1]); + while (RLINES.length < M) RLINES.push(RLINES[RLINES.length-1]); + CALIGN[LABEL] = (values.side.substr(0,1) === "l" ? "left" : "right"); + // + // Override aligment data based on row-specific attributes + // + for (i = 0; i <= M; i++) { + var row = this.data[i]; RCALIGN[i] = []; + if (row.rowalign) RALIGN[i] = row.rowalign; + if (row.columnalign) { + RCALIGN[i] = SPLIT(row.columnalign); + while (RCALIGN[i].length <= J) RCALIGN[i].push(RCALIGN[i][RCALIGN[i].length-1]); + } + } + // + // Handle framespacing + // + var FSPACE = SPLIT(values.framespacing); + if (FSPACE.length != 2) FSPACE = SPLIT(this.defaults.framespacing); + FSPACE[0] = Math.max(0,CHTML.length2em(FSPACE[0])); + FSPACE[1] = Math.max(0,CHTML.length2em(FSPACE[1])); + // + // Pad arrays so that final column can be treated as all the others + // + if (values.frame === MML.LINES.NONE) { + delete values.frame; + CSPACE[J] = RSPACE[M] = 0; + } else { + CSPACE[J] = FSPACE[0]; RSPACE[M] = FSPACE[1]; + } + CLINES[J] = RLINES[M] = MML.LINES.NONE; + // + // Save everything in the state + // + state.CSPACE = CSPACE; state.RSPACE = RSPACE; + state.CALIGN = CALIGN; state.RALIGN = RALIGN; + state.CLINES = CLINES; state.RLINES = RLINES; + state.CWIDTH = CWIDTH; state.RCALIGN = RCALIGN; + state.FSPACE = FSPACE; + }, + // + // Add styles to cells to handle borders, spacing, alignment, etc. + // + CHTMLadjustCells: function(values,state) { + var ROWS = state.rows, H = state.H, D = state.D, + CSPACE = state.CSPACE, CLINES = state.CLINES, + RSPACE = state.RSPACE, RLINES = state.RLINES, + CALIGN = state.CALIGN, RALIGN = state.RALIGN, + RCALIGN = state.RCALIGN; + CSPACE[state.J] *= 2; RSPACE[ROWS.length-1] *= 2; // since halved below + var LH = CHTML.FONTDATA.lineH * values.useHeight, + LD = CHTML.FONTDATA.lineD * values.useHeight; + var T = "0", B, R, L, border, HD, cbox, align; + if (values.frame) T = CHTML.Em(state.FSPACE[1]); + for (var i = 0, m = ROWS.length; i < m; i++) { + var row = ROWS[i], rdata = this.data[i]; + // + // Space and borders between rows + // + B = RSPACE[i]/2; border = F = null; L = "0"; + if (RLINES[i] !== MML.LINES.NONE) { + border = "1px "+RLINES[i]; + B -= 1/CHTML.em/2; + } + B = CHTML.Em(Math.max(0,B)); + // + // Frame space for initial cell + // + if (values.frame) L = CHTML.Em(state.FSPACE[0]); + // + // The cells in the row + // + for (var j = 0, M = row.length; j < M; j++) { + var s = (rdata.type === "mtr" ? 0 : LABEL); + cell = row[j].style; cbox = rdata.data[j-s].CHTML; + // + // Space and borders between columns + // + R = CSPACE[j]/2; + if (CLINES[j] !== MML.LINES.NONE) { + cell.borderRight = "1px "+CLINES[j]; + R -= 1/CHTML.em/2; + } + R = CHTML.Em(Math.max(0,R)); + cell.padding = T+" "+R+" "+B+" "+L; + if (border) cell.borderBottom = border; + L = R; + // + // Handle vertical and horizontal alignment + // + align = (rdata.data[j-s].rowalign||this.data[i].rowalign||RALIGN[i]); + align = ({top:"top", bottom:"bottom", center:"middle"})[align]; + if (align) cell.verticalAlign = align; + align = (rdata.data[j-s].columnalign||RCALIGN[i][j]||CALIGN[j]); + if (align !== MML.ALIGN.CENTER) cell.textAlign = align; + // + // Equal heights forced by adding an element of the proper size + // (setting style.height seems to work very strangely) + // + if (state.HD && j === 0) { + HTML.addElement(row[j].parentNode,"mjx-mtd",{}, + [["mjx-box",{style:{ + height:CHTML.Em(state.HH+state.DD), + "vertical-align":CHTML.Em(-state.DD) + }}]] + ); + } + // + // Pad cells that are too short + // + cell = row[j].firstChild.style; + if (cbox.h < LH) cell.marginTop = CHTML.Em(LH-cbox.h); + if (cbox.d < LD) cell.marginBottom = CHTML.Em(LD-cbox.d); + } + T = B; + } + CSPACE[state.J] /= 2; RSPACE[ROWS.length-1] /= 2; // back to normal + }, + // + // Align the table vertically according to the align attribute + // + CHTMLalignV: function (values,state,node) { + var n, M = state.rows.length, H = state.H, D = state.D, RSPACE = state.RSPACE; + // + // Get alignment type and row number + // + if (typeof(values.align) !== "string") values.align = String(values.align); + if (values.align.match(/(top|bottom|center|baseline|axis)( +(-?\d+))?/)) { + n = parseInt(RegExp.$3||"0"); + values.align = RegExp.$1 + if (n < 0) n += state.rows.length + 1; + if (n > M || n <= 0) n = null; + } else { + values.align = this.defaults.align; + } + // + // Get table height and baseline offset + // + var T = 0, B = 0, a = CHTML.TEX.axis_height; + if (values.frame) {T = state.FSPACE[1] + 2/CHTML.em; B = 1/CHTML.em} + var h = state.HH, d = state.DD; + for (var i = 0; i < M; i++) { + if (!state.HD) {h = H[i]; d = D[i]} + T += h + d + RSPACE[i]; + if (n) { + if (i === n-1) { + B += ({top:h+d, bottom:0, center:(h+d)/2, + baseline:d, axis:a+d})[values.align] + RSPACE[i]; + } + if (i >= n) B += h + d + RSPACE[i]; + } + } + if (!n) B = ({top:T, bottom:0, center:T/2, baseline:T/2, axis:T/2-a})[values.align]; + // + // Place the node and save the values + // + if (B) node.style.verticalAlign = CHTML.Em(-B); + state.T = T; state.B = B; + }, + // + // Determine column widths and set the styles for the columns + // + CHTMLcolumnWidths: function (values,state,node) { + var CWIDTH = state.CWIDTH, CSPACE = state.CSPACE, J = state.J, j; + var WW = 0, setWidths = false, relWidth = values.width.match(/%$/); + var i, m, w; + // + // Handle equal columns by adjusting the CWIDTH array + // + if (values.width !== "auto" && !relWidth) { + WW = Math.max(0,CHTML.length2em(values.width,state.R)); + setWidths = true; + } + if (values.equalcolumns) { + if (relWidth) { + // + // Use percent of total (not perfect, but best we can do) + // + var p = CHTML.Percent(1/(J+1)); + for (j = 0; j <= J; j++) CWIDTH[j] = p; + } else { + // + // For width = auto, make all widths equal the widest, + // otherwise, for specific width, remove intercolumn space + // and divide by number of columns to get widest space. + // + w = Math.max.apply(Math,state.W); + if (values.width !== "auto") { + var S = (values.frame ? state.FSPACE[0] + 2/CHTML.em : 0); + for (j = 0; j <= J; j++) S += CSPACE[j]; + w = Math.max((WW-S)/(J+1),w); + } + w = CHTML.Em(w); + for (j = 0; j <= J; j++) CWIDTH[j] = w; + } + setWidths = true; + } + // + // Compute natural table width + // + var TW = 0; if (values.frame) TW = state.FSPACE[0]; + var auto = [], fit = [], percent = [], W = []; + var row = state.rows[0]; + for (j = 0; j <= J; j++) { + W[j] = state.W[j]; + if (CWIDTH[j] === "auto") auto.push(j) + else if (CWIDTH[j] === "fit") fit.push(j) + else if (CWIDTH[j].match(/%$/)) percent.push(j) + else W[j] = CHTML.length2em(CWIDTH[j],W[j]); + TW += W[j] + CSPACE[j]; + row[j].style.width = CHTML.Em(W[j]); + } + if (values.frame) TW += 2/CHTML.em; + var hasFit = (fit.length > 0); + // + // Adjust widths of columns + // + if (setWidths) { + if (relWidth) { + // + // Set variable width on DOM nodes + // + this.CHTML.pwidth = values.width; this.CHTML.mwidth = CHTML.Em(TW); + node.style.width = node.firstChild.style.width = "100%"; + // + // Attach appropriate widths to the columns + // + for (j = 0; j <= J; j++) { + cell = row[j].style; + if (CWIDTH[j] === "auto" && !hasFit) cell.width = ""; + else if (CWIDTH[j] === "fit") cell.width = ""; + else if (CWIDTH[j].match(/%$/)) cell.width = CWIDTH[j]; + else cell.minWidth = cell.maxWidth = cell.width; + } + } else { + // + // Compute percentage widths + // + if (WW > TW) { + var extra = 0; + for (i = 0, m = percent.length; i < m; i++) { + j = percent[i]; + w = Math.max(W[j],CHTML.length2em(CWIDTH[j],WW)); + extra += w-W[j]; W[j] = w; + row[j].style.width = CHTML.Em(w); + } + TW += extra; + } + // + // Compute "fit" widths + // + if (!hasFit) fit = auto; + if (WW > TW && fit.length) { + var dw = (WW - TW) / fit.length; + for (i = 0, m = fit.length; i < m; i++) { + j = fit[i]; W[j] += dw; + row[j].style.width = CHTML.Em(W[j]); + } + TW = WW; + } + } + } + state.W = W; + state.R = TW; + }, + // + // Stretch any cells that can be stretched + // + CHTMLstretchCells: function (values,state) { + var ROWS = state.rows, H = state.H, D = state.D, W = state.W, + J = state.J, M = ROWS.length-1; + var h = state.HH, d = state.DD; + for (var i = 0; i <= M; i++) { + var row = ROWS[i], rdata = this.data[i]; + if (!state.HD) {h = H[i]; d = D[i]} + for (var j = 0; j <= J; j++) { + var cell = row[j], cdata = rdata.data[j]; + if (cdata.CHTML.stretch === "V") cdata.CHTMLstretchV(h,d); + else if (cdata.CHTML.stretch === "H") cdata.CHTMLstretchH(cell,W[j]); + } + } + }, + // + // Add labels to a table + // + CHTMLaddLabels: function (values,state,node,table) { + // + // Get indentation and alignment + // + var indent = this.getValues("indentalignfirst","indentshiftfirst","indentalign","indentshift"); + if (indent.indentalignfirst !== MML.INDENTALIGN.INDENTALIGN) indent.indentalign = indent.indentalignfirst; + if (indent.indentalign === MML.INDENTALIGN.AUTO) indent.indentalign = CONFIG.displayAlign; + if (indent.indentshiftfirst !== MML.INDENTSHIFT.INDENTSHIFT) indent.indentshift = indent.indentshiftfirst; + if (indent.indentshift === "auto") indent.indentshift = "0"; + var shift = CHTML.length2em(indent.indentshift,CHTML.cwidth); + var labelshift = CHTML.length2em(values.minlabelspacing,CHTML.cwidth); + if (this.displayIndent !== "0") { + var dIndent = CHTML.length2em(CONFIG.displayIndent,CHTML.cwidth); + shift += (indent.indentAlign === MML.INDENTALIGN.RIGHT ? -dIndent: dIndent); + } + if (indent.indentalign === MML.INDENTALIGN.CENTER) shift *= 2; + var margin = "margin"+(indent.indentalign === MML.INDENTALIGN.RIGHT ? "Right" : "Left"); + // + // Create boxes for table and labels + // + var box = HTML.addElement(node,"mjx-box",{ + style:{width:"100%","text-align":indent.indentalign} + }); box.appendChild(table); + var labels = HTML.Element("mjx-stack"); + table.style.display = "inline-table"; if (!table.style.width) table.style.width = "auto"; + labels.style.verticalAlign = table.style.verticalAlign = "top"; + node.style.verticalAlign = ""; + if (shift) table.style[margin] = CHTML.Em(shift); + // + // Add labels on correct side + // + if (state.CALIGN[LABEL] === "left") { + node.insertBefore(labels,box); + labels.style.marginRight = CHTML.Em(-state.W[LABEL]); + } else { + node.appendChild(labels); + labels.style.marginLeft = CHTML.Em(-state.W[LABEL]); + } + // + // Vertically align the labels with their rows + // + var LABELS = state.labels, T = 0, H = state.H, D = state.D, RSPACE = state.RSPACE; + if (values.frame) T = state.FSPACE[0] + 1/CHTML.em; + var h = state.HH, d = state.DD; + for (var i = 0, m = LABELS.length; i < m; i++) { + if (!state.HD) {h = H[i]; d = D[i]} + if (LABELS[i]) { + labels.appendChild(LABELS[i]); + var lbox = this.data[i].data[0].CHTML; + T += h - lbox.h; + if (T) LABELS[i].style.marginTop = CHTML.Em(T); + T = d - lbox.d; + } else { + T += h + d; + } + T += RSPACE[i]; + } + // + // Propagage full-width equations, and reserve + // room for equation plus label and minlabelspacing + // + node.style.width = this.CHTML.pwidth = "100%"; + var min = CHTML.length2em(values.minlabelspacing,this.defaults.minlabelspacing); + var w = state.R + state.W[LABEL] + min; + if (indent.indentalign === MML.INDENTALIGN.CENTER) w += state.W[LABEL] + min; + this.CHTML.mwidth = CHTML.Em(w); + } + }); + + MML.mtr.Augment({ + toCommonHTML: function (node,options) { + // + // Create the row node + // + node = this.CHTMLcreateNode(node); + this.CHTMLhandleStyle(node); + this.CHTMLhandleScale(node); + // + // Add a new row with no label + // + if (!options) options = {rows:[],labels:[]}; + var row = []; options.rows.push(row); + options.labels.push(null); + // + // Add the cells to the row + // + for (var i = 0, m = this.data.length; i < m; i++) + row.push(this.CHTMLaddChild(node,i,options)); + // + this.CHTMLhandleColor(node); + return node; + } + }); + MML.mlabeledtr.Augment({ + toCommonHTML: function (node,options) { + // + // Create the row node + // + node = this.CHTMLcreateNode(node); + this.CHTMLhandleStyle(node); + this.CHTMLhandleScale(node); + // + // Add a new row, and get the label + // + if (!options) options = {rows:[],labels:[]}; + var row = []; options.rows.push(row); + var label = HTML.Element("mjx-label"); options.labels.push(label); + this.CHTMLaddChild(label,0,options); + options.labeled = true; + // + // Add the cells to the row + // + for (var i = 1, m = this.data.length; i < m; i++) + row.push(this.CHTMLaddChild(node,i,options)); + // + this.CHTMLhandleColor(node); + return node; + } + }); + MML.mtd.Augment({ + toCommonHTML: function (node,options) { + node = this.CHTMLdefaultNode(node,options); + // + // Determine if this is stretchy or not + // + if (this.isEmbellished()) { + var mo = this.CoreMO(), BBOX = this.CHTML; + if (mo.CHTMLcanStretch("Vertical")) BBOX.stretch = "V"; + else if (mo.CHTMLcanStretch("Horizontal")) BBOX.stretch = "H"; + if (BBOX.stretch) { + var min = mo.Get("minsize",true); + if (min) { + if (BBOX.stretch === "V") { + var HD = BBOX.h + BBOX.d; + if (HD) { + var r = CHTML.length2em(min,HD)/HD; + if (r > 1) {BBOX.h *= r; BBOX.d *= r} + } + } else { + BBOX.w = Math.max(BBOX.w,CHTML.length2em(min,BBOX.w)); + } + } + } + } + return node; + } + }); + + + MathJax.Hub.Startup.signal.Post("CommonHTML mtable Ready"); + MathJax.Ajax.loadComplete(CHTML.autoloadDir+"/mtable.js"); +}); + diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index 34c990f8c..f8661510a 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -47,7 +47,6 @@ "font-weight": "normal", "font-size": "100%", "font-size-adjust":"none", - "text-indent": 0, "text-transform": "none", "letter-spacing": "normal", "word-spacing": "normal", @@ -106,6 +105,11 @@ "mjx-annotation-xml": {"line-height":"normal"}, + "mjx-mtr": {display:"table-row"}, + "mjx-mlabeledtr": {display:"table-row"}, + "mjx-mtd": {display:"table-cell", "text-align":"center"}, + "mjx-label": {display:"block"}, + "mjx-box": {display:"inline-block"}, "mjx-block": {display:"block"}, "mjx-char": {display:"block"}, @@ -152,19 +156,8 @@ "mjx-ex-box-test": { position: "absolute", width:"1px", height:"60ex" - }, + } -/*********************************/ - - "mjx-mtable": {"vertical-align":AXISHEIGHT+"em", "margin":"0 .125em"}, - "mjx-mtable > span": {"display":"inline-table!important", "vertical-align":"middle"}, - "mjx-mtr": {"display":"table-row!important"}, - "mjx-mtd": {"display":"table-cell!important", "text-align":"center", "padding":".5em 0 0 .5em"}, - "mjx-mtr > mjx-mtd:first-child": {"padding-left":0}, - "mjx-mtr:first-child > mjx-mtd": {"padding-top":0}, - "mjx-mlabeledtr": {"display":"table-row!important"}, - "mjx-mlabeledtr > mjx-mtd:first-child": {"padding-left":0}, - "mjx-mlabeledtr:first-child > mjx-mtd": {"padding-top":0} }; @@ -1102,7 +1095,7 @@ }, Em: function (m) { - if (Math.abs(m) < .001) return "0em"; + if (Math.abs(m) < .001) return "0"; return (m.toFixed(3).replace(/\.?0+$/,""))+"em"; }, unEm: function (m) { @@ -1228,14 +1221,14 @@ return node; }, CHTMLaddChild: function (node,i,options) { - var child = this.data[i]; + var child = this.data[i], cnode; if (child) { var type = options.childNodes; if (type) { if (type instanceof Array) type = type[i]; node = HTML.addElement(node,type); } - child.toCommonHTML(node,options.childOptions); + cnode = child.toCommonHTML(node,options.childOptions); if (type && child.CHTML.rscale !== 1) { // move scale factor to outer container (which seems to be more accurate) node.style.fontSize = node.firstChild.style.fontSize; @@ -1247,7 +1240,8 @@ if (cbox.ic) {bbox.ic = cbox.ic} else {delete bbox.ic} if (cbox.skew) bbox.skew = cbox.skew; } - } else if (options.forceChild) {HTML.addElement(node,"span")} + } else if (options.forceChild) {cnode = HTML.addElement(node,"span")} + return cnode; }, CHTMLstretchChildV: function (i,H,D) { var data = this.data[i]; @@ -1371,6 +1365,11 @@ CHTMLhandleBBox: function (node) { var BBOX = this.CHTML, style = node.style; + if (this.data.length === 1 && this.data[0].CHTML.pwidth) { + BBOX.pwidth = this.data[0].CHTML.pwidth; + BBOX.mwidth = this.data[0].CHTML.mwidth; + style.width = "100%"; + } if (!this.style) return; // ### FIXME: adjust for width, height, vertical-align? for (var i = 0, m = CHTML.BBOX.styleAdjust.length; i < m; i++) { @@ -1540,6 +1539,10 @@ MML.math.Augment({ toCommonHTML: function (node) { node = this.CHTMLdefaultNode(node); + if (this.CHTML.pwidth) { + node.parentNode.style.width = this.CHTML.pwidth; + node.parentNode.style.minWidth = this.CHTML.mwidth; + } return node; } }); @@ -2385,71 +2388,6 @@ /********************************************************/ - MML.mtable.Augment({ - toCommonHTML: function (node) { - node = this.CHTMLdefaultNode(node,{noBBox:true}); - var values = this.getValues("columnalign","rowalign","columnspacing","rowspacing", - "columnwidth","equalcolumns","equalrows", - "columnlines","rowlines","frame","framespacing", - "align","width"/*,"useHeight","side","minlabelspacing"*/); - var SPLIT = MathJax.Hub.SplitList, i, m, j, n; - var CSPACE = SPLIT(values.columnspacing), - RSPACE = SPLIT(values.rowspacing), - CALIGN = SPLIT(values.columnalign), - RALIGN = SPLIT(values.rowalign);//, -// CLINES = SPLIT(values.columnlines), -// RLINES = SPLIT(values.rowlines), -// CWIDTH = SPLIT(values.columnwidth), -// RCALIGN = []; - for (i = 0, m = CSPACE.length; i < m; i++) {CSPACE[i] = CHTML.length2em(CSPACE[i])} - for (i = 0, m = RSPACE.length; i < m; i++) {RSPACE[i] = CHTML.length2em(RSPACE[i])} - - var table = HTML.Element("span"); - while (node.firstChild) table.appendChild(node.firstChild); - node.appendChild(table); - var H = 0, W = 0; - for (i = 0, m = this.data.length; i < m; i++) { - var row = this.data[i]; - if (row) { - var rspace = CHTML.arrayEntry(RSPACE,i-1), ralign = CHTML.arrayEntry(RALIGN,i); - var rbox = row.CHTML, rnode = row.CHTMLnodeElement(); - rnode.style.verticalAlign = ralign; - var k = (row.type === "mlabeledtr" ? 1 : 0); - for (j = 0, n = row.data.length; j < n-k; j++) { - var cell = row.data[j+k]; - if (cell) { - var cspace = CHTML.arrayEntry(CSPACE,j-1), calign = CHTML.arrayEntry(CALIGN,j); - var /*cbox = cell.CHTML,*/ cnode = cell.CHTMLnodeElement(); - if (j) {rbox.w += cspace; cnode.style.paddingLeft = CHTML.Em(cspace)} - if (i) cnode.style.paddingTop = CHTML.Em(rspace); - cnode.style.textAlign = calign; - } - } - H += rbox.h + rbox.d; if (i) {H += rspace} - if (rbox.w > W) W = rbox.w; - } - } - var bbox = this.CHTML; - bbox.w = W; bbox.h = H/2 + AXISHEIGHT; bbox.d = H/2 - AXISHEIGHT; - bbox.L = bbox.R = .125; - return node; - } - }); - MML.mlabeledtr.Augment({ - CHTMLdefaultNode: function (node,options) { - if (!options) options = {}; - node = this.CHTMLcreateNode(node); - this.CHTMLhandleStyle(node); - // skip label for now - for (var i = 1, m = this.data.length; i < m; i++) this.CHTMLaddChild(node,i,options); - this.CHTMLhandleBBox(node); - this.CHTMLhandleColor(node); - return node; - } - }); - - /********************************************************/ - MML.semantics.Augment({ toCommonHTML: function (node) { node = this.CHTMLcreateNode(node); @@ -2470,6 +2408,7 @@ // MML.menclose.Augment({toCommonHTML: MML.mbase.CHTMLautoload}); // MML.maction.Augment({toCommonHTML: MML.mbase.CHTMLautoload}); MML.mmultiscripts.Augment({toCommonHTML: MML.mbase.CHTMLautoload}); + MML.mtable.Augment({toCommonHTML: MML.mbase.CHTMLautoload}); /********************************************************/ From 3ec5d396a39c967a95875006ba29b71d3ea8742f Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Sat, 28 Mar 2015 12:23:50 -0400 Subject: [PATCH 117/186] Save the label width before changing the state. --- unpacked/jax/output/CommonHTML/autoload/mtable.js | 1 + 1 file changed, 1 insertion(+) diff --git a/unpacked/jax/output/CommonHTML/autoload/mtable.js b/unpacked/jax/output/CommonHTML/autoload/mtable.js index 216fdf5b7..e439c14f9 100644 --- a/unpacked/jax/output/CommonHTML/autoload/mtable.js +++ b/unpacked/jax/output/CommonHTML/autoload/mtable.js @@ -391,6 +391,7 @@ MathJax.Hub.Register.StartupHook("CommonHTML Jax Ready",function () { } } } + W[LABEL] = state.W[LABEL]; state.W = W; state.R = TW; }, From 9b4107f3b487b23a07ba4aeb72ab27483acb07e4 Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Sun, 29 Mar 2015 07:49:58 -0400 Subject: [PATCH 118/186] Better spacing for munderover, and improved CHTMLdrawBBox. --- unpacked/jax/output/CommonHTML/jax.js | 57 ++++++++++++--------------- 1 file changed, 25 insertions(+), 32 deletions(-) diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index f8661510a..dd5ca30cc 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -86,8 +86,7 @@ "mjx-delim-h": {display:"block"}, "mjx-delim-h > mjx-char": { transform:"scale(1)", - display:"inline-block", - "vertical-align":"top" + display:"inline-block" }, "mjx-surd": {"vertical-align":"top"}, @@ -600,7 +599,7 @@ big_op_spacing1: .111111, big_op_spacing2: .166666, big_op_spacing3: .2, - big_op_spacing4: .6, + big_op_spacing4: .45, //.6, // better spacing for under arrows and braces big_op_spacing5: .1, surd_height: .075, @@ -814,8 +813,8 @@ if (state.className && font.className !== state.className) this.flushText(node,state); var C = font[item.n]; state.text += C.c; state.className = font.className; - if (bbox.h < C[0]) bbox.t = bbox.h = C[0]; - if (bbox.d < C[1]) bbox.b = bbox.d = C[1]; + if (bbox.h < C[0]+HFUZZ) bbox.t = bbox.h = C[0]+HFUZZ; + if (bbox.d < C[1]+DFUZZ) bbox.b = bbox.d = C[1]+DFUZZ; if (bbox.l > bbox.w+C[3]) bbox.l = bbox.w+C[3]; if (bbox.r < bbox.w+C[4]) bbox.r = bbox.w+C[4]; bbox.w += C[2] * (item.rscale||1); @@ -880,7 +879,6 @@ } if (list.length) this.addCharList(node.firstChild,list,bbox); bbox.clean(); - bbox.h += HFUZZ; bbox.d += DFUZZ; bbox.t += HFUZZ; bbox.b += DFUZZ; node.firstChild.style[bbox.h < 0 ? "marginTop" : "paddingTop"] = this.Em(bbox.h-(bbox.a||0)); node.firstChild.style[bbox.d < 0 ? "marginBottom": "paddingBottom"] = this.Em(bbox.d); return bbox; @@ -971,6 +969,7 @@ var left, right, mid, ext, ext2, lbox, rbox, mbox, ebox, k = 1; lbox = this.createChar(tmp,(delim.left||delim.rep),1,font); left = tmp.removeChild(tmp.firstChild); rbox = this.createChar(tmp,(delim.right||delim.rep),1,font); right = tmp.removeChild(tmp.firstChild); + ebox = this.createChar(tmp,delim.rep,1,font); ext = tmp.removeChild(tmp.firstChild); node.appendChild(left); var hbox = CHTML.BBOX.zero(); hbox.h = Math.max(lbox.h,rbox.h); hbox.d = Math.max(lbox.d,rbox.d); @@ -982,15 +981,14 @@ mid = tmp.removeChild(tmp.firstChild); w += mbox.w; k = 2; if (mbox.h > hbox.h) hbox.h = mbox.h; - if (mbox.d < hbox.d) hbox.d = mbox.d; + if (mbox.d > hbox.d) hbox.d = mbox.d; } if (delim.min && W < w*delim.min) W = w*delim.min; right.style.marginLeft = CHTML.Em((W-w-rbox.l)/k); hbox.w = hbox.r = W; if (W > w) { - ebox = this.createChar(tmp,delim.rep,1,font); ext = tmp.removeChild(tmp.firstChild); if (ebox.h > hbox.h) hbox.h = ebox.h; - if (ebox.d < hbox.d) hbox.d = ebox.d; + if (ebox.d > hbox.d) hbox.d = ebox.d; var s = (W - w)/k + .2; // space to cover by extender s /= (ebox.r - ebox.l); // scale factor this.Transform(ext, @@ -1011,29 +1009,24 @@ } } node.appendChild(right); - this.adjustTops([left,ext,mid,ext2,right]); + this.adjustHeights([left,ext,mid,ext2,right],hbox); hbox.t = hbox.h; hbox.b = hbox.d; - if (ext) { - if (hbox.h !== ebox.h) node.style.marginTop = CHTML.Em(ebox.h - hbox.h); - if (hbox.d !== ebox.d) node.style.marginBottom = CHTML.Em(ebox.d - hbox.d); - hbox.h = ebox.h; hbox.d = ebox.d; - } + if (hbox.h !== ebox.h) node.style.marginTop = CHTML.Em(ebox.h - hbox.h); + if (hbox.d !== ebox.d) node.style.marginBottom = CHTML.Em(ebox.d - hbox.d); + hbox.h = ebox.h; hbox.d = ebox.d; if (BBOX) {hbox.scale = BBOX.scale; hbox.rscale = BBOX.rscale} return hbox; }, - adjustTops: function (nodes) { + adjustHeights: function (nodes,bbox) { // - // to get alignment right in horizontal delimiters, we force all - // the elements to the same height and align to top + // To get alignment right in horizontal delimiters, we force all + // the elements to the same height and depth // - var i, m = nodes.length, T = 0; - for (i = 0; i < m; i++) { - if (nodes[i] && nodes[i].style.paddingTop) { - var t = this.unEm(nodes[i].style.paddingTop); - if (t > T) T = t; - } + var T = CHTML.Em(bbox.h), D = CHTML.Em(bbox.d); + for (var i = 0, m = nodes.length; i < m; i++) if (nodes[i]) { + nodes[i].style.paddingTop = T; + nodes[i].style.paddingBottom = D; } - for (i = 0; i < m; i++) if (nodes[i]) nodes[i].style.paddingTop = CHTML.Em(T); }, createChar: function (node,data,scale,font) { // ### FIXME: handle cache better (by data[1] and font) @@ -1465,16 +1458,16 @@ // Debugging function to see if internal BBox matches actual bbox // CHTMLdrawBBox: function (node) { - var bbox = this.CHTML, scale = bbox.rscale; + var bbox = this.CHTML; var box = HTML.Element("mjx-box", - {style:{opacity:.25,"margin-left":CHTML.Em(-scale*(bbox.w+(bbox.R||0)))}},[ + {style:{"font-size":node.style.fontSize, opacity:.25,"margin-left":CHTML.Em(-(bbox.w+(bbox.R||0)))}},[ ["mjx-box",{style:{ - height:CHTML.Em(scale*bbox.h),width:CHTML.Em(scale*bbox.w), + height:CHTML.Em(bbox.h),width:CHTML.Em(bbox.w), "background-color":"red" }}], ["mjx-box",{style:{ - height:CHTML.Em(scale*bbox.d),width:CHTML.Em(scale*bbox.w), - "margin-left":CHTML.Em(-scale*bbox.w),"vertical-align":CHTML.Em(-scale*bbox.d), + height:CHTML.Em(bbox.d),width:CHTML.Em(bbox.w), + "margin-left":CHTML.Em(-bbox.w),"vertical-align":CHTML.Em(-bbox.d), "background-color":"green" }}] ]); @@ -2012,7 +2005,7 @@ // determine the spacing // if (values.accentunder) { - k = 3*CHTML.TEX.rule_thickness; z3 = 0; + k = 2*CHTML.TEX.rule_thickness; z3 = 0; } else { z1 = CHTML.TEX.big_op_spacing2; z2 = CHTML.TEX.big_op_spacing4; @@ -2020,7 +2013,7 @@ } ubox.x = -delta/2; ubox.y = -(BBOX.d + k + z3 + scale*ubox.h); // - // Position the overscript + // Position the underscript // if (k) under.style.paddingTop = CHTML.Em(k/scale); if (z3) under.style.paddingBottom = CHTML.Em(z3/scale); From 577b37ee60cd86b782366cda069594c3bb76ef41 Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Sun, 29 Mar 2015 08:08:18 -0400 Subject: [PATCH 119/186] Make mtable row and column lines extend through frame spacing even when no frame is used (consistent with HTMLCSS and SVG output) --- .../jax/output/CommonHTML/autoload/mtable.js | 27 ++++++++++++------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/unpacked/jax/output/CommonHTML/autoload/mtable.js b/unpacked/jax/output/CommonHTML/autoload/mtable.js index e439c14f9..fbba76808 100644 --- a/unpacked/jax/output/CommonHTML/autoload/mtable.js +++ b/unpacked/jax/output/CommonHTML/autoload/mtable.js @@ -150,14 +150,20 @@ MathJax.Hub.Register.StartupHook("CommonHTML Jax Ready",function () { if (FSPACE.length != 2) FSPACE = SPLIT(this.defaults.framespacing); FSPACE[0] = Math.max(0,CHTML.length2em(FSPACE[0])); FSPACE[1] = Math.max(0,CHTML.length2em(FSPACE[1])); + if (values.columnlines.replace(/none/g,"").replace(/ /g,"") !== "" || + values.rowlines.replace(/none/g,"").replace(/ /g,"") !== "") values.fspace = true; // // Pad arrays so that final column can be treated as all the others // - if (values.frame === MML.LINES.NONE) { - delete values.frame; - CSPACE[J] = RSPACE[M] = 0; - } else { + if (values.frame === MML.LINES.NONE) delete values.frame; else values.fspace = true; + if (values.frame) { + FSPACE[0] = Math.max(0,FSPACE[0]-1/CHTML.em); + FSPACE[1] = Math.max(0,FSPACE[1]-1/CHTML.em); + } + if (values.fspace) { CSPACE[J] = FSPACE[0]; RSPACE[M] = FSPACE[1]; + } else { + CSPACE[J] = RSPACE[M] = 0; } CLINES[J] = RLINES[M] = MML.LINES.NONE; // @@ -182,7 +188,7 @@ MathJax.Hub.Register.StartupHook("CommonHTML Jax Ready",function () { var LH = CHTML.FONTDATA.lineH * values.useHeight, LD = CHTML.FONTDATA.lineD * values.useHeight; var T = "0", B, R, L, border, HD, cbox, align; - if (values.frame) T = CHTML.Em(state.FSPACE[1]); + if (values.fspace) T = CHTML.Em(state.FSPACE[1]); for (var i = 0, m = ROWS.length; i < m; i++) { var row = ROWS[i], rdata = this.data[i]; // @@ -197,7 +203,7 @@ MathJax.Hub.Register.StartupHook("CommonHTML Jax Ready",function () { // // Frame space for initial cell // - if (values.frame) L = CHTML.Em(state.FSPACE[0]); + if (values.fspace) L = CHTML.Em(state.FSPACE[0]); // // The cells in the row // @@ -268,7 +274,8 @@ MathJax.Hub.Register.StartupHook("CommonHTML Jax Ready",function () { // Get table height and baseline offset // var T = 0, B = 0, a = CHTML.TEX.axis_height; - if (values.frame) {T = state.FSPACE[1] + 2/CHTML.em; B = 1/CHTML.em} + if (values.fspace) T += state.FSPACE[1]; + if (values.frame) {T += 2/CHTML.em; B += 1/CHTML.em} var h = state.HH, d = state.DD; for (var i = 0; i < M; i++) { if (!state.HD) {h = H[i]; d = D[i]} @@ -317,7 +324,7 @@ MathJax.Hub.Register.StartupHook("CommonHTML Jax Ready",function () { // w = Math.max.apply(Math,state.W); if (values.width !== "auto") { - var S = (values.frame ? state.FSPACE[0] + 2/CHTML.em : 0); + var S = (values.fspace ? state.FSPACE[0] + (values.frame ? 2/CHTML.em : 0) : 0); for (j = 0; j <= J; j++) S += CSPACE[j]; w = Math.max((WW-S)/(J+1),w); } @@ -329,7 +336,7 @@ MathJax.Hub.Register.StartupHook("CommonHTML Jax Ready",function () { // // Compute natural table width // - var TW = 0; if (values.frame) TW = state.FSPACE[0]; + var TW = 0; if (values.fspace) TW = state.FSPACE[0]; var auto = [], fit = [], percent = [], W = []; var row = state.rows[0]; for (j = 0; j <= J; j++) { @@ -457,7 +464,7 @@ MathJax.Hub.Register.StartupHook("CommonHTML Jax Ready",function () { // Vertically align the labels with their rows // var LABELS = state.labels, T = 0, H = state.H, D = state.D, RSPACE = state.RSPACE; - if (values.frame) T = state.FSPACE[0] + 1/CHTML.em; + if (values.fspace) T = state.FSPACE[0] + (values.frame ? 1/CHTML.em : 0); var h = state.HH, d = state.DD; for (var i = 0, m = LABELS.length; i < m; i++) { if (!state.HD) {h = H[i]; d = D[i]} From e78aa248f49769c8464cb23eadfeae2b01a2534d Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Mon, 30 Mar 2015 09:41:04 -0400 Subject: [PATCH 120/186] Add support for maction --- .../jax/output/CommonHTML/autoload/maction.js | 180 ++++++++++++++++++ unpacked/jax/output/CommonHTML/jax.js | 21 +- 2 files changed, 200 insertions(+), 1 deletion(-) create mode 100644 unpacked/jax/output/CommonHTML/autoload/maction.js diff --git a/unpacked/jax/output/CommonHTML/autoload/maction.js b/unpacked/jax/output/CommonHTML/autoload/maction.js new file mode 100644 index 000000000..84dc6c608 --- /dev/null +++ b/unpacked/jax/output/CommonHTML/autoload/maction.js @@ -0,0 +1,180 @@ +/* -*- Mode: Javascript; indent-tabs-mode:nil; js-indent-level: 2 -*- */ +/* vim: set ts=2 et sw=2 tw=80: */ + +/************************************************************* + * + * MathJax/jax/output/CommonHTML/autoload/maction.js + * + * Implements the CommonHTML output for elements. + * + * --------------------------------------------------------------------- + * + * Copyright (c) 2015 The MathJax Consortium + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +MathJax.Hub.Register.StartupHook("CommonHTML Jax Ready",function () { + var VERSION = "2.5.1"; + var MML = MathJax.ElementJax.mml, + HTML = MathJax.HTML, + CHTML = MathJax.OutputJax.CommonHTML; + + var currentTip, hover, clear; + + // + // Add configuration for tooltips + // + var CONFIG = CHTML.config.tooltip = MathJax.Hub.Insert({ + delayPost: 600, delayClear: 600, + offsetX: 10, offsetY: 5 + },CHTML.config.tooltip||{}); + + + MML.maction.Augment({ + CHTMLtooltip: HTML.addElement(document.body,"div",{id:"MathJax_CHTML_Tooltip"}), + + toCommonHTML: function (node,stretch) { + var selected = this.Get("selection"); + node = this.CHTMLcreateNode(node); + this.CHTML = CHTML.BBOX.empty(); + this.CHTMLhandleStyle(node); + this.CHTMLhandleScale(node); + this.CHTMLaddChild(node,selected-1,{}); + this.CHTML.clean(); + this.CHTMLhandleSpace(node); + this.CHTMLhandleBBox(node); + this.CHTMLhandleColor(node); + + var type = this.Get("actiontype"); + if (this.CHTMLaction[type] && this.CHTMLaction.hasOwnProperty(type)) + this.CHTMLaction[type].call(this,node,selected); + + return node; + }, + CHTMLstretchH: MML.mbase.CHTMLstretchH, + CHTMLstretchV: MML.mbase.CHTMLstretchV, + + // + // Implementations for the various actions + // + CHTMLaction: { + toggle: function (node,selection) { + this.selection = selection; + node.onclick = MathJax.Callback(["CHTMLclick",this,CHTML.jax]); + node.style.cursor = "pointer"; + }, + + statusline: function (node,selection) { + node.onmouseover = MathJax.Callback(["CHTMLsetStatus",this]); + node.onmouseout = MathJax.Callback(["CHTMLclearStatus",this]); + node.onmouseover.autoReset = node.onmouseout.autoReset = true; + }, + + tooltip: function(node,selection) { + if (this.data[1] && this.data[1].isToken) { + node.title = node.alt = this.data[1].data.join(""); + } else { + node.onmouseover = MathJax.Callback(["CHTMLtooltipOver",this,CHTML.jax]); + node.onmouseout = MathJax.Callback(["CHTMLtooltipOut",this,CHTML.jax]); + node.onmouseover.autoReset = node.onmouseout.autoReset = true; + } + } + }, + + // + // Handle a click on the maction element + // (remove the original rendering and rerender) + // + CHTMLclick: function (jax,event) { + this.selection++; + if (this.selection > this.data.length) this.selection = 1; + var hover = !!jax.hover; + jax.Update(); + if (hover) { + var span = document.getElementById(jax.inputID+"-Span"); + MathJax.Extension.MathEvents.Hover.Hover(jax,span); + } + return MathJax.Extension.MathEvents.Event.False(event); + }, + + // + // Set/Clear the window status message + // + CHTMLsetStatus: function (event) { + // FIXME: Do something better with non-token elements + this.messageID = MathJax.Message.Set + ((this.data[1] && this.data[1].isToken) ? + this.data[1].data.join("") : this.data[1].toString()); + }, + CHTMLclearStatus: function (event) { + if (this.messageID) MathJax.Message.Clear(this.messageID,0); + delete this.messageID; + }, + + // + // Handle tooltips + // + CHTMLtooltipOver: function (jax,event) { + if (!event) event = window.event; + if (clear) {clearTimeout(clear); clear = null} + if (hover) clearTimeout(hover); + var x = event.pageX; var y = event.pageY; + if (x == null) { + x = event.clientX + document.body.scrollLeft + document.documentElement.scrollLeft; + y = event.clientY + document.body.scrollTop + document.documentElement.scrollTop; + } + var callback = MathJax.Callback(["CHTMLtooltipPost",this,jax,x+CONFIG.offsetX,y+CONFIG.offsetY]) + hover = setTimeout(callback,CONFIG.delayPost); + }, + CHTMLtooltipOut: function (jax,event) { + if (hover) {clearTimeout(hover); hover = null} + if (clear) clearTimeout(clear); + var callback = MathJax.Callback(["CHTMLtooltipClear",this,80]); + clear = setTimeout(callback,CONFIG.delayClear); + }, + CHTMLtooltipPost: function (jax,x,y) { + hover = null; if (clear) {clearTimeout(clear); clear = null} + var tip = this.CHTMLtooltip; + tip.style.display = "block"; tip.style.opacity = ""; +// tip.style.filter = CHTML.config.styles["#MathJax_CHTML_Tooltip"].filter; + if (this === currentTip) return; + tip.style.left = x+"px"; tip.style.top = y+"px"; + tip.innerHTML = ''; + CHTML.getMetrics(jax); + try {this.data[1].toCommonHTML(tip.firstChild.firstChild)} catch(err) { + if (!err.restart) throw err; + tip.style.display = "none"; + MathJax.Callback.After(["CHTMLtooltipPost",this,jax,x,y],err.restart); + return; + } + currentTip = this; + }, + CHTMLtooltipClear: function (n) { + var tip = this.CHTMLtooltip; + if (n <= 0) { + tip.style.display = "none"; + tip.style.opacity = tip.style.filter = ""; + clear = null; + } else { + tip.style.opacity = n/100; + tip.style.filter = "alpha(opacity="+n+")"; + clear = setTimeout(MathJax.Callback(["CHTMLtooltipClear",this,n-20]),50); + } + } + }); + + MathJax.Hub.Startup.signal.Post("CommonHTML maction Ready"); + MathJax.Ajax.loadComplete(CHTML.autoloadDir+"/maction.js"); +}); + diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index dd5ca30cc..acab7b0f1 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -155,6 +155,24 @@ "mjx-ex-box-test": { position: "absolute", width:"1px", height:"60ex" + }, + + "#MathJax_CHTML_Tooltip": { + "background-color": "InfoBackground", color: "InfoText", + border: "1px solid black", + "box-shadow": "2px 2px 5px #AAAAAA", // Opera 10.5 + "-webkit-box-shadow": "2px 2px 5px #AAAAAA", // Safari 3 and Chrome + "-moz-box-shadow": "2px 2px 5px #AAAAAA", // Forefox 3.5 + "-khtml-box-shadow": "2px 2px 5px #AAAAAA", // Konqueror +// filter: "progid:DXImageTransform.Microsoft.dropshadow(OffX=2, OffY=2, Color='gray', Positive='true')", // IE + padding: "3px 4px", + "z-index": 401, + position: "absolute", left: 0, top: 0, + width: "auto", height: "auto", + display: "none" +// }, +// "#MathJax_Tooltip *": { +// filter: "none", opacity:1, background:"transparent" // for IE } }; @@ -443,6 +461,7 @@ // getMetrics: function(jax) { var data = jax.CHTML; + this.jax = jax; this.em = data.em; this.outerEm = data.outerEm; this.scale = data.scale; @@ -2399,7 +2418,7 @@ MML.ms.Augment({toCommonHTML: MML.mbase.CHTMLautoload}); MML.mglyph.Augment({toCommonHTML: MML.mbase.CHTMLautoload}); // MML.menclose.Augment({toCommonHTML: MML.mbase.CHTMLautoload}); -// MML.maction.Augment({toCommonHTML: MML.mbase.CHTMLautoload}); + MML.maction.Augment({toCommonHTML: MML.mbase.CHTMLautoload}); MML.mmultiscripts.Augment({toCommonHTML: MML.mbase.CHTMLautoload}); MML.mtable.Augment({toCommonHTML: MML.mbase.CHTMLautoload}); From 06534d81a1e184475e72b261fd506f7f2b75b441 Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Mon, 30 Mar 2015 13:45:19 -0400 Subject: [PATCH 121/186] Add support for menclose elements --- .../output/CommonHTML/autoload/menclose.js | 311 ++++++++++++++++++ unpacked/jax/output/CommonHTML/jax.js | 11 +- 2 files changed, 320 insertions(+), 2 deletions(-) create mode 100644 unpacked/jax/output/CommonHTML/autoload/menclose.js diff --git a/unpacked/jax/output/CommonHTML/autoload/menclose.js b/unpacked/jax/output/CommonHTML/autoload/menclose.js new file mode 100644 index 000000000..d97c92bd8 --- /dev/null +++ b/unpacked/jax/output/CommonHTML/autoload/menclose.js @@ -0,0 +1,311 @@ +/* -*- Mode: Javascript; indent-tabs-mode:nil; js-indent-level: 2 -*- */ +/* vim: set ts=2 et sw=2 tw=80: */ + +/************************************************************* + * + * MathJax/jax/output/CommonHTML/autoload/menclose.js + * + * Implements the CommonHTML output for elements. + * + * --------------------------------------------------------------------- + * + * Copyright (c) 2015 The MathJax Consortium + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +MathJax.Hub.Register.StartupHook("CommonHTML Jax Ready",function () { + var VERSION = "2.5.0"; + var MML = MathJax.ElementJax.mml, + HTML = MathJax.HTML, + CHTML = MathJax.OutputJax.CommonHTML; + + var SVGNS = "http://www.w3.org/2000/svg"; + var ARROWX = 4, ARROWDX = 1, ARROWY = 2; + + MML.menclose.Augment({ + toCommonHTML: function (node) { + var values = this.getValues("notation","thickness","padding"); + if (values.thickness == null) values.thickness = ".075em"; + if (values.padding == null) values.padding = ".2em"; + // + // Get DOM nodes + // + node = this.CHTMLdefaultNode(node,{childNodes:"mjx-box", forceChild:true}); + var child = node.firstChild, cbox = this.CHTMLbboxFor(0); + // + // Get the padding and rule thickness + // + var p = CHTML.length2em(values.padding,1/CHTML.em); // padding for enclosure + var t = CHTML.length2em(values.thickness,1/CHTML.em); // thickness of lines + t = Math.max(1,Math.round(t*CHTML.em))/CHTML.em; + var SOLID = CHTML.Px(t)+" solid"; + var bb = {L:p, R:p, T:p, B:p, H:cbox.h+p, D:cbox.d+p, W:cbox.w+2*p}; + child.style.padding = CHTML.Em(p); + // + // Eliminate duplicate notations. + // + var notations = MathJax.Hub.SplitList(values.notation), notation = {}; + for (var i = 0, m = notations.length; i < m; i++) notation[notations[i]] = true; + if (notation[MML.NOTATION.UPDIAGONALARROW]) delete notation[MML.NOTATION.UPDIAGONALSTRIKE]; + // + // Add the needed notations + // + for (var n in notation) { + if (notation.hasOwnProperty(n)) { + if (this.CHTMLnotation[n] && this.CHTMLnotation.hasOwnProperty(n)) + this.CHTMLnotation[n].call(this,child,cbox,bb,p,t,SOLID); + } + } + // + // Adjust the bounding box + // + var BBOX = this.CHTML; + BBOX.w += bb.L + bb.R; BBOX.r += BBOX.L; if (BBOX.w > BBOX.r) BBOX.r = BBOX.w; + BBOX.h += bb.T; if (BBOX.h > BBOX.t) BBOX.t = BBOX.h; + BBOX.d += bb.B; if (BBOX.d > BBOX.b) BBOX.b = BBOX.d; + + return node; + }, + // + // The various notations and their implementations + // + CHTMLnotation: { + + /********************************************************/ + + box: function (child,cbox,bb,p,t,SOLID) { + p -= t; + child.style.padding = CHTML.Em(p); + child.style.border = SOLID; + }, + + /********************************************************/ + + roundedbox: function (child,cbox,bb,p,t,SOLID) { + var r = Math.min(cbox.w,cbox.h+cbox.d+2*p)/4; + HTML.addElement(child.parentNode,"mjx-box",{ + style: { + padding:CHTML.Em(p-t), border:SOLID, "border-radius":CHTML.Em(r), + height:CHTML.Em(cbox.h+cbox.d), "vertical-align":CHTML.Em(-bb.D), + width:CHTML.Em(cbox.w), "margin-left":CHTML.Em(-bb.W) + } + }); + }, + + /********************************************************/ + + circle: function (child,cbox,bb,p,t,SOLID) { + var H = bb.H, D = bb.D, W = bb.W; + svg = this.CHTMLsvg(child,bb,t); + this.CHTMLsvgElement(svg.firstChild,"ellipse",{ + rx:CHTML.Px(W/2-t/2), ry:CHTML.Px((H+D)/2-t/2), + cx:CHTML.Px(W/2), cy:CHTML.Px((H+D)/2) + }); + }, + + /********************************************************/ + + left: function (child,cbox,bb,p,t,SOLID) { + child.style.borderLeft = SOLID; + child.style.paddingLeft = CHTML.Em(p-t); + }, + + /********************************************************/ + + right: function (child,cbox,bb,p,t,SOLID) { + child.style.borderRight = SOLID; + child.style.paddingRight = CHTML.Em(p-t); + }, + + /********************************************************/ + + top: function (child,cbox,bb,p,t,SOLID) { + child.style.borderTop = SOLID; + child.style.paddingTop = CHTML.Em(p-t); + }, + + /********************************************************/ + + bottom: function (child,cbox,bb,p,t,SOLID) { + child.style.borderBottom = SOLID; + child.style.paddingBottom = CHTML.Em(p-t); + }, + + /********************************************************/ + + actuarial: function (child,cbox,bb,p,t,SOLID) { + child.style.borderTop = child.style.borderRight = SOLID; + child.style.paddingTop = child.style.paddingRight = CHTML.Em(p-t); + }, + + /********************************************************/ + + madruwb: function (child,cbox,bb,p,t,SOLID) { + child.style.borderBottom = child.style.borderRight = SOLID; + child.style.paddingBottom = child.style.paddingRight = CHTML.Em(p-t); + }, + + /********************************************************/ + + verticalstrike: function (child,cbox,bb,p,t,SOLID) { + HTML.addElement(child.parentNode,"mjx-box",{ + style: { + "border-left":SOLID, + height:CHTML.Em(bb.H+bb.D), "vertical-align":CHTML.Em(-bb.D), + width:CHTML.Em(cbox.w/2+p-t/2), "margin-left":CHTML.Em(-cbox.w/2-p-t/2) + } + }); + }, + + /********************************************************/ + + horizontalstrike: function (child,cbox,bb,p,t,SOLID) { + HTML.addElement(child.parentNode,"mjx-box",{ + style: { + "border-top":SOLID, + height:CHTML.Em((bb.H+bb.D)/2-t/2), "vertical-align":CHTML.Em(-bb.D), + width:CHTML.Em(bb.W), "margin-left":CHTML.Em(-bb.W) + } + }); + }, + + /********************************************************/ + + updiagonalstrike: function (child,cbox,bb,p,t,SOLID) { + var H = bb.H, D = bb.D, W = bb.W; + svg = this.CHTMLsvg(child,bb,t); + this.CHTMLsvgElement(svg.firstChild,"line",{ + x1:CHTML.Px(t/2), y1:CHTML.Px(H+D-t), x2:CHTML.Px(W-t), y2:CHTML.Px(t/2) + }); + }, + + /********************************************************/ + + downdiagonalstrike: function (child,cbox,bb,p,t,SOLID) { + var H = bb.H, D = bb.D, W = bb.W; + svg = this.CHTMLsvg(child,bb,t); + this.CHTMLsvgElement(svg.firstChild,"line",{ + x1:CHTML.Px(t/2), y1:CHTML.Px(t/2), x2:CHTML.Px(W-t), y2:CHTML.Px(H+D-t) + }); + }, + + /********************************************************/ + + updiagonalarrow: function (child,cbox,bb,p,t,SOLID) { + var H = bb.H + bb.D - t, W = bb.W - t/2; + var a = Math.atan2(H,W)*(-180/Math.PI).toFixed(3); + var R = Math.sqrt(H*H + W*W); + svg = this.CHTMLsvg(child,bb,t); + var g = this.CHTMLsvgElement(svg.firstChild,"g",{ + fill:"currentColor", + transform:"translate("+this.CHTMLpx(t/2)+" "+this.CHTMLpx(H+t/2)+") rotate("+a+")" + }); + var x = t * ARROWX, dx = t * ARROWDX, y = t * ARROWY; + this.CHTMLsvgElement(g,"line",{ + x1:CHTML.Px(t/2), y1:0, x2:CHTML.Px(R-x), y2:0 + }); + this.CHTMLsvgElement(g,"path",{ + d: "M "+this.CHTMLpx(R-x)+",0 " + + "L "+this.CHTMLpx(R-x-dx)+","+this.CHTMLpx(y) + + "L "+this.CHTMLpx(R)+",0 " + + "L "+this.CHTMLpx(R-x-dx)+","+this.CHTMLpx(-y), + stroke:"none" + }); + }, + + /********************************************************/ + + phasorangle: function (child,cbox,bb,p,t,SOLID) { + var P = p, H = bb.H, D = bb.D, p = (H+D)/2, W = bb.W + p - P; bb.W = W; bb.L = p; + child.style.margin = "0 0 0 "+CHTML.Em(p-P); + svg = this.CHTMLsvg(child,bb,t); + this.CHTMLsvgElement(svg.firstChild,"path",{ + d: "M "+this.CHTMLpx(p)+",1 " + + "L 1,"+this.CHTMLpx(H+D-t)+" L "+this.CHTMLpx(W)+","+this.CHTMLpx(H+D-t) + }); + }, + + /********************************************************/ + + longdiv: function (child,cbox,bb,p,t,SOLID) { + bb.W += 1.5*p; bb.L += 1.5*p; + var H = bb.H, D = bb.D, W = bb.W; + child.style.margin = "0 0 0 "+CHTML.Em(1.5*p); + svg = this.CHTMLsvg(child,bb,t); + this.CHTMLsvgElement(svg.firstChild,"path",{ + d: "M "+this.CHTMLpx(W)+",1 L 1,1 "+ + "a"+this.CHTMLpx(p)+","+this.CHTMLpx((H+D)/2-t/2)+" 0 0,1 1,"+this.CHTMLpx(H+D-1.5*t) + }); + }, + + /********************************************************/ + + radical: function (child,cbox,bb,p,t,SOLID) { + bb.W += 1.5*p; bb.L += 1.5*p; + var H = bb.H, D = bb.D, W = bb.W; + child.style.margin = "0 0 0 "+CHTML.Em(1.5*p); + svg = this.CHTMLsvg(child,bb,t); + this.CHTMLsvgElement(svg.firstChild,"path",{ + d: "M 1,"+this.CHTMLpx(.6*(H+D)) + + " L "+this.CHTMLpx(p)+","+this.CHTMLpx(H+D) + + " L "+this.CHTMLpx(2*p)+",1 L "+this.CHTMLpx(W)+",1" + }); + } + + /********************************************************/ + + }, + + // + // Pixels with no "px" + // + CHTMLpx: function (m) { + m *= CHTML.em; + if (Math.abs(m) < .1) return "0"; + return m.toFixed(1).replace(/\.0$/,""); + }, + + // + // Create the SVG element and position it over the + // contents + // + CHTMLsvg: function (node,bbox,t) { + if (!svg) { + var svg = document.createElementNS(SVGNS,"svg"); + if (svg.style) { + svg.style.width = CHTML.Em(bbox.W); + svg.style.height = CHTML.Em(bbox.H+bbox.D); + svg.style.verticalAlign = CHTML.Em(-bbox.D); + svg.style.marginLeft = CHTML.Em(-bbox.W); + } + this.CHTMLsvgElement(svg,"g",{"stroke-width":CHTML.Px(t)}); + node.parentNode.appendChild(svg); + } + return svg; + }, + // + // Add an SVG element to the given svg node + // + CHTMLsvgElement: function (svg,type,def) { + var obj = document.createElementNS(SVGNS,type); obj.isMathJax = true; + if (def) {for (var id in def) {if (def.hasOwnProperty(id)) {obj.setAttributeNS(null,id,def[id].toString())}}} + svg.appendChild(obj); + return obj; + } + }); + + MathJax.Hub.Startup.signal.Post("CommonHTML menclose Ready"); + MathJax.Ajax.loadComplete(CHTML.autoloadDir+"/menclose.js"); +}); + diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index acab7b0f1..603813f82 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -103,6 +103,8 @@ }, "mjx-annotation-xml": {"line-height":"normal"}, + + "mjx-menclose > svg": {fill:"none", stroke:"currentColor"}, "mjx-mtr": {display:"table-row"}, "mjx-mlabeledtr": {display:"table-row"}, @@ -1113,6 +1115,11 @@ unEm: function (m) { return parseFloat(m); }, + Px: function (m) { + m *= this.em; + if (Math.abs(m) < .1) return "0"; + return m.toFixed(1).replace(/\.0$/,"")+"px"; + }, Percent: function (m) { return (100*m).toFixed(1).replace(/\.?0+$/,"") + "%"; @@ -1252,7 +1259,7 @@ if (cbox.ic) {bbox.ic = cbox.ic} else {delete bbox.ic} if (cbox.skew) bbox.skew = cbox.skew; } - } else if (options.forceChild) {cnode = HTML.addElement(node,"span")} + } else if (options.forceChild) {cnode = HTML.addElement(node,"mjx-box")} return cnode; }, CHTMLstretchChildV: function (i,H,D) { @@ -2417,7 +2424,7 @@ MML.ms.Augment({toCommonHTML: MML.mbase.CHTMLautoload}); MML.mglyph.Augment({toCommonHTML: MML.mbase.CHTMLautoload}); -// MML.menclose.Augment({toCommonHTML: MML.mbase.CHTMLautoload}); + MML.menclose.Augment({toCommonHTML: MML.mbase.CHTMLautoload}); MML.maction.Augment({toCommonHTML: MML.mbase.CHTMLautoload}); MML.mmultiscripts.Augment({toCommonHTML: MML.mbase.CHTMLautoload}); MML.mtable.Augment({toCommonHTML: MML.mbase.CHTMLautoload}); From 4a8cb8ad5b404457dd44d7fdaed41e8878f343d6 Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Mon, 30 Mar 2015 13:57:00 -0400 Subject: [PATCH 122/186] Don't need to do anything special to handle stretchy cores. --- unpacked/jax/output/CommonHTML/autoload/maction.js | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/unpacked/jax/output/CommonHTML/autoload/maction.js b/unpacked/jax/output/CommonHTML/autoload/maction.js index 84dc6c608..ef2bffef0 100644 --- a/unpacked/jax/output/CommonHTML/autoload/maction.js +++ b/unpacked/jax/output/CommonHTML/autoload/maction.js @@ -44,7 +44,7 @@ MathJax.Hub.Register.StartupHook("CommonHTML Jax Ready",function () { MML.maction.Augment({ CHTMLtooltip: HTML.addElement(document.body,"div",{id:"MathJax_CHTML_Tooltip"}), - toCommonHTML: function (node,stretch) { + toCommonHTML: function (node) { var selected = this.Get("selection"); node = this.CHTMLcreateNode(node); this.CHTML = CHTML.BBOX.empty(); @@ -62,8 +62,6 @@ MathJax.Hub.Register.StartupHook("CommonHTML Jax Ready",function () { return node; }, - CHTMLstretchH: MML.mbase.CHTMLstretchH, - CHTMLstretchV: MML.mbase.CHTMLstretchV, // // Implementations for the various actions From 2b3cb0cb0d53768d235efeb930c968af418ce056 Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Wed, 1 Apr 2015 11:27:08 -0400 Subject: [PATCH 123/186] Add preliminary support for line breaking. Still need to handle the compound constructs like msubsup, munderover, mfenced, etc. as special cases. --- .../output/CommonHTML/autoload/multiline.js | 780 ++++++++++++++++++ unpacked/jax/output/CommonHTML/jax.js | 19 +- 2 files changed, 793 insertions(+), 6 deletions(-) create mode 100644 unpacked/jax/output/CommonHTML/autoload/multiline.js diff --git a/unpacked/jax/output/CommonHTML/autoload/multiline.js b/unpacked/jax/output/CommonHTML/autoload/multiline.js new file mode 100644 index 000000000..f65413125 --- /dev/null +++ b/unpacked/jax/output/CommonHTML/autoload/multiline.js @@ -0,0 +1,780 @@ +/* -*- Mode: Javascript; indent-tabs-mode:nil; js-indent-level: 2 -*- */ +/* vim: set ts=2 et sw=2 tw=80: */ + +/************************************************************* + * + * MathJax/jax/output/CommonHTML/autoload/multiline.js + * + * Implements the CommonHTML output for 's that contain line breaks. + * + * --------------------------------------------------------------------- + * + * Copyright (c) 2015 The MathJax Consortium + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +MathJax.Hub.Register.StartupHook("CommonHTML Jax Ready",function () { + var VERSION = "2.5.0"; + var MML = MathJax.ElementJax.mml, + HTML = MathJax.HTML, CONFIG = MathJax.Hub.config, + CHTML = MathJax.OutputJax.CommonHTML; + + // + // Penalties for the various line breaks + // + var PENALTY = { + newline: 0, + nobreak: 1000000, + goodbreak: [-200], + badbreak: [+200], + auto: [0], + + toobig: 800, + nestfactor: 400, + spacefactor: -100, + spaceoffset: 2, + spacelimit: 1, // spaces larger than this get a penalty boost + fence: 500, + close: 500 + }; + + var ENDVALUES = {linebreakstyle: "after"}; + + + /**************************************************************************/ + + MML.mbase.Augment({ + CHTMLlinebreakPenalty: PENALTY, + + /****************************************************************/ + // + // Handle breaking an mrow into separate lines + // + CHTMLmultiline: function (node) { + + // + // Find the parent element and mark it as multiline + // + var parent = this; + while (parent.inferred || (parent.parent && parent.parent.type === "mrow" && + parent.parent.data.length === 1)) {parent = parent.parent} + var isTop = ((parent.type === "math" && parent.Get("display") === "block") || + parent.type === "mtd"); + parent.isMultiline = true; + + // + // Default values for the line-breaking parameters + // + var VALUES = this.getValues( + "linebreak","linebreakstyle","lineleading","linebreakmultchar", + "indentalign","indentshift", + "indentalignfirst","indentshiftfirst", + "indentalignlast","indentshiftlast" + ); + if (VALUES.linebreakstyle === MML.LINEBREAKSTYLE.INFIXLINEBREAKSTYLE) + VALUES.linebreakstyle = this.Get("infixlinebreakstyle"); + VALUES.lineleading = CHTML.length2em(VALUES.lineleading,0.5); + + // + // Break the math at its best line breaks + // + CHTML.BBOX.empty(this.CHTML); + var stack = HTML.addElement(node,"mjx-stack"); + var state = { + BBOX: this.CHTML, + n: 0, Y: 0, + scale: (this.CHTML.scale||1), + isTop: isTop, + values: {}, + VALUES: VALUES + }, + align = this.CHTMLgetAlign(state,{}), + shift = this.CHTMLgetShift(state,{},align), + start = [], + end = { + index:[], penalty:PENALTY.nobreak, + w:0, W:shift, shift:shift, scanW:shift, + nest: 0 + }, + broken = false; + + while (this.CHTMLbetterBreak(end,state) && + (end.scanW >= CHTML.linebreakWidth || end.penalty === PENALTY.newline)) { + this.CHTMLaddLine(stack,start,end.index,state,end.values,broken); + start = end.index.slice(0); broken = true; + align = this.CHTMLgetAlign(state,end.values); + shift = this.CHTMLgetShift(state,end.values,align); + end.W = end.shift = end.scanW = shift; end.penalty = PENALTY.nobreak; + } + state.isLast = true; + this.CHTMLaddLine(stack,start,[],state,ENDVALUES,broken); + + node.style.width = stack.style.width = this.CHTML.pwidth = "100%"; + this.CHTML.isMultiline = parent.CHTML.isMultiline = true; + stack.style.verticalAlign = CHTML.Em(state.d - this.CHTML.d); + + return node; + }, + + /****************************************************************/ + // + // Locate the next linebreak that is better than the current one + // + CHTMLbetterBreak: function (info,state) { + if (this.isToken) return false; // FIXME: handle breaking of token elements + if (this.isEmbellished()) { + info.embellished = this; + return this.CoreMO().CHTMLbetterBreak(info,state); + } + if (this.linebreakContainer) return false; + // + // Get the current breakpoint position and other data + // + var index = info.index.slice(0), i = info.index.shift(), + m = this.data.length, W, w, scanW, broken = (info.index.length > 0), better = false; + if (i == null) i = -1; if (!broken) {i++; info.W += info.w; info.w = 0} + scanW = info.scanW = info.W; info.nest++; + // + // Look through the line for breakpoints, + // (as long as we are not too far past the breaking width) + // + while (i < m && info.scanW < 1.33*CHTML.linebreakWidth) { + if (this.data[i]) { + if (this.data[i].CHTMLbetterBreak(info,state)) { + better = true; index = [i].concat(info.index); W = info.W; w = info.w; + if (info.penalty === PENALTY.newline) { + info.index = index; + if (info.nest) {info.nest--} + return true; + } + } + scanW = (broken ? info.scanW : this.CHTMLaddWidth(i,info,scanW)); + } + info.index = []; i++; broken = false; + } + if (info.nest) {info.nest--} + info.index = index; + if (better) {info.W = W; info.w = w} + return better; + }, + CHTMLaddWidth: function (i,info,scanW) { + if (this.data[i]) { + var node = this.data[i].CHTMLnodeElement(), bbox = this.data[i].CHTML; + scanW += bbox.w + (bbox.L||0) + (bbox.R||0); + info.W = info.scanW = scanW; info.w = 0; + } + return scanW; + }, + + /****************************************************************/ + // + // Create a new line and move the required elements into it + // Position it using proper alignment and indenting + // + CHTMLaddLine: function (stack,start,end,state,values,broken) { + // + // Create a box for the line, with empty BBox + // fill it with the proper elements, + // and clean up the bbox + // + var block = HTML.addElement(stack,"mjx-block",{},[["mjx-box"]]), line = block.firstChild; + var bbox = state.bbox = CHTML.BBOX.empty(); + state.first = broken; state.last = true; + this.CHTMLmoveLine(start,end,line,state,values); + bbox.clean(); + // + // Get the alignment and shift values + // + var align = this.CHTMLgetAlign(state,values), + shift = this.CHTMLgetShift(state,values,align,true); + // + // Set the Y offset based on previous depth, leading, and current height + // + var dY = 0; + if (state.n > 0) { + var LHD = CHTML.FONTDATA.baselineskip; + var leading = (state.values.lineleading == null ? state.VALUES : state.values).lineleading * state.scale; + var Y = state.Y; + state.Y -= Math.max(LHD,state.d + bbox.h + leading); + dY = Y - state.Y - state.d - bbox.h; + } + // + // Place the new line + // + if (shift) line.style.margin = "0 "+CHTML.Em(-shift)+" 0 "+CHTML.Em(shift); + if (align !== MML.INDENTALIGN.LEFT) block.style.textAlign = align; + if (dY) block.style.paddingTop = CHTML.Em(dY); + state.BBOX.combine(bbox,shift,state.Y); +//this.CHTMLdrawBBox(line,bbox); + // + // Save the values needed for the future + // + state.d = state.bbox.d; state.values = values; state.n++; + }, + + /****************************************************************/ + // + // Get alignment and shift values from the given data + // + CHTMLgetAlign: function (state,values) { + var cur = values, prev = state.values, def = state.VALUES, align; + if (state.n === 0) align = cur.indentalignfirst || prev.indentalignfirst || def.indentalignfirst; + else if (state.isLast) align = prev.indentalignlast || def.indentalignlast; + else align = prev.indentalign || def.indentalign; + if (align === MML.INDENTALIGN.INDENTALIGN) align = prev.indentalign || def.indentalign; + if (align === MML.INDENTALIGN.AUTO) align = (state.isTop ? CONFIG.displayAlign : MML.INDENTALIGN.LEFT); + return align; + }, + CHTMLgetShift: function (state,values,align,noadjust) { + var cur = values, prev = state.values, def = state.VALUES, shift; + if (state.n === 0) shift = cur.indentshiftfirst || prev.indentshiftfirst || def.indentshiftfirst; + else if (state.isLast) shift = prev.indentshiftlast || def.indentshiftlast; + else shift = prev.indentshift || def.indentshift; + if (shift === MML.INDENTSHIFT.INDENTSHIFT) shift = prev.indentshift || def.indentshift; + if (shift === "auto" || shift === "") shift = "0"; + shift = CHTML.length2em(shift,CHTML.cwidth); + if (state.isTop && CONFIG.displayIndent !== "0") { + var indent = CHTML.length2em(CONFIG.displayIndent,CHTML.cwidth); + shift += (align === MML.INDENTALIGN.RIGHT ? -indent : indent); + } + return (align === MML.INDENTALIGN.RIGHT && !noadjust ? -shift : shift); + }, + + /****************************************************************/ + // + // Move the selected elements into the new line's box, + // moving whole items when possible, and parts of ones + // that are split by a line break. + // + CHTMLmoveLine: function (start,end,node,state,values) { + var i = start[0], j = end[0]; + if (i == null) i = -1; if (j == null) j = this.data.length-1; + if (i === j && start.length > 1) { + // + // If starting and ending in the same element move the subpiece to the new line + // + this.data[i].CHTMLmoveSlice(start.slice(1),end.slice(1),node,state,values,"marginLeft"); + } else { + // + // Otherwise, move the remainder of the initial item + // and any others up to the last one + // + var last = state.last; state.last = false; + while (i < j) { + if (this.data[i]) { + if (start.length <= 1) {this.data[i].CHTMLmoveNode(node,state,values)} + else {this.data[i].CHTMLmoveSlice(start.slice(1),[],node,state,values,"marginLeft")} + } + i++; state.first = false; start = []; + } + // + // If the last item is complete, move it, + // otherwise move the first part of it up to the split + // + state.last = last; + if (this.data[i]) { + if (end.length <= 1) {this.data[i].CHTMLmoveNode(node,state,values)} + else {this.data[i].CHTMLmoveSlice([],end.slice(1),node,state,values,"marginRight")} + } + } + }, + + /****************************************************************/ + // + // Split an element and copy the selected items into the new part + // + CHTMLmoveSlice: function (start,end,node,state,values,margin) { + // + // Create a new box for the slice of the element + // Move the selected portion into the slice + // If it is the last slice + // Remove the original (now empty) node + // Rename the Continue-0 node with the original name (for CHTMLnodeElement) + // + var slice = this.CHTMLcreateSliceNode(node); + this.CHTMLmoveLine(start,end,slice,state,values); + if (slice.style[margin]) slice.style[margin] = ""; + if (this.CHTML.L) { + if (margin !== "marginLeft") state.bbox.w += this.CHTML.L; + else slice.className = slice.className.replace(/ MJXc-space\d/,""); + } + if (this.CHTML.R && margin !== "marginRight") state.bbox.w += this.CHTML.R; + if (end.length === 0) { + node = this.CHTMLnodeElement(); + node.parentNode.removeChild(node); + node.nextMathJaxNode.id = node.id; + } + return slice; + }, + + /****************************************************************/ + // + // Create a new node for an element that is split in two + // Clone the original and update its ID. + // Link the old node to the new one so we can find it later + // + CHTMLcreateSliceNode: function (node) { + var NODE = this.CHTMLnodeElement(), n = 0; + var LAST = NODE; while (LAST.nextMathJaxNode) {LAST = LAST.nextMathJaxNode; n++} + var SLICE = NODE.cloneNode(false); LAST.nextMathJaxNode = SLICE; SLICE.nextMathJaxNode = null; + SLICE.id += "-MJX-Continue-"+n; + return node.appendChild(SLICE); + }, + + /****************************************************************/ + // + // Move an element from its original node to its new location in + // a split element or the new line's node + // + CHTMLmoveNode: function (line,state,values) { + // FIXME: handle linebreakstyle === "duplicate" + // FIXME: handle linebreakmultchar + if (!(state.first || state.last) || + (state.first && state.values.linebreakstyle === MML.LINEBREAKSTYLE.BEFORE) || + (state.last && values.linebreakstyle === MML.LINEBREAKSTYLE.AFTER)) { + // + // Move node + // + var node = this.CHTMLnodeElement(); + line.appendChild(node); + // + // If it is last, remove right margin + // If it is first, remove left margin + // + if (state.last) node.style.marginRight = ""; + if (state.first || state.nextIsFirst) { + node.style.marginLeft = ""; this.CHTML.L = 0; + node.className = node.className.replace(/ MJXc-space\d/,""); + } + if (state.first && this.CHTML.w === 0) {state.nextIsFirst = true} + else {delete state.nextIsFirst} + // + // Update bounding box + // + state.bbox.combine(this.CHTML,state.bbox.w,0); + } + } + }); + + /**************************************************************************/ + + MML.mfenced.Augment({ + CHTMLbetterBreak: function (info,state) { + // + // Get the current breakpoint position and other data + // + var index = info.index.slice(0), i = info.index.shift(), + m = this.data.length, W, w, scanW, broken = (info.index.length > 0), better = false; + if (i == null) i = -1; if (!broken) {i++; info.W += info.w; info.w = 0} + scanW = info.scanW = info.W; info.nest++; + // + // Create indices that include the delimiters and separators + // + if (!this.dataI) { + this.dataI = []; + if (this.data.open) this.dataI.push("open"); + if (m) this.dataI.push(0); + for (var j = 1; j < m; j++) { + if (this.data["sep"+j]) this.dataI.push("sep"+j); + this.dataI.push(j); + } + if (this.data.close) this.dataI.push("close"); + } + m = this.dataI.length; + // + // Look through the line for breakpoints, including the open, close, and separators + // (as long as we are not too far past the breaking width) + // + while (i < m && info.scanW < 1.33*CHTML.linebreakWidth) { + var k = this.dataI[i]; + if (this.data[k]) { + if (this.data[k].CHTMLbetterBreak(info,state)) { + better = true; index = [i].concat(info.index); W = info.W; w = info.w; + if (info.penalty === PENALTY.newline) { + info.index = index; + if (info.nest) info.nest--; + return true; + } + } + scanW = (broken ? info.scanW : this.CHTMLaddWidth(i,info,scanW)); + } + info.index = []; i++; broken = false; + } + if (info.nest) info.nest--; + info.index = index; + if (better) {info.W = W; info.w = w} + return better; + }, + + CHTMLmoveLine: function (start,end,node,state,values) { + var i = start[0], j = end[0]; + if (i == null) i = -1; if (j == null) j = this.dataI.length-1; + if (i === j && start.length > 1) { + // + // If starting and ending in the same element move the subpiece to the new line + // + this.data[this.dataI[i]].CHTMLmoveSlice(start.slice(1),end.slice(1),node,state,values,"marginLeft"); + } else { + // + // Otherwise, move the remainder of the initial item + // and any others (including open and separators) up to the last one + // + var last = state.last; state.last = false; var k = this.dataI[i]; + while (i < j) { + if (this.data[k]) { + if (start.length <= 1) {this.data[k].CHTMLmoveNode(node,state,values)} + else {this.data[k].CHTMLmoveSlice(start.slice(1),[],node,state,values,"marginLeft")} + } + i++; k = this.dataI[i]; state.first = false; start = []; + } + // + // If the last item is complete, move it + // + state.last = last; + if (this.data[k]) { + if (end.length <= 1) {this.data[k].CHTMLmoveNode(node,state,values)} + else {this.data[k].CHTMLmoveSlice([],end.slice(1),node,state,values,"marginRight")} + } + } + } + + }); + + /**************************************************************************/ + + MML.msubsup.Augment({ + CHTMLbetterBreak: function (info,state) { + if (!this.data[this.base]) {return false} + // + // Get the current breakpoint position and other data + // + var index = info.index.slice(0), i = info.index.shift(), + W, w, scanW, broken = (info.index.length > 0), better = false; + if (!broken) {info.W += info.w; info.w = 0} + scanW = info.scanW = info.W; + // + // Record the width of the base and the super- and subscripts + // + if (i == null) { + this.CHTML.baseW = this.data[this.base].CHTML.w; + this.CHTML.dw = this.CHTML.w - this.CHTML.baseW; + } + // + // Check if the base can be broken + // + if (this.data[this.base].CHTMLbetterBreak(info,state)) { + better = true; index = [this.base].concat(info.index); W = info.W; w = info.w; + if (info.penalty === PENALTY.newline) better = broken = true; + } + // + // Add in the base if it is unbroken, and add the scripts + // + if (!broken) this.CHTMLaddWidth(this.base,info,scanW); + info.scanW += this.CHTML.dw; info.W = info.scanW; + info.index = []; if (better) {info.W = W; info.w = w; info.index = index} + return better; + }, + + CHTMLmoveLine: function (start,end,node,state,values) { + // + // Move the proper part of the base + // + if (this.data[this.base]) { + if (start.length > 1) { + this.data[this.base].CHTMLmoveSlice(start.slice(1),end.slice(1),node,state,values,"marginLeft"); + } else { + if (end.length <= 1) {this.data[this.base].CHTMLmoveNode(node,state,values)} + else {this.data[this.base].CHTMLmoveSlice([],end.slice(1),node,state,values,"marginRight")} + } + } + // + // If this is the end, check for super and subscripts, and move those + // by moving the stack that contains them, and shifting by the amount of the + // base that has been removed. Remove the empty base box from the stack. + // + if (end.length === 0) { + var s = this.data[this.sup] || this.data[this.sub]; + if (s && this.CHTMLnotEmpty(s)) { + var box = s.CHTMLnodeElement().parentNode, stack = box.parentNode; + if (this.data[this.base]) stack.removeChild(stack.firstChild); + for (box = stack.firstChild; box; box = box.nextSibling) + {box.style.left = CHTML.Em(CHTML.unEm(box.style.left)-this.CHTML.baseW)} +// stack.bbox.w -= this.CHTML.baseW; stack.style.width = CHTML.Em(stack.bbox.w); +// this.HTMLcombineBBoxes(stack,span.bbox); + node.appendChild(stack); + } + } + } + + }); + + /**************************************************************************/ + + MML.mmultiscripts.Augment({ + CHTMLbetterBreak: function (info,state) { + if (!this.data[this.base]) return false; + // + // Get the current breakpoint position and other data + // + var index = info.index.slice(0); info.index.shift(); + var W, w, scanW, broken = (info.index.length > 0), better = false; + if (!broken) {info.W += info.w; info.w = 0} + info.scanW = info.W; + // + // Get the bounding boxes and the width of the scripts + // + var bbox = this.CHTML, + base = this.data[this.base].CHTML; + var dw = bbox.w - base.w; + // + // Add in the prescripts + // + info.scanW += bbox.dx; scanW = info.scanW; + // + // Check if the base can be broken + // + if (this.data[this.base].CHTMLbetterBreak(info,state)) { + better = true; index = [this.base].concat(info.index); W = info.W; w = info.w; + if (info.penalty === PENALTY.newline) better = broken = true; + } + // + // Add in the base if it is unbroken, and add the scripts + // + if (!broken) this.CHTMLaddWidth(this.base,info,scanW); + info.scanW += dw; info.W = info.scanW; + info.index = []; if (better) {info.W = W; info.w = w; info.index = index} + return better; + }, + + CHTMLmoveLine: function (start,end,node,state,values) { + var NODE = this.CHTMLnodeElement(), data = this.CHTML, + stack = NODE.firstChild, BOX = {}; + var box = stack.firstChild; + + // + // Get the boxes for the scripts (if any) + // +// while (box) { +// if (box.bbox && box.bbox.name) {BOX[box.bbox.name] = box} +// box = box.nextSibling; +// } + // + // If this is the start, move the prescripts, if any. + // + if (start.length < 1) { + if (BOX.presub || BOX.presup) { + var STACK = HTMLCSS.createStack(node); + if (BOX.presup) { + HTMLCSS.addBox(STACK,BOX.presup); + HTMLCSS.placeBox(BOX.presup,data.dx-BOX.presup.bbox.w,data.u); + } + if (BOX.presub) { + HTMLCSS.addBox(STACK,BOX.presub); + HTMLCSS.placeBox(BOX.presub,data.dx+data.delta-BOX.presub.bbox.w,-data.v); + } + this.HTMLcombineBBoxes(STACK,node.bbox); + node.appendChild(STACK); + STACK.style.width = HTMLCSS.Em(data.dx); + } + } + // + // Move the proper part of the base + // + if (this.data[this.base]) { + if (start.length > 1) { + this.data[this.base].CHTMLmoveSlice(start.slice(1),end.slice(1),node,state,values,"marginLeft"); + } else { + if (end.length <= 1) {this.data[this.base].CHTMLmoveNode(node,state,values)} + else {this.data[this.base].CHTMLmoveSlice([],end.slice(1),node,state,values,"marginRight")} + } + } + // + // If this is the end, check for super and subscripts, and move those + // by moving the stack that contains them, and shifting by the amount of the + // base that has been removed. Remove the empty base box from the stack. + // + if (end.length === 0) { + if (this.data[this.base]) stack.removeChild(stack.firstChild); + for (box = stack.firstChild; box; box = box.nextSibling) + box.style.left = CHTML.Em(CHTML.unEm(box.style.left)-data.px); +// stack.bbox.w -= data.px; stack.style.width = HTMLCSS.Em(stack.bbox.w); +// this.HTMLcombineBBoxes(stack,node.bbox); + node.appendChild(stack); + } + } + + }); + + /**************************************************************************/ + + MML.mo.Augment({ + // + // Override the method for checking line breaks to properly handle + // + CHTMLbetterBreak: function (info,state) { + if (info.values && info.values.id === this.CHTMLnodeID) return false; + var values = this.getValues( + "linebreak","linebreakstyle","lineleading","linebreakmultchar", + "indentalign","indentshift", + "indentalignfirst","indentshiftfirst", + "indentalignlast","indentshiftlast", + "texClass", "fence" + ); + if (values.linebreakstyle === MML.LINEBREAKSTYLE.INFIXLINEBREAKSTYLE) + values.linebreakstyle = this.Get("infixlinebreakstyle"); + // + // Adjust nesting by TeX class (helps output that does not include + // mrows for nesting, but can leave these unbalanced. + // + if (values.texClass === MML.TEXCLASS.OPEN) info.nest++; + if (values.texClass === MML.TEXCLASS.CLOSE && info.nest) info.nest--; + // + // Get the default penalty for this location + // + var W = info.scanW, mo = (info.embellished||this); delete info.embellished; + var w = this.CHTML.w + (this.CHTML.L||0) + (this.CHTML.R||0); + if (values.linebreakstyle === MML.LINEBREAKSTYLE.AFTER) {W += w; w = 0} + if (W - info.shift === 0 && values.linebreak !== MML.LINEBREAK.NEWLINE) + return false; // don't break at zero width (FIXME?) + var offset = CHTML.linebreakWidth - W; + // Adjust offest for explicit first-line indent and align + if (state.n === 0 && (values.indentshiftfirst !== state.VALUES.indentshiftfirst || + values.indentalignfirst !== state.VALUES.indentalignfirst)) { + var align = this.CHTMLgetAlign(state,values), + shift = this.CHTMLgetShift(state,values,align); + offset += (info.shift - shift); + } + // + var penalty = Math.floor(offset / CHTML.linebreakWidth * 1000); + if (penalty < 0) penalty = PENALTY.toobig - 3*penalty; + if (values.fence) penalty += PENALTY.fence; + if ((values.linebreakstyle === MML.LINEBREAKSTYLE.AFTER && + values.texClass === MML.TEXCLASS.OPEN) || + values.texClass === MML.TEXCLASS.CLOSE) penalty += PENALTY.close; + penalty += info.nest * PENALTY.nestfactor; + // + // Get the penalty for this type of break and + // use it to modify the default penalty + // + var linebreak = PENALTY[values.linebreak||MML.LINEBREAK.AUTO]; + if (!(linebreak instanceof Array)) { + // for breaks past the width, don't modify penalty + if (offset >= 0) {penalty = linebreak * info.nest} + } else {penalty = Math.max(1,penalty + linebreak[0] * info.nest)} + // + // If the penalty is no better than the current one, return false + // Otherwise save the data for this breakpoint and return true + // + if (penalty >= info.penalty) return false; + info.penalty = penalty; info.values = values; info.W = W; info.w = w; + values.lineleading = CHTML.length2em(values.lineleading,state.VALUES.lineleading); + values.id = this.CHTMLnodeID; + return true; + } + }); + + /**************************************************************************/ + + MML.mspace.Augment({ + // + // Override the method for checking line breaks to properly handle + // + CHTMLbetterBreak: function (info,state) { + if (info.values && info.values.id === this.CHTMLnodeID) return false; + var values = this.getValues("linebreak"); + var linebreakValue = values.linebreak; + if (!linebreakValue || this.hasDimAttr()) { + // The MathML spec says that the linebreak attribute should be ignored + // if any dimensional attribute is set. + linebreakValue = MML.LINEBREAK.AUTO; + } + // + // Get the default penalty for this location + // + var W = info.scanW, w = this.CHTML.w + (this.CHTML.L||0) + (this.CHTML.R||0); + if (W - info.shift === 0) return false; // don't break at zero width (FIXME?) + var offset = CHTML.linebreakWidth - W; + // + var penalty = Math.floor(offset / CHTML.linebreakWidth * 1000); + if (penalty < 0) penalty = PENALTY.toobig - 3*penalty; + penalty += info.nest * PENALTY.nestfactor; + // + // Get the penalty for this type of break and + // use it to modify the default penalty + // + var linebreak = PENALTY[linebreakValue]; + if (linebreakValue === MML.LINEBREAK.AUTO && w >= PENALTY.spacelimit && + !this.mathbackground && !this.background) + linebreak = [(w+PENALTY.spaceoffset)*PENALTY.spacefactor]; + if (!(linebreak instanceof Array)) { + // for breaks past the width, don't modify penalty + if (offset >= 0) {penalty = linebreak * info.nest} + } else {penalty = Math.max(1,penalty + linebreak[0] * info.nest)} + // + // If the penalty is no better than the current one, return false + // Otherwise save the data for this breakpoint and return true + // + if (penalty >= info.penalty) return false; + info.penalty = penalty; info.values = values; info.W = W; info.w = w; + values.lineleading = state.VALUES.lineleading; + values.linebreakstyle = "before"; values.id = this.CHTMLnodeID; + return true; + } + }); + + // + // Hook into the mathchoice extension + // + MathJax.Hub.Register.StartupHook("TeX mathchoice Ready",function () { + MML.TeXmathchoice.Augment({ + CHTMLbetterBreak: function (info,state) { + return this.Core().CHTMLbetterBreak(info,state); + }, + CHTMLmoveLine: function (start,end,node,state,values) { + return this.Core().CHTMLmoveSlice(start,end,node,state,values); + } + }); + }); + + // + // Have maction process only the selected item + // + MML.maction.Augment({ + CHTMLbetterBreak: function (info,state) { + return this.Core().CHTMLbetterBreak(info,state); + }, + CHTMLmoveLine: function (start,end,node,state,values) { + return this.Core().CHTMLmoveSlice(start,end,node,state,values); + } + }); + + // + // Have semantics only do the first element + // (FIXME: do we need to do anything special about annotation-xml?) + // + MML.semantics.Augment({ + CHTMLbetterBreak: function (info,state) { + return (this.data[0] ? this.data[0].CHTMLbetterBreak(info,state) : false); + }, + CHTMLmoveLine: function (start,end,node,state,values) { + return (this.data[0] ? this.data[0].CHTMLmoveSlice(start,end,node,state,values) : null); + } + }); + + /**************************************************************************/ + + MathJax.Hub.Startup.signal.Post("CommonHTML multiline Ready"); + MathJax.Ajax.loadComplete(CHTML.autoloadDir+"/multiline.js"); + +}); diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index 603813f82..8d4706e8b 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -184,6 +184,7 @@ var BIGDIMEN = 1000000; var V = "V", H = "H"; + var LINEBREAKS = {}; CHTML.Augment({ settings: HUB.config.menuSettings, @@ -197,6 +198,7 @@ if (settings.scale) {this.config.scale = settings.scale} this.require.push(this.fontDir+"/TeX/fontdata.js"); this.require.push(MathJax.OutputJax.extensionDir+"/MathEvents.js"); + LINEBREAKS = this.config.linebreaks; }, Startup: function () { @@ -286,8 +288,7 @@ // Get linebreaking information // var maxwidth = 100000, relwidth = false, cwidth = 0, - linebreak = this.config.linebreaks.automatic, - width = this.config.linebreaks.width; + linebreak = LINEBREAKS.automatic, width = LINEBREAKS.width; if (linebreak) { relwidth = !!width.match(/^\s*(\d+(\.\d*)?%\s*)?container\s*$/); if (relwidth) {width = width.replace(/\s*container\s*/,"")} @@ -354,7 +355,7 @@ if (style.maxWidth !== "none") {cwidth = parseFloat(style.maxWidth); break} node = node.parentNode; } - + if (relwidth) maxwidth = cwidth; scale = (this.config.matchFontHeight ? ex/this.TEX.x_height/em : 1); scale = Math.floor(Math.max(this.config.minScaleAdjust/100,scale)*this.config.scale); jax.CHTML.scale = scale/100; jax.CHTML.fontSize = scale+"%"; @@ -1224,6 +1225,7 @@ toCommonHTML: function (node,options) { return this.CHTMLdefaultNode(node,options); }, + CHTMLmultiline: function () {MML.mbase.CHTMLautoloadFile("multiline")}, CHTMLdefaultNode: function (node,options) { if (!options) options = {}; @@ -1384,7 +1386,7 @@ CHTMLhandleBBox: function (node) { var BBOX = this.CHTML, style = node.style; - if (this.data.length === 1 && this.data[0].CHTML.pwidth) { + if (this.data.length === 1 && (this.data[0].CHTML||{}).pwidth) { BBOX.pwidth = this.data[0].CHTML.pwidth; BBOX.mwidth = this.data[0].CHTML.mwidth; style.width = "100%"; @@ -1483,8 +1485,8 @@ // // Debugging function to see if internal BBox matches actual bbox // - CHTMLdrawBBox: function (node) { - var bbox = this.CHTML; + CHTMLdrawBBox: function (node,bbox) { + if (!bbox) bbox = this.CHTML; var box = HTML.Element("mjx-box", {style:{"font-size":node.style.fontSize, opacity:.25,"margin-left":CHTML.Em(-(bbox.w+(bbox.R||0)))}},[ ["mjx-box",{style:{ @@ -2356,8 +2358,13 @@ node = this.CHTMLdefaultNode(node); var bbox = this.CHTML, H = bbox.h, D = bbox.d; for (var i = 0, m = this.data.length; i < m; i++) this.CHTMLstretchChildV(i,H,D); + if (this.CHTMLlineBreaks()) this.CHTMLmultiline(node); return node; }, + CHTMLlineBreaks: function () { + if (!LINEBREAKS.automatic || !this.parent.linebreakContainer) return false; + return (this.CHTML.w > CHTML.linebreakWidth) || this.hasNewline(); + }, CHTMLstretchV: function (h,d) { this.CHTMLstretchChildV(this.CoreIndex(),h,d); return this.CHTML; From 6d637bb3917f631bb3d216f6f02305a7ff5d9538 Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Wed, 1 Apr 2015 12:11:19 -0400 Subject: [PATCH 124/186] Handle linebreaking in msubsup. --- .../output/CommonHTML/autoload/multiline.js | 59 +++++++++++-------- unpacked/jax/output/CommonHTML/jax.js | 3 +- 2 files changed, 35 insertions(+), 27 deletions(-) diff --git a/unpacked/jax/output/CommonHTML/autoload/multiline.js b/unpacked/jax/output/CommonHTML/autoload/multiline.js index f65413125..1b0dbfa28 100644 --- a/unpacked/jax/output/CommonHTML/autoload/multiline.js +++ b/unpacked/jax/output/CommonHTML/autoload/multiline.js @@ -273,8 +273,8 @@ MathJax.Hub.Register.StartupHook("CommonHTML Jax Ready",function () { var last = state.last; state.last = false; while (i < j) { if (this.data[i]) { - if (start.length <= 1) {this.data[i].CHTMLmoveNode(node,state,values)} - else {this.data[i].CHTMLmoveSlice(start.slice(1),[],node,state,values,"marginLeft")} + if (start.length <= 1) this.data[i].CHTMLmoveNode(node,state,values); + else this.data[i].CHTMLmoveSlice(start.slice(1),[],node,state,values,"marginLeft"); } i++; state.first = false; start = []; } @@ -284,8 +284,8 @@ MathJax.Hub.Register.StartupHook("CommonHTML Jax Ready",function () { // state.last = last; if (this.data[i]) { - if (end.length <= 1) {this.data[i].CHTMLmoveNode(node,state,values)} - else {this.data[i].CHTMLmoveSlice([],end.slice(1),node,state,values,"marginRight")} + if (end.length <= 1) this.data[i].CHTMLmoveNode(node,state,values); + else this.data[i].CHTMLmoveSlice([],end.slice(1),node,state,values,"marginRight"); } } }, @@ -357,8 +357,8 @@ MathJax.Hub.Register.StartupHook("CommonHTML Jax Ready",function () { node.style.marginLeft = ""; this.CHTML.L = 0; node.className = node.className.replace(/ MJXc-space\d/,""); } - if (state.first && this.CHTML.w === 0) {state.nextIsFirst = true} - else {delete state.nextIsFirst} + if (state.first && this.CHTML.w === 0) state.nextIsFirst = true; + else delete state.nextIsFirst; // // Update bounding box // @@ -433,8 +433,8 @@ MathJax.Hub.Register.StartupHook("CommonHTML Jax Ready",function () { var last = state.last; state.last = false; var k = this.dataI[i]; while (i < j) { if (this.data[k]) { - if (start.length <= 1) {this.data[k].CHTMLmoveNode(node,state,values)} - else {this.data[k].CHTMLmoveSlice(start.slice(1),[],node,state,values,"marginLeft")} + if (start.length <= 1) this.data[k].CHTMLmoveNode(node,state,values); + else this.data[k].CHTMLmoveSlice(start.slice(1),[],node,state,values,"marginLeft"); } i++; k = this.dataI[i]; state.first = false; start = []; } @@ -443,8 +443,8 @@ MathJax.Hub.Register.StartupHook("CommonHTML Jax Ready",function () { // state.last = last; if (this.data[k]) { - if (end.length <= 1) {this.data[k].CHTMLmoveNode(node,state,values)} - else {this.data[k].CHTMLmoveSlice([],end.slice(1),node,state,values,"marginRight")} + if (end.length <= 1) this.data[k].CHTMLmoveNode(node,state,values); + else this.data[k].CHTMLmoveSlice([],end.slice(1),node,state,values,"marginRight"); } } } @@ -491,28 +491,35 @@ MathJax.Hub.Register.StartupHook("CommonHTML Jax Ready",function () { // Move the proper part of the base // if (this.data[this.base]) { + var base = HTML.addElement(node,"mjx-base"); if (start.length > 1) { - this.data[this.base].CHTMLmoveSlice(start.slice(1),end.slice(1),node,state,values,"marginLeft"); + this.data[this.base].CHTMLmoveSlice(start.slice(1),end.slice(1),base,state,values,"marginLeft"); } else { - if (end.length <= 1) {this.data[this.base].CHTMLmoveNode(node,state,values)} - else {this.data[this.base].CHTMLmoveSlice([],end.slice(1),node,state,values,"marginRight")} + if (end.length <= 1) this.data[this.base].CHTMLmoveNode(base,state,values); + else this.data[this.base].CHTMLmoveSlice([],end.slice(1),base,state,values,"marginRight"); } } // // If this is the end, check for super and subscripts, and move those - // by moving the stack that contains them, and shifting by the amount of the - // base that has been removed. Remove the empty base box from the stack. + // by moving the elements that contains them. Adjust the bounding box + // to include the super and subscripts. // if (end.length === 0) { - var s = this.data[this.sup] || this.data[this.sub]; - if (s && this.CHTMLnotEmpty(s)) { - var box = s.CHTMLnodeElement().parentNode, stack = box.parentNode; - if (this.data[this.base]) stack.removeChild(stack.firstChild); - for (box = stack.firstChild; box; box = box.nextSibling) - {box.style.left = CHTML.Em(CHTML.unEm(box.style.left)-this.CHTML.baseW)} -// stack.bbox.w -= this.CHTML.baseW; stack.style.width = CHTML.Em(stack.bbox.w); -// this.HTMLcombineBBoxes(stack,span.bbox); - node.appendChild(stack); + var NODE = this.CHTMLnodeElement(), + stack = NODE.getElementsByTagName("mjx-stack")[0], + sup = NODE.getElementsByTagName("mjx-sup")[0], + sub = NODE.getElementsByTagName("mjx-sub")[0]; + if (stack) node.appendChild(stack); + else if (sup) node.appendChild(sup); + else if (sub) node.appendChild(sub); + var w = state.bbox.w, bbox; + if (sup) { + bbox = this.data[this.sup].CHTML; + state.bbox.combine(bbox,w,bbox.Y); + } + if (sub) { + bbox = this.data[this.sub].CHTML; + state.bbox.combine(bbox,w,bbox.Y); } } } @@ -595,8 +602,8 @@ MathJax.Hub.Register.StartupHook("CommonHTML Jax Ready",function () { if (start.length > 1) { this.data[this.base].CHTMLmoveSlice(start.slice(1),end.slice(1),node,state,values,"marginLeft"); } else { - if (end.length <= 1) {this.data[this.base].CHTMLmoveNode(node,state,values)} - else {this.data[this.base].CHTMLmoveSlice([],end.slice(1),node,state,values,"marginRight")} + if (end.length <= 1) this.data[this.base].CHTMLmoveNode(node,state,values); + else this.data[this.base].CHTMLmoveSlice([],end.slice(1),node,state,values,"marginRight"); } } // diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index 8d4706e8b..a5330ac53 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -1166,7 +1166,8 @@ if (this.L) this.L *= scale; if (this.R) this.R *= scale; }, - combine: function (cbox,x,y) { + combine: function (cbox,x,y) { + cbox.X = x; cbox.Y = y; // save for use with line breaking scale = cbox.rscale; if (x + scale*cbox.r > this.r) this.r = x + scale*cbox.r; if (x + scale*cbox.l < this.l) this.l = x + scale*cbox.l; From cdbe31db43ae79d1bc3d3f4e69e59a9b7c2e35a6 Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Wed, 1 Apr 2015 12:39:08 -0400 Subject: [PATCH 125/186] Add support for linebreaking in mmultiscripts --- .../output/CommonHTML/autoload/multiline.js | 73 ++++++++----------- 1 file changed, 31 insertions(+), 42 deletions(-) diff --git a/unpacked/jax/output/CommonHTML/autoload/multiline.js b/unpacked/jax/output/CommonHTML/autoload/multiline.js index 1b0dbfa28..2c7be1542 100644 --- a/unpacked/jax/output/CommonHTML/autoload/multiline.js +++ b/unpacked/jax/output/CommonHTML/autoload/multiline.js @@ -216,7 +216,6 @@ MathJax.Hub.Register.StartupHook("CommonHTML Jax Ready",function () { if (align !== MML.INDENTALIGN.LEFT) block.style.textAlign = align; if (dY) block.style.paddingTop = CHTML.Em(dY); state.BBOX.combine(bbox,shift,state.Y); -//this.CHTMLdrawBBox(line,bbox); // // Save the values needed for the future // @@ -541,13 +540,12 @@ MathJax.Hub.Register.StartupHook("CommonHTML Jax Ready",function () { // // Get the bounding boxes and the width of the scripts // - var bbox = this.CHTML, - base = this.data[this.base].CHTML; - var dw = bbox.w - base.w; + var bbox = this.CHTML, base = this.data[this.base].CHTML; + var dw = bbox.w - base.w - bbox.X; // - // Add in the prescripts + // Add in the width of the prescripts // - info.scanW += bbox.dx; scanW = info.scanW; + info.scanW += bbox.X; scanW = info.scanW; // // Check if the base can be broken // @@ -565,59 +563,50 @@ MathJax.Hub.Register.StartupHook("CommonHTML Jax Ready",function () { }, CHTMLmoveLine: function (start,end,node,state,values) { - var NODE = this.CHTMLnodeElement(), data = this.CHTML, - stack = NODE.firstChild, BOX = {}; - var box = stack.firstChild; - - // - // Get the boxes for the scripts (if any) - // -// while (box) { -// if (box.bbox && box.bbox.name) {BOX[box.bbox.name] = box} -// box = box.nextSibling; -// } + var NODE = this.CHTMLnodeElement(), data = this.CHTML, BOX = this.CHTMLbbox, NODE; // // If this is the start, move the prescripts, if any. // if (start.length < 1) { - if (BOX.presub || BOX.presup) { - var STACK = HTMLCSS.createStack(node); - if (BOX.presup) { - HTMLCSS.addBox(STACK,BOX.presup); - HTMLCSS.placeBox(BOX.presup,data.dx-BOX.presup.bbox.w,data.u); - } - if (BOX.presub) { - HTMLCSS.addBox(STACK,BOX.presub); - HTMLCSS.placeBox(BOX.presub,data.dx+data.delta-BOX.presub.bbox.w,-data.v); - } - this.HTMLcombineBBoxes(STACK,node.bbox); - node.appendChild(STACK); - STACK.style.width = HTMLCSS.Em(data.dx); - } + NODE = this.CHTMLnodeElement(); + var prestack = NODE.getElementsByTagName("mjx-prestack")[0], + presup = NODE.getElementsByTagName("mjx-presup")[0], + presub = NODE.getElementsByTagName("mjx-presub")[0]; + if (prestack) node.appendChild(prestack); + else if (presup) node.appendChild(presup); + else if (presub) node.appendChild(presub); + var w = state.bbox.w, bbox; + if (presup) state.bbox.combine(BOX.presup,w+BOX.presup.X,BOX.presup.Y); + if (presub) state.bbox.combine(BOX.presub,w+BOX.presub.X,BOX.presub.Y); } // // Move the proper part of the base // if (this.data[this.base]) { + var base = HTML.addElement(node,"mjx-base"); if (start.length > 1) { - this.data[this.base].CHTMLmoveSlice(start.slice(1),end.slice(1),node,state,values,"marginLeft"); + this.data[this.base].CHTMLmoveSlice(start.slice(1),end.slice(1),base,state,values,"marginLeft"); } else { - if (end.length <= 1) this.data[this.base].CHTMLmoveNode(node,state,values); - else this.data[this.base].CHTMLmoveSlice([],end.slice(1),node,state,values,"marginRight"); + if (end.length <= 1) this.data[this.base].CHTMLmoveNode(base,state,values); + else this.data[this.base].CHTMLmoveSlice([],end.slice(1),base,state,values,"marginRight"); } } // // If this is the end, check for super and subscripts, and move those - // by moving the stack that contains them, and shifting by the amount of the - // base that has been removed. Remove the empty base box from the stack. + // by moving the elements that contains them. Adjust the bounding box + // to include the super and subscripts. // if (end.length === 0) { - if (this.data[this.base]) stack.removeChild(stack.firstChild); - for (box = stack.firstChild; box; box = box.nextSibling) - box.style.left = CHTML.Em(CHTML.unEm(box.style.left)-data.px); -// stack.bbox.w -= data.px; stack.style.width = HTMLCSS.Em(stack.bbox.w); -// this.HTMLcombineBBoxes(stack,node.bbox); - node.appendChild(stack); + NODE = this.CHTMLnodeElement(); + var stack = NODE.getElementsByTagName("mjx-stack")[0], + sup = NODE.getElementsByTagName("mjx-sup")[0], + sub = NODE.getElementsByTagName("mjx-sub")[0]; + if (stack) node.appendChild(stack); + else if (sup) node.appendChild(sup); + else if (sub) node.appendChild(sub); + var w = state.bbox.w, bbox; + if (sup) state.bbox.combine(BOX.sup,w,BOX.sup.Y); + if (sub) state.bbox.combine(BOX.sub,w,BOX.sub.Y); } } From 47928642a20f4b615df4ffb0202420199a2dabf2 Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Wed, 1 Apr 2015 13:09:49 -0400 Subject: [PATCH 126/186] Add support for displayIndent and displayAlign --- unpacked/jax/output/CommonHTML/jax.js | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index a5330ac53..48ad79c2e 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -184,7 +184,7 @@ var BIGDIMEN = 1000000; var V = "V", H = "H"; - var LINEBREAKS = {}; + var LINEBREAKS = {}, CONFIG = MathJax.Hub.config; CHTML.Augment({ settings: HUB.config.menuSettings, @@ -1564,6 +1564,28 @@ if (this.CHTML.pwidth) { node.parentNode.style.width = this.CHTML.pwidth; node.parentNode.style.minWidth = this.CHTML.mwidth; + } else if (!this.isMultiline && this.Get("display") === "block") { + var values = this.getValues("indentalignfirst","indentshiftfirst","indentalign","indentshift"); + if (values.indentalignfirst !== MML.INDENTALIGN.INDENTALIGN) values.indentalign = values.indentalignfirst; + if (values.indentalign === MML.INDENTALIGN.AUTO) values.indentalign = CONFIG.displayAlign; + if (values.indentshiftfirst !== MML.INDENTSHIFT.INDENTSHIFT) values.indentshift = values.indentshiftfirst; + if (values.indentshift === "auto") values.indentshift = "0"; + var shift = CHTML.length2em(values.indentshift,CHTML.cwidth); + if (CONFIG.displayIndent !== "0") { + var indent = CHTML.length2em(CONFIG.displayIndent,CHTML.cwidth); + shift += (values.indentalign === MML.INDENTALIGN.RIGHT ? -indent : indent); + } + var styles = node.parentNode.parentNode.style; + styles.textAlign = values.indentalign; + // ### FIXME: make percentage widths respond to changes in container + if (shift) { + shift *= CHTML.em/CHTML.outerEm; + HUB.Insert(styles,({ + left: {marginLeft: CHTML.Em(shift)}, + right: {marginLeft: CHTML.Em(Math.max(0,this.CHTML.w+shift)), marginRight: CHTML.Em(-shift)}, + center: {marginLeft: CHTML.Em(shift), marginRight: CHTML.Em(-shift)} + })[values.indentalign]); + } } return node; } From b917b1a0c5c8d67188e7184e8b32b0c81578f556 Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Wed, 1 Apr 2015 17:15:03 -0400 Subject: [PATCH 127/186] Get the font name right in the @font-face directivs. (argh) --- unpacked/jax/output/CommonHTML/fonts/TeX/fontdata.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/unpacked/jax/output/CommonHTML/fonts/TeX/fontdata.js b/unpacked/jax/output/CommonHTML/fonts/TeX/fontdata.js index 067f78e4d..7051705fd 100644 --- a/unpacked/jax/output/CommonHTML/fonts/TeX/fontdata.js +++ b/unpacked/jax/output/CommonHTML/fonts/TeX/fontdata.js @@ -1660,7 +1660,7 @@ // The web font, if no local font found // ### FIXME: add more formats to src // - font = {"font-family":family+"w", src:"url('"+DIR+"/"+name+".otf')"}; + font = {"font-family":family+"w", src:"url('"+DIR+"/"+name+"-"+variant+".otf')"}; faces.push(font); // // A class that looks for the local and web fonts From 9b37d422b4fa8b27abbd22d6ca00f2a6592614f4 Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Wed, 1 Apr 2015 18:43:00 -0400 Subject: [PATCH 128/186] Don't use negative depths (Safari doesn't handle it properly), so store an extra bbox parameter that gives the negative depth and adjust for it in munderover, where it makes a difference. Might want to do this in mtable as well. --- unpacked/jax/output/CommonHTML/jax.js | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index 48ad79c2e..05fdd7fae 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -901,8 +901,9 @@ } if (list.length) this.addCharList(node.firstChild,list,bbox); bbox.clean(); - node.firstChild.style[bbox.h < 0 ? "marginTop" : "paddingTop"] = this.Em(bbox.h-(bbox.a||0)); - node.firstChild.style[bbox.d < 0 ? "marginBottom": "paddingBottom"] = this.Em(bbox.d); + if (bbox.d < 0) {bbox.D = bbox.d; bbox.d = 0} + if (bbox.h || bbox.a) node.firstChild.style[bbox.h < 0 ? "marginTop" : "paddingTop"] = this.Em(bbox.h-(bbox.a||0)); + if (bbox.d) node.firstChild.style[bbox.d < 0 ? "marginBottom": "paddingBottom"] = this.Em(bbox.d); return bbox; }, @@ -1032,6 +1033,7 @@ } node.appendChild(right); this.adjustHeights([left,ext,mid,ext2,right],hbox); + if (ebox.D) ebox.d = ebox.D; hbox.t = hbox.h; hbox.b = hbox.d; if (hbox.h !== ebox.h) node.style.marginTop = CHTML.Em(ebox.h - hbox.h); if (hbox.d !== ebox.d) node.style.marginBottom = CHTML.Em(ebox.d - hbox.d); @@ -1165,6 +1167,7 @@ this.l *= scale; this.r *= scale; this.t *= scale; this.b *= scale; if (this.L) this.L *= scale; if (this.R) this.R *= scale; + if (this.D) this.D *= scale; }, combine: function (cbox,x,y) { cbox.X = x; cbox.Y = y; // save for use with line breaking @@ -1175,12 +1178,14 @@ this.w = x + scale*(cbox.w + (cbox.L||0) + (cbox.R||0)); if (y + scale*cbox.h > this.h) this.h = y + scale*cbox.h; if (scale*cbox.d - y > this.d) this.d = scale*cbox.d - y; + if (cbox.D && (this.D == null || scale*cbox.D - y > this.D)) this.D = scale*cbox.D - y; if (y + scale*cbox.t > this.t) this.t = y + scale*cbox.t; if (scale*cbox.b - y > this.b) this.b = scale*cbox.b - y; }, updateFrom: function (cbox) { this.h = cbox.h; this.d = cbox.d; this.w = cbox.w; this.r = cbox.r; this.l = cbox.l; this.t = cbox.t; this.b = cbox.b; + if (cbox.D) this.D = cbox.D; }, adjust: function (m,x,X,M) { this[x] += CHTML.length2em(m); @@ -1994,6 +1999,7 @@ var stack = HTML.Element("mjx-stack"); stack.appendChild(over); stack.appendChild(base); } + if (obox.D) obox.d = obox.D; if (obox.d < 0) { // // For negative depths, set the height and align to top @@ -2044,13 +2050,14 @@ node.firstChild.firstChild.firstChild.appendChild(stack); node.firstChild.lastChild.appendChild(under); } + if (ubox.D) ubox.d = ubox.D; if (ubox.d < 0) { // // For negative depths, set the height and align to top // in order to avoid extra baseline space // under.firstChild.style.verticalAlign = "top"; - under.style.height = CHTML.Em(ubox.h+ubox.d); + node.firstChild.style.marginBottom = CHTML.Em(ubox.d); } // // determine the spacing From bfe88a01a2e4b7c3fdeb32df543a1a57561f967a Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Wed, 1 Apr 2015 18:56:27 -0400 Subject: [PATCH 129/186] Make nodes starting with 'mxj-' count as having isMathJax set. --- unpacked/MathJax.js | 11 +++++++---- unpacked/extensions/MathEvents.js | 4 ++-- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/unpacked/MathJax.js b/unpacked/MathJax.js index a8516038b..1c4d79fb4 100644 --- a/unpacked/MathJax.js +++ b/unpacked/MathJax.js @@ -1975,7 +1975,7 @@ MathJax.Hub = { getJaxFor: function (element) { if (typeof(element) === 'string') {element = document.getElementById(element)} if (element && element.MathJax) {return element.MathJax.elementJax} - if (element && element.isMathJax) { + if (this.isMathJaxNode(element)) { while (element && !element.jaxID) {element = element.parentNode} if (element) {return MathJax.OutputJax[element.jaxID].getJaxFromMath(element)} } @@ -1984,14 +1984,17 @@ MathJax.Hub = { isJax: function (element) { if (typeof(element) === 'string') {element = document.getElementById(element)} - if (element && element.isMathJax) {return 1} - if (element && element.tagName != null && element.tagName.toLowerCase() === 'script') { + if (this.isMathJaxNode(element.tagName)) {return 1} + if (element && (element.tagName||"").toLowerCase() === 'script') { if (element.MathJax) {return (element.MathJax.state === MathJax.ElementJax.STATE.PROCESSED ? 1 : -1)} if (element.type && this.inputJax[element.type.replace(/ *;(.|\s)*/,"")]) {return -1} } return 0; }, + isMathJaxNode: function (element) { + return !!element && (element.isMathJax || (element.tagName||"").substr(0,4) === "MJX-"); + }, setRenderer: function (renderer,type) { if (!renderer) return; @@ -2644,7 +2647,7 @@ MathJax.Hub.Startup = { } }, HashCheck: function (target) { - if (target.isMathJax) { + if (this.isMathJaxNode(target)) { var jax = MathJax.Hub.getJaxFor(target); if (jax && MathJax.OutputJax[jax.outputJax].hashCheck) {target = MathJax.OutputJax[jax.outputJax].hashCheck(target)} diff --git a/unpacked/extensions/MathEvents.js b/unpacked/extensions/MathEvents.js index ff6d316c0..eb2fb8200 100644 --- a/unpacked/extensions/MathEvents.js +++ b/unpacked/extensions/MathEvents.js @@ -250,7 +250,7 @@ if (SETTINGS.discoverable || SETTINGS.zoom === "Hover") { var from = event.fromElement || event.relatedTarget, to = event.toElement || event.target; - if (from && to && (from.isMathJax != to.isMathJax || + if (from && to && (HUB.isMathJaxNode(from) !== HUB.isMathJaxNode(to) || HUB.getJaxFor(from) !== HUB.getJaxFor(to))) { var jax = this.getJaxFromMath(math); if (jax.hover) {HOVER.ReHover(jax)} else {HOVER.HoverTimer(jax,math)} @@ -267,7 +267,7 @@ if (SETTINGS.discoverable || SETTINGS.zoom === "Hover") { var from = event.fromElement || event.relatedTarget, to = event.toElement || event.target; - if (from && to && (from.isMathJax != to.isMathJax || + if (from && to && (HUB.isMathJaxNode(from) !== HUB.isMathJaxNode(to) || HUB.getJaxFor(from) !== HUB.getJaxFor(to))) { var jax = this.getJaxFromMath(math); if (jax.hover) {HOVER.UnHover(jax)} else {HOVER.ClearHoverTimer()} From 7e52f9edd116effcba801b12eaf470bf8ce25732 Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Wed, 1 Apr 2015 19:11:03 -0400 Subject: [PATCH 130/186] Make sure we set relative mtable widths when needed. --- unpacked/jax/output/CommonHTML/autoload/mtable.js | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/unpacked/jax/output/CommonHTML/autoload/mtable.js b/unpacked/jax/output/CommonHTML/autoload/mtable.js index fbba76808..59da84aea 100644 --- a/unpacked/jax/output/CommonHTML/autoload/mtable.js +++ b/unpacked/jax/output/CommonHTML/autoload/mtable.js @@ -355,11 +355,6 @@ MathJax.Hub.Register.StartupHook("CommonHTML Jax Ready",function () { // if (setWidths) { if (relWidth) { - // - // Set variable width on DOM nodes - // - this.CHTML.pwidth = values.width; this.CHTML.mwidth = CHTML.Em(TW); - node.style.width = node.firstChild.style.width = "100%"; // // Attach appropriate widths to the columns // @@ -401,6 +396,13 @@ MathJax.Hub.Register.StartupHook("CommonHTML Jax Ready",function () { W[LABEL] = state.W[LABEL]; state.W = W; state.R = TW; + // + // Set variable width on DOM nodes + // + if (relWidth) { + this.CHTML.pwidth = values.width; this.CHTML.mwidth = CHTML.Em(TW); + node.style.width = node.firstChild.style.width = "100%"; + } }, // // Stretch any cells that can be stretched From 3270781b2c88d6a76a47f05d028a136db4a433e3 Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Thu, 2 Apr 2015 13:45:34 -0400 Subject: [PATCH 131/186] Avoid crashing in IE8, but still need to make EOT fonts in order for it tow work. --- .../output/CommonHTML/fonts/TeX/fontdata.js | 2 +- unpacked/jax/output/CommonHTML/jax.js | 53 +++++++++++++++---- 2 files changed, 44 insertions(+), 11 deletions(-) diff --git a/unpacked/jax/output/CommonHTML/fonts/TeX/fontdata.js b/unpacked/jax/output/CommonHTML/fonts/TeX/fontdata.js index 7051705fd..54b20196d 100644 --- a/unpacked/jax/output/CommonHTML/fonts/TeX/fontdata.js +++ b/unpacked/jax/output/CommonHTML/fonts/TeX/fontdata.js @@ -46,7 +46,7 @@ ".MJXc-TeX-unknown-R": {"font-family":UNDEFINEDFAMILY, "font-style":"normal", "font-weight":"normal"}, ".MJXc-TeX-unknown-I": {"font-family":UNDEFINEDFAMILY, "font-style":"italic", "font-weight":"normal"}, ".MJXc-TeX-unknown-B": {"font-family":UNDEFINEDFAMILY, "font-style":"normal", "font-weight":"bold"}, - ".MJXc-TeX-unknown-BI": {"font-family":UNDEFINEDFAMILY, "font-style":"italic", "font-weight":"bold"}, + ".MJXc-TeX-unknown-BI": {"font-family":UNDEFINEDFAMILY, "font-style":"italic", "font-weight":"bold"} }); CHTML.TEX = CHTML.TEXDEF; // use default TeX paramaters diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index 05fdd7fae..adf4f163d 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -53,7 +53,7 @@ "float": "none", "direction": "ltr", "word-wrap": "normal", - padding: "1px 0", + padding: "1px 0" }, ".MJXc-display": { display: "block", @@ -223,7 +223,7 @@ // // Used in preTranslate to get scaling factors and line width // - this.TestSpan = HTML.Element("mjx-test",{},[["mjx-ex-box-test"]]); + this.TestSpan = HTML.Element("mjx-test",{style:{left:"1em"}},[["mjx-ex-box-test"]]); // // Set up styles and preload web fonts @@ -253,12 +253,47 @@ // Get the default sizes (need styles in place to do this) // document.body.appendChild(this.TestSpan); - var style = window.getComputedStyle(this.TestSpan); - this.defaultEm = parseFloat(style.fontSize); + this.defaultEm = this.getFontSize(this.TestSpan); this.defaultEx = this.TestSpan.firstChild.offsetHeight/60; this.defaultWidth = this.TestSpan.offsetWidth; document.body.removeChild(this.TestSpan); }, + getFontSize: (window.getComputedStyle ? + function (node) { + var style = window.getComputedStyle(node); + return parseFloat(style.fontSize); + } : + // + // IE 8 doesn't do getComputedStyle, so use + // an alternative approach + // + function (node) { + return node.style.pixelLeft; + } + ), + getMaxWidth: (window.getComputedStyle ? + function (node) { + var style = window.getComputedStyle(node); + if (style.maxWidth !== "none") return parseFloat(style.maxWidth); + return 0; + } : + // + // IE 8 doesn't do getComputedStyle, so use + // currentStyle, and a hack to get the pixels for + // a non-px max-width + // + function (node) { + var max = node.currentStyle.maxWidth; + if (max !== "none") { + if (max.match(/\d*px/)) return parseFloat(max); + var left = node.style.left; + node.style.left = max; max = node.style.pixelLeft; + node.style.left = left; + return max; + } + return 0; + } + ), // // Load data for a font @@ -344,15 +379,13 @@ script = scripts[i]; if (!script.parentNode) continue; test = script.previousSibling; jax = script.MathJax.elementJax; if (!jax) continue; - var style = window.getComputedStyle(test); - em = parseFloat(style.fontSize); + em = CHTML.getFontSize(test); ex = test.firstChild.offsetHeight/60; if (ex === 0 || ex === "NaN") ex = this.defaultEx node = test; while (node) { cwidth = node.offsetWidth; if (cwidth) break; - var style = window.getComputedStyle(node); - if (style.maxWidth !== "none") {cwidth = parseFloat(style.maxWidth); break} + cwidth = CHTML.getMaxWidth(node); if (cwidth) break; node = node.parentNode; } if (relwidth) maxwidth = cwidth; @@ -2045,7 +2078,7 @@ if (!stretch) { HTML.addElement(node,"mjx-itable",{},[ ["mjx-row",{},[["mjx-cell"]]], - ["mjx-row"], + ["mjx-row"] ]); node.firstChild.firstChild.firstChild.appendChild(stack); node.firstChild.lastChild.appendChild(under); @@ -2292,7 +2325,7 @@ // return node; }, - CHTMLcanStretch: function (direction) {return false}, + CHTMLcanStretch: function (direction) {return false} }); /********************************************************/ From 7343e81dba4fcdd04af413b3eb2c1cf7e9b9b647 Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Thu, 2 Apr 2015 14:30:45 -0400 Subject: [PATCH 132/186] Handle combining characters so that they work in IE. --- unpacked/jax/output/CommonHTML/jax.js | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index adf4f163d..d0e4b0eec 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -166,15 +166,11 @@ "-webkit-box-shadow": "2px 2px 5px #AAAAAA", // Safari 3 and Chrome "-moz-box-shadow": "2px 2px 5px #AAAAAA", // Forefox 3.5 "-khtml-box-shadow": "2px 2px 5px #AAAAAA", // Konqueror -// filter: "progid:DXImageTransform.Microsoft.dropshadow(OffX=2, OffY=2, Color='gray', Positive='true')", // IE padding: "3px 4px", "z-index": 401, position: "absolute", left: 0, top: 0, width: "auto", height: "auto", display: "none" -// }, -// "#MathJax_Tooltip *": { -// filter: "none", opacity:1, background:"transparent" // for IE } }; @@ -1686,6 +1682,7 @@ }}); } if (values.text.length !== 1) delete this.CHTML.skew; + else if (this.CHTML.w === 0 && this.CHTML.l < 0) this.CHTMLfixCombiningChar(node); if (values.largeop) this.CHTMLcenterOp(node); } @@ -1737,6 +1734,18 @@ data.mathvariant = "-TeX-variant"; // ### FIXME: handle other fonts } }, + CHTMLfixCombiningChar: function (node) { + // + // IE doesn't display combining chararacters unless they combine with + // something, so put them over a space and remove the space's width + // + var char = node.firstChild.textContent; + node.firstChild.innerHTML = "\u00A0" + char; + var font = this.CHTMLvariant.cache[char.charCodeAt(0)][0].font; + var space = font[0xA0] || font[0x20]; + var w = space[2] / (space.c ? 1 : 1000); + node.firstChild.style.marginLeft = CHTML.Em(-w); + }, CHTMLcenterOp: function (node) { var bbox = this.CHTML; var p = (bbox.h - bbox.d)/2 - CHTML.TEX.axis_height; From 3c47494d28d16216973fc2902c130fd02d0fdacd Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Thu, 2 Apr 2015 16:12:35 -0400 Subject: [PATCH 133/186] Handle empty table cells (still need to do something about setting the widths of columns with no entry in the top row). --- unpacked/jax/output/CommonHTML/autoload/mtable.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/unpacked/jax/output/CommonHTML/autoload/mtable.js b/unpacked/jax/output/CommonHTML/autoload/mtable.js index 59da84aea..0b3f5fa5a 100644 --- a/unpacked/jax/output/CommonHTML/autoload/mtable.js +++ b/unpacked/jax/output/CommonHTML/autoload/mtable.js @@ -346,7 +346,7 @@ MathJax.Hub.Register.StartupHook("CommonHTML Jax Ready",function () { else if (CWIDTH[j].match(/%$/)) percent.push(j) else W[j] = CHTML.length2em(CWIDTH[j],W[j]); TW += W[j] + CSPACE[j]; - row[j].style.width = CHTML.Em(W[j]); + if (row[j]) row[j].style.width = CHTML.Em(W[j]); } if (values.frame) TW += 2/CHTML.em; var hasFit = (fit.length > 0); @@ -416,6 +416,7 @@ MathJax.Hub.Register.StartupHook("CommonHTML Jax Ready",function () { if (!state.HD) {h = H[i]; d = D[i]} for (var j = 0; j <= J; j++) { var cell = row[j], cdata = rdata.data[j]; + if (!cdata) continue; if (cdata.CHTML.stretch === "V") cdata.CHTMLstretchV(h,d); else if (cdata.CHTML.stretch === "H") cdata.CHTMLstretchH(cell,W[j]); } From 13e92c28134b9c221d4487e13693b98f3d9462d1 Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Thu, 2 Apr 2015 16:13:18 -0400 Subject: [PATCH 134/186] Handle negative skips properly (have mrow append to the right). --- unpacked/jax/output/CommonHTML/jax.js | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index d0e4b0eec..11c162fe1 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -1211,6 +1211,17 @@ if (y + scale*cbox.t > this.t) this.t = y + scale*cbox.t; if (scale*cbox.b - y > this.b) this.b = scale*cbox.b - y; }, + append: function (cbox) { + scale = cbox.rscale; var x = this.w; + if (x + scale*cbox.r > this.r) this.r = x + scale*cbox.r; + if (x + scale*cbox.l < this.l) this.l = x + scale*cbox.l; + this.w += scale*(cbox.w+(cbox.L||0)+(cbox.R||0)) ; + if (scale*cbox.h > this.h) this.h = scale*cbox.h; + if (scale*cbox.d > this.d) this.d = scale*cbox.d; + if (cbox.D && (this.D == null || scale*cbox.D > this.D)) this.D = scale*cbox.D; + if (scale*cbox.t > this.t) this.t = scale*cbox.t; + if (scale*cbox.b > this.b) this.b = scale*cbox.b; + }, updateFrom: function (cbox) { this.h = cbox.h; this.d = cbox.d; this.w = cbox.w; this.r = cbox.r; this.l = cbox.l; this.t = cbox.t; this.b = cbox.b; @@ -1292,7 +1303,7 @@ } if (!options.noBBox) { var bbox = this.CHTML, cbox = child.CHTML; - bbox.combine(cbox,bbox.w,0); + bbox.append(cbox); if (cbox.ic) {bbox.ic = cbox.ic} else {delete bbox.ic} if (cbox.skew) bbox.skew = cbox.skew; } From 24861d02052a10c3b7b8e22f9eeab22ae616ccc5 Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Fri, 3 Apr 2015 15:37:15 -0400 Subject: [PATCH 135/186] Adjust bbox for \vecenter when it is repositioned --- unpacked/jax/output/CommonHTML/jax.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index 11c162fe1..4a2c2d2dd 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -2479,7 +2479,10 @@ if (this.texClass === MML.TEXCLASS.VCENTER) { var a = CHTML.TEX.axis_height, BBOX = this.CHTML; var v = a-(BBOX.h+BBOX.d)/2+BBOX.d; - if (Math.abs(v) > .001) node.style.verticalAlign = CHTML.Em(v); + if (Math.abs(v) > .001) { + node.style.verticalAlign = CHTML.Em(v); + BBOX.h += v; BBOX.t += v; BBOX.d -= v; BBOX.b -= v; + } } return node; }, From 02066cb7cc452e2ece60c336c478802fa59da5c5 Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Wed, 8 Apr 2015 09:40:44 -0400 Subject: [PATCH 136/186] Handle explicit line breaks (this were being skipped if linebreak wasn't set to automatic). --- unpacked/jax/output/CommonHTML/jax.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index 4a2c2d2dd..f03958425 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -2445,8 +2445,8 @@ return node; }, CHTMLlineBreaks: function () { - if (!LINEBREAKS.automatic || !this.parent.linebreakContainer) return false; - return (this.CHTML.w > CHTML.linebreakWidth) || this.hasNewline(); + if (!this.parent.linebreakContainer) return false; + return (LINEBREAKS.automatic && this.CHTML.w > CHTML.linebreakWidth) || this.hasNewline(); }, CHTMLstretchV: function (h,d) { this.CHTMLstretchChildV(this.CoreIndex(),h,d); From c994ee999473b6049c627cdaffd27d708cdbbecf Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Wed, 8 Apr 2015 10:48:40 -0400 Subject: [PATCH 137/186] Make zoom box handle overlaps properly, and position full-width tables better. --- unpacked/jax/output/CommonHTML/autoload/mtable.js | 2 +- unpacked/jax/output/CommonHTML/jax.js | 10 +++++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/unpacked/jax/output/CommonHTML/autoload/mtable.js b/unpacked/jax/output/CommonHTML/autoload/mtable.js index 0b3f5fa5a..606f0866e 100644 --- a/unpacked/jax/output/CommonHTML/autoload/mtable.js +++ b/unpacked/jax/output/CommonHTML/autoload/mtable.js @@ -450,7 +450,7 @@ MathJax.Hub.Register.StartupHook("CommonHTML Jax Ready",function () { }); box.appendChild(table); var labels = HTML.Element("mjx-stack"); table.style.display = "inline-table"; if (!table.style.width) table.style.width = "auto"; - labels.style.verticalAlign = table.style.verticalAlign = "top"; + labels.style.verticalAlign = "top"; node.style.verticalAlign = ""; if (shift) table.style[margin] = CHTML.Em(shift); // diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index f03958425..8dcd112ca 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -574,9 +574,17 @@ var node = HTML.addElement(span,"mjx-chtml"); this.idPostfix = "-zoom"; jax.root.toCommonHTML(node); this.idPostfix = ""; // + // Adjust margins to prevent overlaps at the edges + // + var style = node.style, bbox = jax.root.CHTML; + if (bbox.t > bbox.h) style.marginTop = CHTML.Em(bbox.t-Math.max(bbox.h,CHTML.FONTDATA.lineH)); + if (bbox.b > bbox.d) style.marginBottom = CHTML.Em(bbox.b-Math.max(bbox.d,CHTML.FONTDATA.lineD)); + if (bbox.l < 0) style.paddingLeft = CHTML.Em(-bbox.l); + if (bbox.r > bbox.w) style.marginRight = CHTML.Em(bbox.r-bbox.w); + // // Get height and width of zoomed math and original math // - node.style.position = "absolute"; + style.position = "absolute"; var zW = node.offsetWidth, zH = node.offsetHeight, mH = math.firstChild.offsetHeight, mW = math.firstChild.offsetWidth; node.style.position = ""; From 8f20749a48ecdc2a273f7e704d6e8419010dd529 Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Wed, 15 Apr 2015 13:33:42 -0400 Subject: [PATCH 138/186] Add arc/fown/smile as horizontal stretchy delimiters. --- unpacked/jax/output/CommonHTML/fonts/TeX/fontdata.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/unpacked/jax/output/CommonHTML/fonts/TeX/fontdata.js b/unpacked/jax/output/CommonHTML/fonts/TeX/fontdata.js index 54b20196d..0feb58383 100644 --- a/unpacked/jax/output/CommonHTML/fonts/TeX/fontdata.js +++ b/unpacked/jax/output/CommonHTML/fonts/TeX/fontdata.js @@ -588,6 +588,9 @@ 0x295F: EXTRAH, // rightwards harpoon with barb down from bar 0x2960: EXTRAV, // up harpoon with barb left from bar 0x2961: EXTRAV, // down harpoon with barb left from bar + 0x2312: {alias: 0x23DC, dir:H}, // arc + 0x2322: {alias: 0x23DC, dir:H}, // frown + 0x2323: {alias: 0x23DD, dir:H}, // smile 0x27F5: {alias: 0x2190, dir:H}, // long left arrow 0x27F6: {alias: 0x2192, dir:H}, // long right arrow 0x27F7: {alias: 0x2194, dir:H}, // long left-right arrow From 562786da5ed9be85d4802238e8798c25914eb7c6 Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Fri, 17 Apr 2015 16:01:57 -0400 Subject: [PATCH 139/186] Update HTML-CSS fonts to be usable by CommonHTML, and remove the CommonHTML fonts. Update @font-face to include the new formats. --- .../TeX/otf/MathJax_AMS-Regular.otf | Bin 58400 -> 0 bytes .../TeX/otf/MathJax_Caligraphic-Bold.otf | Bin 12348 -> 0 bytes .../TeX/otf/MathJax_Caligraphic-Regular.otf | Bin 12024 -> 0 bytes .../TeX/otf/MathJax_Fraktur-Bold.otf | Bin 26896 -> 0 bytes .../TeX/otf/MathJax_Fraktur-Regular.otf | Bin 25872 -> 0 bytes .../CommonHTML/TeX/otf/MathJax_Main-Bold.otf | Bin 46796 -> 0 bytes .../TeX/otf/MathJax_Main-Italic.otf | Bin 28220 -> 0 bytes .../TeX/otf/MathJax_Main-Regular.otf | Bin 47636 -> 0 bytes .../TeX/otf/MathJax_Math-BoldItalic.otf | Bin 27092 -> 0 bytes .../TeX/otf/MathJax_Math-Italic.otf | Bin 26384 -> 0 bytes .../TeX/otf/MathJax_Math-Regular.otf | Bin 26324 -> 0 bytes .../TeX/otf/MathJax_SansSerif-Bold.otf | Bin 22152 -> 0 bytes .../TeX/otf/MathJax_SansSerif-Italic.otf | Bin 18572 -> 0 bytes .../TeX/otf/MathJax_SansSerif-Regular.otf | Bin 15920 -> 0 bytes .../TeX/otf/MathJax_Script-Regular.otf | Bin 14612 -> 0 bytes .../TeX/otf/MathJax_Size1-Regular.otf | Bin 8248 -> 0 bytes .../TeX/otf/MathJax_Size2-Regular.otf | Bin 7604 -> 0 bytes .../TeX/otf/MathJax_Size3-Regular.otf | Bin 4712 -> 0 bytes .../TeX/otf/MathJax_Size4-Regular.otf | Bin 7364 -> 0 bytes .../TeX/otf/MathJax_Typewriter-Regular.otf | Bin 24180 -> 0 bytes .../HTML-CSS/TeX/eot/MathJax_AMS-Regular.eot | Bin 60356 -> 60348 bytes .../TeX/eot/MathJax_Caligraphic-Bold.eot | Bin 12476 -> 12468 bytes .../TeX/eot/MathJax_Caligraphic-Regular.eot | Bin 12340 -> 12332 bytes .../HTML-CSS/TeX/eot/MathJax_Fraktur-Bold.eot | Bin 26120 -> 26108 bytes .../TeX/eot/MathJax_Fraktur-Regular.eot | Bin 25512 -> 25500 bytes fonts/HTML-CSS/TeX/eot/MathJax_Main-Bold.eot | Bin 48572 -> 48564 bytes .../HTML-CSS/TeX/eot/MathJax_Main-Italic.eot | Bin 28836 -> 28828 bytes .../HTML-CSS/TeX/eot/MathJax_Main-Regular.eot | Bin 49684 -> 49676 bytes .../TeX/eot/MathJax_Math-BoldItalic.eot | Bin 26330 -> 26322 bytes .../HTML-CSS/TeX/eot/MathJax_Math-Italic.eot | Bin 26776 -> 26768 bytes .../HTML-CSS/TeX/eot/MathJax_Math-Regular.eot | Bin 26712 -> 26704 bytes .../TeX/eot/MathJax_SansSerif-Bold.eot | Bin 21936 -> 21928 bytes .../TeX/eot/MathJax_SansSerif-Italic.eot | Bin 19428 -> 19420 bytes .../TeX/eot/MathJax_SansSerif-Regular.eot | Bin 16660 -> 16652 bytes .../TeX/eot/MathJax_Script-Regular.eot | Bin 14604 -> 14596 bytes .../TeX/eot/MathJax_Size1-Regular.eot | Bin 10372 -> 10364 bytes .../TeX/eot/MathJax_Size2-Regular.eot | Bin 9676 -> 9668 bytes .../TeX/eot/MathJax_Size3-Regular.eot | Bin 5728 -> 5720 bytes .../TeX/eot/MathJax_Size4-Regular.eot | Bin 8484 -> 8476 bytes .../TeX/eot/MathJax_Typewriter-Regular.eot | Bin 24664 -> 24652 bytes .../TeX/eot/MathJax_WinIE6-Regular.eot | Bin 29692 -> 29684 bytes .../HTML-CSS/TeX/otf/MathJax_AMS-Regular.otf | Bin 58528 -> 58656 bytes .../TeX/otf/MathJax_Caligraphic-Bold.otf | Bin 12348 -> 12348 bytes .../TeX/otf/MathJax_Caligraphic-Regular.otf | Bin 12024 -> 12024 bytes .../HTML-CSS/TeX/otf/MathJax_Fraktur-Bold.otf | Bin 26896 -> 26900 bytes .../TeX/otf/MathJax_Fraktur-Regular.otf | Bin 25872 -> 25876 bytes fonts/HTML-CSS/TeX/otf/MathJax_Main-Bold.otf | Bin 46808 -> 46804 bytes .../HTML-CSS/TeX/otf/MathJax_Main-Italic.otf | Bin 28152 -> 28156 bytes .../HTML-CSS/TeX/otf/MathJax_Main-Regular.otf | Bin 47652 -> 47640 bytes .../TeX/otf/MathJax_Math-BoldItalic.otf | Bin 27096 -> 27096 bytes .../HTML-CSS/TeX/otf/MathJax_Math-Italic.otf | Bin 26388 -> 26388 bytes .../HTML-CSS/TeX/otf/MathJax_Math-Regular.otf | Bin 26332 -> 26332 bytes .../TeX/otf/MathJax_SansSerif-Bold.otf | Bin 22160 -> 22160 bytes .../TeX/otf/MathJax_SansSerif-Italic.otf | Bin 18576 -> 18576 bytes .../TeX/otf/MathJax_SansSerif-Regular.otf | Bin 15924 -> 15924 bytes .../TeX/otf/MathJax_Script-Regular.otf | Bin 14620 -> 14616 bytes .../TeX/otf/MathJax_Size1-Regular.otf | Bin 8248 -> 8252 bytes .../TeX/otf/MathJax_Size2-Regular.otf | Bin 7604 -> 7608 bytes .../TeX/otf/MathJax_Size3-Regular.otf | Bin 4712 -> 4712 bytes .../TeX/otf/MathJax_Size4-Regular.otf | Bin 7364 -> 7364 bytes .../TeX/otf/MathJax_Typewriter-Regular.otf | Bin 24184 -> 24184 bytes .../TeX/otf/MathJax_WinChrome-Regular.otf | Bin 4408 -> 4408 bytes .../TeX/otf/MathJax_WinIE6-Regular.otf | Bin 28096 -> 28100 bytes .../TeX/woff/MathJax_AMS-Regular.woff | Bin 40808 -> 40824 bytes .../TeX/woff/MathJax_Caligraphic-Bold.woff | Bin 9912 -> 9908 bytes .../TeX/woff/MathJax_Caligraphic-Regular.woff | Bin 9604 -> 9624 bytes .../TeX/woff/MathJax_Fraktur-Bold.woff | Bin 22336 -> 22344 bytes .../TeX/woff/MathJax_Fraktur-Regular.woff | Bin 21476 -> 21492 bytes .../HTML-CSS/TeX/woff/MathJax_Main-Bold.woff | Bin 34464 -> 34460 bytes .../TeX/woff/MathJax_Main-Italic.woff | Bin 20832 -> 20836 bytes .../TeX/woff/MathJax_Main-Regular.woff | Bin 34160 -> 34168 bytes .../TeX/woff/MathJax_Math-BoldItalic.woff | Bin 19776 -> 19780 bytes .../TeX/woff/MathJax_Math-Italic.woff | Bin 19356 -> 19364 bytes .../TeX/woff/MathJax_Math-Regular.woff | Bin 19292 -> 19304 bytes .../TeX/woff/MathJax_SansSerif-Bold.woff | Bin 15932 -> 15940 bytes .../TeX/woff/MathJax_SansSerif-Italic.woff | Bin 14628 -> 14624 bytes .../TeX/woff/MathJax_SansSerif-Regular.woff | Bin 12656 -> 12672 bytes .../TeX/woff/MathJax_Script-Regular.woff | Bin 11856 -> 11864 bytes .../TeX/woff/MathJax_Size1-Regular.woff | Bin 5788 -> 5796 bytes .../TeX/woff/MathJax_Size2-Regular.woff | Bin 5464 -> 5476 bytes .../TeX/woff/MathJax_Size3-Regular.woff | Bin 3240 -> 3260 bytes .../TeX/woff/MathJax_Size4-Regular.woff | Bin 5144 -> 5164 bytes .../TeX/woff/MathJax_Typewriter-Regular.woff | Bin 17608 -> 17620 bytes unpacked/jax/output/CommonHTML/config.js | 2 +- .../output/CommonHTML/fonts/TeX/fontdata.js | 14 +++++++++++--- 85 files changed, 12 insertions(+), 4 deletions(-) delete mode 100644 fonts/CommonHTML/TeX/otf/MathJax_AMS-Regular.otf delete mode 100644 fonts/CommonHTML/TeX/otf/MathJax_Caligraphic-Bold.otf delete mode 100644 fonts/CommonHTML/TeX/otf/MathJax_Caligraphic-Regular.otf delete mode 100644 fonts/CommonHTML/TeX/otf/MathJax_Fraktur-Bold.otf delete mode 100644 fonts/CommonHTML/TeX/otf/MathJax_Fraktur-Regular.otf delete mode 100644 fonts/CommonHTML/TeX/otf/MathJax_Main-Bold.otf delete mode 100644 fonts/CommonHTML/TeX/otf/MathJax_Main-Italic.otf delete mode 100644 fonts/CommonHTML/TeX/otf/MathJax_Main-Regular.otf delete mode 100644 fonts/CommonHTML/TeX/otf/MathJax_Math-BoldItalic.otf delete mode 100644 fonts/CommonHTML/TeX/otf/MathJax_Math-Italic.otf delete mode 100644 fonts/CommonHTML/TeX/otf/MathJax_Math-Regular.otf delete mode 100644 fonts/CommonHTML/TeX/otf/MathJax_SansSerif-Bold.otf delete mode 100644 fonts/CommonHTML/TeX/otf/MathJax_SansSerif-Italic.otf delete mode 100644 fonts/CommonHTML/TeX/otf/MathJax_SansSerif-Regular.otf delete mode 100644 fonts/CommonHTML/TeX/otf/MathJax_Script-Regular.otf delete mode 100644 fonts/CommonHTML/TeX/otf/MathJax_Size1-Regular.otf delete mode 100644 fonts/CommonHTML/TeX/otf/MathJax_Size2-Regular.otf delete mode 100644 fonts/CommonHTML/TeX/otf/MathJax_Size3-Regular.otf delete mode 100644 fonts/CommonHTML/TeX/otf/MathJax_Size4-Regular.otf delete mode 100644 fonts/CommonHTML/TeX/otf/MathJax_Typewriter-Regular.otf diff --git a/fonts/CommonHTML/TeX/otf/MathJax_AMS-Regular.otf b/fonts/CommonHTML/TeX/otf/MathJax_AMS-Regular.otf deleted file mode 100644 index 62078a75db80f8e6f6cba9997d9f1cd5fe6885ed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 58400 zcmdped3+OP{(mOvq>t#LQiFFXMPva*sGOo=xda3`%4IoA=>?$;Z9_3 zP16v1Qc4d>fg)f*ko8=aRdw zPUU@EgTW)>)ThYyuKf)2wuO9gA zwjZ|Nz4f;#H%*Xy3ZIck%pZjpTqpT-P$o*h>HhED`u@~S6Jjk1-w7wsBGC#F1%E|i z@i&xH1bbqum>-2r*iu(TQ>Y)>i(R7?iN3r|^x5aJ5AbJ2_JZxAr$k9#elHST`%siF z`Bd_0l1Sv(EaA@(AB6r3BN#~y|MC70iPDGmDOi>8(7sp{FM57xUm_Yq-8{4(CrY5! z4eisSn<@R!z7&oh8`}Sw=sQX8(Ef1IJ#ilo?cXN4nZA2y|8`M4Jq;v)in|HA25UdG zPl-l~%tQNP(Qwhhp?!&Hq3Fe-{W#Hs)FVUtv}h!?b7)@*#~nlaKchaQULD#WE}9zG zIkbP9Xe3Py?cXjMPLCDM6BURQBDJVclqbp&<%)`7j(#r66pe>%ifA&tXNew;?M;FG zB+-0PmZ&IpZa#cUgERBsNIq<{L=VA{#j*WKBGJ48g}N{=C$~81=b7V^QYKHH^>E7M zDU*}tXBFk;@_izpS2q`~2g;@l+}d$*)6 zgAc3V7C9oNNDk)|!pE!}r91<67Qztn;c9+c2xnx)x;`n^-N#`6#%(|RkL@ii$S+=4 zP?(dIlrm{@(ql>2-TUDm@AV(Hb;E1dLeC0glgIZrNi;|o8^;f3B{j%W>s+bh;Yb~51hb=FJ`Eb5) zHzn+Ehy6l0hnFq>+%yo-rLbKNLeHOjealOK(gHs}H(oKmZ-4LEPw$%qz1jo6c`+&7 z27mdx{(Vj|Vs}gxt%NNv@sB}UywVjze;yM(0`DRi1+R<>I93D_!Yi8`wt{Rw0zF>{ zBluV9_0SFVE9vKtt5m8$U?T&B$5o>iDsoST)Dws>jMaz$3YaPm^& zgol!@6YohvV?);_W$ekwlV@y`XC=jYl99A9b!AdU@ngesi;ESHJ@QCVW?`P9xM)&Q zo}BOUBg+@Uxc^6!_3s+IvHbmKmM3PndD{)XTCnVr?Ywo3eU6hXg6$jN>7^jbMeU+LQ{%)hiGL@NNUli!oHT9pt)s_{P8mIObn0m5X!q#g=(^GSM%RySAKf+j z*y!g+zcBjT=wFV$Jo?J$tD`?irjqI8pCyk-z9V^L^8LvVCQnO#B6)7|!sJECOOlr- zrzNjT-k6-1EKe>8EZahiJ zQnNEy<4Ln&eP&OLANCVHnSe*mzz}eml88`QtIk z*NtcQ*nMLU!+1{q!+6Rk7$;Os=$UYS!mC%MS8usG^2=*5p!dH&^L^L%<=?Bn-~IjM zzy0;v#%oVsOCDT2IODyq-@E5MN&i6qcl}@V@9Piu`}=+URsG(6w%^uo={NNo`gQ%4 z{i^;w{l)!7{cHNu`j_@E>VLX_VgFP8PxepgpVL1mAfB)V6xAhP2 z|5^Xd{qg|a)|M&juj{=hacdz6z*L@p9u_Dp;dLEDe^NSM2#fd12y5mOJ z1AsFnni;)K6um}8|0a%pFBuTU-S^#FgPHf;G~urmG;|7`zBSgh+u-l83%B$855S)@ zkB<<2%wLT}w}=wJ%#9IE0Ms&5Gza|9GVp^NMBBg+C`Dx=y~rwZiTnVfn?#31M*u*d z6}>FFDEf`4U-XgaGtt+gze4{Ibt^TJx}SQ0nnSSDHPl8bliES;ruI@5 zl$o+qRa7n2LLH)xP|s6msh6pX)NiP()E}rXsBfu3u|zyfEEC@+9wVM0o+6$po+Dl; zUM5~G-XPv4&J!!dDzQdv6x+leag8`4ZV`8gkBU!;&xv0ZUlP9~zAFBM_zUs3;z2OM z!z8y$?vjj>JScfsGF38LGFP%#vO=;>vRRTPkxPmsC6Y>sMdFb7Bq2$I zxgdE%@|NUxlHW`IB>74bm3$v3jr&>L9dY-@CC81An;bVI?#Z|XaZBUU;?mqoI9>2Zhu^B+~K(1xW2fT<9-?UcHEV?592Rpi3JVKV@~rIQ z*iI}8hL< z6}m82xWioG^0`A72wk5i++m(@hj~+Dm(LR}pC?>CPZ+_xS;BWhWAlW@<_Ue7C-h~W z(DXc^>G{H$^Mx~G^OrJZfzZzdvD-rI!?&3-d1}@!MX|alt62CLYb|9;tTQQ7rYi~y z6a|IF5D#R?GxBrfS+TQHglkiTmQrE^NJ$Z{Nr^2_O3HM=V1-%P1%<*Tk4`Jf+Xe8d zFxJ4M!fmDs?MxNgnL0f~0r%URwOg4XkDWF(HjI?1v9YC0jg2j3nsCuH;i756&8Nkt zEoEA4+ES*)rY2>&aB#YCaC&SmQ>Mq}GG+SEDMHiJg{Ei3W+-KbaEBSf9cBo3m?1Pa zLuhP=L-j8H=Q-qD?cZTKRA7IY!zlq ziOtH4l-Mn137t)y78`P^AZ)3Eu%*t7U6496HssWqu_31l!j>usTdE*zse-Vj&WsH? zb(V15Ea5s~@lyq(l`0smR6!I{=f);3Rgj3(dBSyqeM%KpJvFxK3nowI8-oqs3E1%S z4jcY**zmW74L@ku@I!$Ozj_N`l7$VwdhkhTWs1*@D7d88KW$iIM?ZJRlk?dQdbD_=fR-GbRF~@G!)_j{ui5 z1z^vkqN$>3qUoX;fIntIygXa9lrlq%-zaLPEFz7lf?_Bug((}w0)lW*PRd2ODG%iZ zG~uJFDL)mUYN#L}ix5>ug{gg1gxXKlQw>xj)kHM|-Z((DQU|Fvz#Z*W2h~Y+QHQB+ zz#u);QR*0Voa&`c03JC>ouW>Qny443KI#mhlNYIT)OqS9>H_r(Kq{|LuTrm3uTyVO zzXa6sE9w&UYwAtvE$VGRFu$eVq28q~Q@^9GQ2o?w8P+%Zz7x^wMa*Y5fB-Vg47Br$c=*Q2|V`^S7Zws~ypxMAam zPtZ&(pIAGwW8$k5`zL-raqywV59drOo%H%6+rXGynbI=l#FW=kG><<1=+{$Qrp=jl zX?o3!?3pFAcF(%@SmkWRud6LRFADzRG;$C@^=UB3zP=_P?H`U zUpuMx&5*M0-nuj4{(ap3KR0~TC~X|y*xU4U(}Cty%^A&#W=r$F1H)U#9h~3R+n&;q z+xhO{2fOb+^5BsB1x)lkwP&9q?kE*onOcZzWb?b!}NI zGE^@kN%P6fIb`-qB4b#FHL+%F!e)klZB3fZWjw>pN#l|kGt#PyG-_Ol^*XGB=1oqs z!_49@@#mPuPKU$Eve=Dqox-f~YQ4rf+>9gkCQln;L!=OU6?EM?Zx${?C0jM6iJ!K~ zu-ocoJlYqRkw;RA6HqyFE@1u0<(iw#<@= zS0;{^x+0w<%J-E6%4`71la+ zXm~x$T3jh;dV>=%N_Ri1WxN4cvyzbHjCZjG&z_i+`)J(ZVhX&n=#i4 zKNd4%Flh8l4ucffY%!TF7OMrDvB70q)Q6EXSA zUPRFt?mVT$XAQ2#)fS%- zC0x_?>3>&i4r`R@EuompOC!u)0R zhx{%0Rs52nv9KNK{62z~y$r9HZ(E}%(aW`ZY=t+rff%?Q9{vX57TgM&Ix7bWn%ezdjUwxI;29iHwsOvC*v2tX{u1f00IM zR$2Dq6r6TS@kK?q?gBoC$(^m=y?7cmHHCfc7XZW=p1D<=tj?)p z8L!#Px*f>j#w5$^rcDl$%?x60FfbKNnc1W@n=D4F9@Hk^lN-paEpleCNQDa-9pW<%gAPUGm&=ld@fIOE&`y2c^-&jbz&uIz4S>d&8Bl3#X3c_N@5jxI z*W%Q$MjJO8bII^ya+DM^2c0KONLK{xp^3Iv!o;|Tc%a9^$d3bVXmE*Uyi~wD1gK6WxX~s z8pnRDBpI~K%Q!*(UzE1gV`kKQtSpGbOwjb}{G&^QQ#`r$9K0QuSk>0O660%v3^vkn$st&3>|S2HeW{Ob(sh$Yx;?SK|dAu;`@np=+-{b2gVY_v7x5uOw<@A-lY3Qe zjSCzU!WB-v%i;!mDc4{xrb$lj-|x5 zbZ9voNb5d>X)X!YqQXa;V{3s*y&)g%b@{wbC-Qpf;d{GCX*>AhihiETzVFwTbtZdJ!2-j3rp!Q>o7bxtjNXpNuVBB~ zX9}8qT0b(tVt~vaIRQ|G`nvtoR>HLZp;I!TADAQKF7d`fm^2=%)PueBVz()1v^eZs zGU5_Ah9tzZU|h{Xm&@tJVYUGS0Cc)s*lYCi^B!yB|K8q^OW5t8U7$Tix5;6)7lQI? z9cG`!$$(vuAaXZhxVvHABo-xO;tkhMrYL5(3Bh>Ydn6j$L4+d|CUf`)T$!E+M2hP2FAE0Q8grhuA?MkE z+W@`5svB7g_%--p7_$MHv|47zj|SNqbDg#!*LnFLN5@an4pz&8&jH7RNjv{zcfja; zK6_hiq5ffXoOFwfF<>P>G=6lf0Xg~6feE%>H#!S%g89)6=f*tQ^=(J=NC)NWy43M@ z$NL=;*8!R1nO|-F14h+SB5}Xm)ARxB!x5HvFfp)QcDKXpbF}hzx5Lyr0LePg-?j8T zelm=prGRw-&9&eYjLYm)u{t~sbD7}c&l}HH*;0%)7wpI!MZS)H3nPLV<6IWbgNqq$S$e*Fy~b+g(WDjI>`pIo`!TslW72DB z0IX~F@I&M9Adz96xl&hQGMjZ46Jx|C&_t%xr+1fw`oQgc7_2Pvc&i*fT!(ARaR~xd z;*k-Nw13h@^q@xG8d;U0sxnavLsEqSvbB&a00dYvo+LHZpYG{tXyr{6$TjvDc?shZ zq}**7@IJgO7Hq^?x5>}coBc{$jLXgCl@%t#`t{3KqofBIau4)ch9hq9Zq@e2f2Di> zC|du4um7oN{gdwT3u1JXx><(z>X^{}K+yj=7Y{+zING6Om{O(;17xq{ksX*@Gk6#o zpr(7IE(j2@2Mz8Yhyz6;UzN(VMoqcSh%{PULtEU89~`{F2f{pg@G;q2DX-6V8<4+@ z8-cNl#=eTMCIoPS7-(#>+5qc=KJTxq3Htru(D|4PW`D$2V8FLxE2CxIJ z+s+4{EK2wW+Z)L|J2>aRqaMwgm8<5BFe*M=gGmq*1wO~Roqn&q z1#rwy&Ew19akDaI41;xy*<#?ud!4m)y>srZ00VdpU|_?2H{m7@~aE!LoL;B>MP8G8^WG1O0pee*H!* zty33kcbm1?WC6QnuxlL#-U7e+qm8PrbeCa0TLB7O>Q;x$LpNInH}gBZw6`|mYjXPF z7A*J@1}qrwONL?kA+Sy+U=6aSF5||};L^)?Ss>oy)<(COz(eVA66R>0S}-G%DJH}W zw%8cJf=mNI&>9EBIzUP%aVV%nF6}Z*@5smO zC_r!QC?3H%+{j&nqi>$ZbV~$+k86tu|11NaVzn}uFj0#~1VlroUE?tyw0Q7am`p`>q9!}JRvMJ>;V(Iv69@(e z!@Dk6Cp!e4bi$v>S>S2%@rQPwqao;P1ET}d$l4t?7o6s>4nd`~pBP~#jJquXy(6F1 z;^ml&g9Uz!n@Y0i6cRu8Q=ZMq$J1e&BvP{ppn?f&t4skLvIO-ZHL5AaoDU{u5uU|p znKE5PxzWsMu-1Z#b(XSG(YvGLWC?#H^EnlsPvezX%dl44;Ogibj2)GR$t~bx_I3^2 z(?K0-|E7cd_0YG6B;@^pWwKcn3+3zAu3w+OynHrOVa>+{xWJ}hD+04xmY-h#@-u(T z`3pv0;Xih~{OZx3#*@L9eGoz7K6nSUUCPgvzcsbzxyGe|Wf-Zkno%?8>nvH=5YUCy zUD=V9{>khfc010(SxgqA(o9mW%*s}&%MB_WDlwbzZmfV|mN}H(aei*m2fs<@$<8QFJ_+CF?5e+!W3T zZ}qLhX?To$?&=kVMM@3uDkdP+c%B3}5X93U*w%eEbkg?$7@i0|k3To{s?KXWw2`7V zFrfTN{3(encwmT4O+l>};!{2b+Sf%c#3KB5GOOdu_W!*I|5e`N2vHD^?R9IL}d8+_!D3@!_F>ugR3>z6REEccU4Cm4FLIH&F@>=S{P7zmK|AGV{l$0#zBr;ot4Wdx2VDe3Sb(@rhxjF;Gds>u95`pQG zz+yN6v3LUxm)&Qp#+PuUz&i_FxFW07xy`}y28BN#Z^G;Hx2{pB^}8#L7+Ix!&}Mhk zHCLU*FXL1C&a!4?4Aq!vwi7Cb_$k!Ruj5D|fG~@H-Z}OV43^ZdeR$HNs9~7gcD{DwG zKrMz8<6-5htgL^n7+uBZG@tya7+pUoM%R#HSOmpLE0SfeQLV3-!6^SxJ3u6GnRnc& zWk1!66FoiG>jlUb#DBLTC6NAbmPD=RRD z4hv7vfD)L19K9AVJI(mibi?LT+fS%b0602YZ><2-$-gUXtGyfRGkP?^!d948md7GI z>F59$!V~7r9pr2~^=kj>q7suot?ryH>uVY)t_a1~LH5nEg^sZ|nXO$XCw>L4aDY z!xS=m&3=38)QC^0i8C8i}kgLleap47FrXCuJIN#J?N zfqF~_?0y)y9ij~upi5ZZx)lwdTG^&=2eMb!Hln#h(SD?zFo){ey z94u?y{_AJkr*?Amv5g(N9;?&JCpTVwq4NTELvF!sMXy!7y*Rwg4nPJ#JHrCrg}@hk zT``t-4Y0gsJ5ZwFFN_wW0VPcA(`d`h8c@sKtlFL9FJp56QU?1}SP7BWQ`)up`RS$k z+6>UK8RwUidslv*aWW^A?x?Vr;ZlT4ENWw!L8DQZ8dTa`Lq6V$ch~0Esr@?+>1t5I z(|xMe@(x^&17HOJ#~FEeVg~y*4!kz)FwhPQguXBWm)+$G`1}sPJ%}4EVLji4qvbAq z960^ z;Q1XDetDDPxT0Ruq&cm6UC~t9Di4l2`8(gQJ4FQhg)EM1yxTfJq}Fr$3G-iuJP68rtC1_;hZh z@d70b`HW)&l6L9~e#~zilMF25DF>is%|Xe=!)D>E2M4f3)QNQvd~+?X@hU)-cUq3h;J1p|z%7;LNC0V;jS9-~YgKs)k` zIUx4e1#;uZ%zzm}K?X7d7B5H@P`n$!hqIgl8=Pw7-4c>FDtfkDDDF2SpY&b)TKIT( zdqxe7tp?BI!+ycl%>iGe&=QJe-*#TI`~sK^a0 zF!%?Y@7221Zna+>LPd?5Lxx_a8o$p6rDP$`eM4LT<^g>pjm9fv1`PwTrqkeMTu2w_ z!L&(du^7t0un*h^vAw)a5 z{Eh&b1Au4k=Sk9=Bo&Ba@_H~p`~7}*ke>t)T3861l{J8rj>hN#p6E0g7_HmD!em$D zMx(O~XCv;tdKoT(ETS^Bq>qz*z^z2}YfHAMHgk89Zh9tJy8b((4^;#SKqo^5*f|9v zgRL@%bNz|+7(zNg_h5XGHs8`h^SK>3dpH@0P0890LOO{O_>Q9k_sLoVg&Cvps=ZUw zxiP9`rg94mPjfe7+7>x?wg# zI9TrA?Jn=001Yslj5`U~7C%8$s+W=KV)-Kr1EO;qs;z#DPw!P@OqADX7es|lVE*`MmW8x1+x_7MlGsOXKk*fY5SKhUINz^g z;S}CtLa57nJR~prCr>l-)`0P}SKD|&=gBK!O_zhD7)@a5k=|43O&t8DP=@z9clok| z%X_%nPjL6vWLD<^Pr+oRFo_S4c6v3LoKEgFd67OyZo)L9x0oPkkKSvM;SKG{SGYpd zHkroe9g{2;G=@azaU@jQsS7X;2J9fRx8U}~SEMGr#fZxh>2Hu3v__S#1cFg5%oFbq z1C|;HK0p%#4H%L&*usaHF^+`HZ13tI&vvRi6Qa#l83cu3z960lVM9PzY4_|6Hznd~ zd%y)?p{cc_ySEQ`t{BL%S^J*6#N7;D#V9wb7?f``X+~iK%kV@Gn1qMHhfEfT9!N|Z zy^yxTT3^P6Ef;{mFE_!2UHYWsSX*~jTWbJ?ToGpgY%Vb7K1f(X115(t#w5gJ1Fszn z?>dpzY49Z`e6!E5EF6U^Eaip@Mn8AF0bt$w%c{2Gj*>3SIvinVhz;@D0yzyJpuq%z zrcDG*8xNWWG~SS=@v;T{ozAC;6u&n4L+;*_3t338p^a(WaPDrkDl2Dq33M6jD{&

dkIlt^ZO;B5d?H1rcU%=>9DY>YX8Gy<)07d_erUF;fj0+49u&O?wg9eiZzmVDa z3JC@+!}aw|^*F`_X<1_oTE_Urf{qASbjiSC-kfjbg*>M5Mkts7)~VhU()g5+c!dGr zN~?}BS}ojN+)fKdddxjSj#_~d;ZZ9KnUfIAzBgu@VyP0CvG9=5=IP~1kIoO?*2|H0rxQG;=%LAfi2S_r-qYa zr=JGG)nWe&!e4V+qLj{0fEbG2t(Iw220snu2rjb+os|CI@>`yFv_{oklEWb8tx~cS ze*y!C7cefYqXk$MA9e%6fdvP!q*6b*difIyl&4iOlQG(o11t_nBd^kA7+Lcc5E4%8 zhHNg_DuAcAM&qazs^_bhjTTh5(ZkLi3R zbjIr^e~Z2kn(DOUlNdFJflUenSG@x=8IWT0xoiAhFA9fgY|*X6R)D#n@b|Wpo3|hw>Q6YPfiiFW6ng+g+chqBN0D%3ICmViPlMHpU8WTE9605kVt9gwJ9~4>p8C@{urv^vziI$wijV>u9|>KqmSFPC}ntesnzsLI#SkzQes_b_DK)KGeRj^3E$t#U84SZb}R3!0lW%lk2 zwCRaw@KRguIeKqv(UFRfwoVu1=fnmo=5qV(%{CP3t(5ARJh%s1DP4opY{fRD+Z2{I z@Gyce&@wwAiA6-*0@j4B<@j0rG)RhtF<2~>KpfkR7VGoiRPMr;xqGmjyB#b#4Ker+ zC)kY!>#yMZwR5ESDPUAB2Az&sZ$&#c`J_SnClK7W;7@VTf)+<70Mov8E*~LmdCLmq zR~>F_3}b8JaB_~D*G+!bS=>!FbdvOL@<{iHgWY87dt}p>FLjgn?u78w=;(no*_e{? zD;Lk)utGjxGuNyHK41^p6OXgOP3#IjbZYXYXZoM|Hj{_}U|=$zJa&j|a2CsdLtt$U!lYk01Vh%}$9dt>_1wav?XiyV6a zn5)pMEELFeRnnV_}83WfAT{@<1_J$^;-l zZANwRIBctS)a@e)?-2>P>BSTKkNM6!QLQutF|^l;5?;9a(6z}jPj|Ug4;pB+74!P( zN7j$<$9Y0-sMZiQ26e#%)|y}4`mD-d+Ochzb2;VSDs?6LV>jn#FnptaR} z>a7$O##(MEC@+C=Wnx2L<@4pQ=$khm0A32n2ha(Kb$V-iJA6l37tc^2+-L|^)GE4G zA9&WIbbz!%u86xcGa&VV!nmyUjLqWFqQNoo;Px#=prtQdHCn+xV^p5$k^1a!0=J3w z0SgWVU*!HMB*1fwdo-HL%2HjaSp|q}g%zcJB!xPQBOsL?zBGu%`)!T5!&(hd{8?>% z30?@6a?ge6ZD+}7a?c|dM)Z(droKq3$j_#}2*$E-fRbH^$7i5|2MFpipu+idEd%Vm zN~ZILfX6Pdz!i%I~u@{u`Nn}X+wUEygC;-)b0$p zgaMoCRLTPliG>RJ3BbL+&n$Jagfh3&pM4YTSui!HtES zU$&lmFHFWEdl(plqcA&OQ&`ulI=;JG-I&#-h-e_}=hq7=Dj>7;QFlGWwAr-B=(W^f zR0WR8@$8?R!AO00f4!>9B@|q+zyu) z^2F|%3!#hQ%l?y2SIxnW_Ih8qYQL)%9ALFtJ_=`-EYEucC44DL9tI7xe^GM=9|n#0 zoBd^nH#a>Cr2BTwjw0Z886Ng{TfH5q<_$6*cpBQ}wtHZry(W*&WdvmX1fCCb3dN?r z(3=3{Tt;UF6e@nFHRDW6ra6sK^4{L8&Eg%J1Ck?N9zQWbC~D>FYRp?KbUI_fdX0sT zIv}od=pnHS3D83jXaj6F0TXlEAQaCIzfW2dJ%4fGZ;0fx5efV5yD52Km~70jgsl$@ zOV~Gd82|OaO+h^c{wzsh6}4jX>$&g(94{`B-~cm8npeFI+$rxSaa{4z|DugQMd zxM9QV?Ozeam(;-1(S@>~4;wxhM^>GYyb?Vt11D}VS@u+F_VUR!8@$;{^3-4|q;{AX zr-@xQzXR=a1Iq@Rp|1gxPz`4TN-zP)5SB7{@xn>%`^X|9IYeIw z_l4}>`C)xMIG_uZgMlkHq?P7Wz*~#_r)hVKtN!n6{HK4h#u2bWKr(`LaWGhqu#wT3 z%b8NM27{$j>UQgP>QoRvK<32&i_WKC7*rlCtxj~|vmrMWmA$Jx8-3wZ>P0e=d`U)1 z$Y7g{i(hetpi%hs>ceeB)b_Raq~kP{FoFC5F#`Ft86aK^Bsz6+T^iDEGGqd~sCQfV zt^loIhf3>ON635J>EqLTwNQ71x-bK^I)$pt%*E-`RU7qNfUt(-7T&|E99oAmDEF(n zm%p>|y;7jE>#YrNvj$s$yG@ zqYKkvrWVIyVXb$wL+vbqxwi1ViD0*#kK=cc*?@}~AS$20DIgh8h65%N7dqDa(p$$I z;zYjfcroJ8%2`}|BEZsa($h^YtElLvZb@|0z!Ng=bEf{yFG(< zV+i4OdeBNZ>@cC|R494G15;>|%i!S;>vblc;oCz}qEC{CsOan665SqI^i}-otMr8n zQ1Ro2IMiiwp+(Uuso77PAcWTXl>5UL4)Tm#9#j(1IvAS4r-S4Q+?_9=GDB%JgEOEW zv&`*$E3yMh>Wrb}&G(@Oqz%x!F*aFt{y#$r5_`G8i@wKml4qs%HcA zYQe9fbI8OIFGeX&+@1Mxg5t#ioosnLUX4wTGPlaF4jX)CJM$UXncOd>3EKzf#3!_H zTk(=-=;ceVYmJoR6DR0|+(QSefC+`n9iKYXx^lob?{*n@Y#9uCfd=00Z()P%tN0zJ zyNEofy{LN)w?fn4eF6}PflYSHRNE7yP zOgzi!u-=*PO84fwO(>zy0p$Y@KGL_lp^AH7eS^0Rzk@$y>Xc-3=^xEKmNqyESS!8` z#P5#xvk|}BTNAWcDQ7*0~dND*z@aaD|K3IvLjB*N04?JIDwK8}k3d z&4A@x-Q+@#tDEZVj%FN|5KN9j*4^mhW1eML14yIBt)+d%_1fb)Khui47}P9%10Qss zZv4}UH$HA6!yNT6Up?R*z20=xTAqahTFQxf8_op!p!z;&4O+zs@Cg7$Q`2IuW-XbLs5yi*)yS7sR-@8t7g?EhYx$hZ)OFg7P?K2Y4fx#mTHc zNVl~0TyjRhJYacZAuf~C`OEWnF5Chcdox%c3u|_nPv_Mu8+N$0K9#o=)#NuYbSsPf zqfGlVF6Fl)O^|fsjq~Zuh2njeGV1&^LrFn0{ik-kvMqA(5&{2EH<%35kShPv1UbAi8mOP|0K#1h_&t<7u5so#yfI%t`OJ4CP%>^Bhi z@azL{a!}6%0S(+3`lZv+MY{`gO7e_aO+NU#UTNsekr$2~LS8qF$)Klq?NIJi=NL7W z@U#W8x^Qjce(C;Sy?E}WP8RSt2F5^DT~W35(Du{nK2$6%F=Fc|%v32|nov$;=Ybu_ zt%nil-1L@1+g?zgLBpfDG1=brKc4G>?0+}cxclGC<+bd8IhR7W-t8Sw_e$RV=b6Nr z|7ND3NB=uB1^v5jreab_>JC!_;%-vYEg2ZOO$KFDE_h^yRGp6hg)MArb$uEAe|?Vv{!k;evk8d0nBL6JoPUHa1c7)PU9Du4%5N1 zuQnY6;t?ug*Du3RpG~Hdkuu2DV2|~fu3qKO^zC%y+8#&g+40ZdEW6yjsHU(3YUi%D zANv5{-++df-g98*UdleX?!Xe{tk`eekIhx|-V+5qIo)6jeu?P|;AnvGvQ>E-n^1c@ zZNp>?_wyzGP1sRM*KKUh=*Z+1 z?>4->n=S@($v|Z>JRJtXd{NQbwdkoQ=lqslbEbGd90#rpyogn;Ua(rf#Q zAWApF`M}Fr)g{HnXnQ6!1)|i^-P}`m0y(NS@c^}8-nzBVW(n)tLq#h{gY5sk6Z(Jd zLx$Wf@5uM@7W5 zd}wzI(pCfQ2$hwPtVg64}9F@lR0!2?+r#Uw+wg z@^tU{CZ7Ycuuuj9RwIDG#qsG9xRigoGE1%2rWftX1p<=iJb(*@>Ny+o{i*NjJAE%7 zxwP*h?#71=on_?i^&fM|UTy|3au#@k1~?KR+@a_e1JL_$$2Vzjmo;SeC_@|D((6}O z?{Vye`p8mTZq-7V{Nr#BQ@t?MkucOb+QmCouF1;Uom;qm#}f5ZK*p8IT4y2S6a;bcVQvg!HL4I@7%uZEAT^a8;wLA@ zRS2^L(Ju?w#0Q}UI~D4%D~R z)mDL}=gldk^#SpFban*!bgS0*$fo&|%D7tqW0ye}$M($WTh+b&nBq*y!OAvM8%8hS zzUt@e+iDx@ni`)!)p4=vGCW{gg9G@ht-o1&Zf9#w!}c1ab3n=UiwB!Kc~QxLRF4(V zlF_((w_GK!K$YflmM&#Wfh9!hN@Mw`>t+FhkS7Ojm(}k+u=_v>^6PbGdV5(;;ZFI6 z=W-TS&K~MkIWDsq>bNOH%Egg!MYWb%D^Oiz4u;2EZfhVD9T8CZMtE15BPHL=|7dED z)@88)FJUq2d4|GbGqZr#S!<~BjhwUd>z;HKL8WEU-{*~|Bn@CBl7rkZ$exkO_@J}R z*IIw6?-y?z@DHM1&tlZ^0;f_kWI1 ze+s3pEgY;I@@rsifi=63^Zcsjg(xERSH@}absXCjrMWBmtm`~$f*rw@7vWZ2cHR@ zrlIpN1jedoKr49`1hAaV`k565i(t^YN?Nh2I8U8tuB_P22TC4X!v{(i&%AX05ST7I z#u~4(roy|eZO8L_UVuO;=A2=)uXK|W5b95lE|y&jOZV>&H`TTJLV*sK4}!qLMKCFO zNNcPz(r0!Yf39(br^IGuOp3)D(qOVGjXooNF7MQehD8v#8GYrQ+S{TBr=-Jgew209= z`Dh=q0uFfc9D-nYh6~na)eov!(oK$o-eYc!%r33QcDED$lfyu$N=F~u)l<-2;xT(H ztQD#T@V=_<+Mecv2T&C#>D{)$yC8nB^A8H!rGSwE48wK%;JRi-M^UG`MjwKwz`#0G z`N2BCGtBl1*XqU%$9DE1lgCs^?@HgAxvoHKR8|6sft6KS*ShAd-T5cYeC-d;TAG$N zw+Kvx23PWh@F7po(-G>ZZ*Jo6er+EObqP?=$qSh~nqhfmC0D!oxQiirQXB?0tZzaqg4YLR^gE5-TMo_d$s9iL}gj-?G>EdFQVy|4Q zF3&M)VNDv|IQ7!GL&)ccruyJn|ok{Cn%Fi~ryPHe``<33y+b^;%YLgW&NnevDM->LFiY|td zk9(nB^#;oNDadOAPmeS^WU;w#3q64>2Q*H&V-LTK>FYi#c?`{UV2zpP$D29wz%!mRz4#tc3Rxlrn zW6aN8d|sQ1W?#B^T=LgcGBL&!@?_{7DR(bl>SD9KOvbY|1l8GuN+kD7fve-QV;;TR z2!x^^SgJsazoYR2Jk10uUg3d&57ryXv>0`cdJEbyhnvU%vsfLV+q&!9!d;#k;I5#g z%xEp+vz!|G8Sd8cvp891zRt|Rvu2Fj6fqK6=I1kC<%T1-*3Zy2E^E~&zN$`Nqv|T^ z*wKk90tB*(^Xbw|4PSw3;2Bmw7?AcWsP!E($TNx_h=maMdoouBRx?MPf#gp?VTZ;` z7uU+e@*wXsum|=bmhvsF}YlMR0&M%^VnWwx;p9r+4 z)oju0H*t>uc;U-hpd8XqH?_5$541ux7v?cKpW!X%%Yfi)Lz%IBC4PNPCGH)rEx>K6g+tcxp_aIsd6GGgfWb-ymiNUMH|uv2|PCj^(}ej+1gBP z4nXYKNCWVn7Mealk#_*|(_b`0mvPCCe3M?ID&C?~Lv$3YngbdZKq}N+K-}XFy8Wp4 z^H1LYvfBe?G;k2gZ8eT@-4B1T=`%yX0L5s04PiM(8a_raLxvo~LniXJl}$U4Pczx_ zF!bX%8OM$q$EC^Axry8`1|GgshG4W6XEO};iq5P6%47Dr0x24z>#zVetF2}?k}I8K%y zk-SLY={UXH02vfAM@sJNfMzX>CQqGNmRY_7LP16jY)m4T2oERdV;LY%?0@5cd>U48 z_wokTr{~M6`RIvdL+!Q4(V=(9Ijk+GcVrgsP-W@M_?l!?3B?PELDu1;Un9dm?D9+)*cl`c-!J^soPaw{_XOEIm{+u&awL3MS&lm%=LIbmR$s#4Ks@Bq=!OvHEVT~RNt4rl7WeL*g zxLNSb>r=dDV}E<-C~A9~gaO);fezjd@}}^PtACw;Muz=*VAIgx@36j#&OZ6vsq`+S zb4Tg_L*1LeM^&Y1kYDD%J5<-kw2t{SBRBAu9 zr&6gbm5`MfvJi@}6PAE93W%s6(tz50wxYCS+j=T}ik|;-ZY3e0Jv0BA`F+3nI)uig z>ejvIo_o&wKJW89FP{GZ=73laL8inbD~RLkNF{h3 z*{RozYDfWycLyS<1%eTG`9{wMZ-dL{-6Sw$)JvoB#Hpou{Go^WKtA|+qSkt}@J$+b zg_Fa4D6y-XsZ{Neqq^KpT3>F1dPC+$y&G;R77{oRA%Y2ujP>_kM&Q87@Lzw{DPaG6 z2lf&Yh%h5Q)@Y^I;}9km(d1pBL;-ovR0M5M#N7ZS{>a&k(hL{hrVM2+2Buz$E9{ju*n(9$Q(8l>uLhFTeS=~d)I&t zp6ppy{uT-ZK%fb4i~#lV7eBKZpSgn;=1ZFw?R{-e9C2%}t_S~34-&oDYvnqIh&-|U zBRIG|%I2%+GQX6*VO@n$2GnGLENh*LjCx*5Nn5*KOoX)+DYazOC(=3}%q{S$0>Efy z^JC8%3Ixjv&uD%TICdbz!3l&|Eg-U0Y^d~=AxSf_@%#w{GAK_wtyT-0$cEv@eKt|D z0SJT!62f`_*lhbk%4D!e=M^5w|{qi5q=SOviqljX7;kE zMe+OBecBasF6{89OnEMx-Tjjy5a?ghyx+SMm9%Z@iVU04hRuo0=uc-_up~M&OY_TU zHFcL3mXZ_w=^rr9R7aYD|bmHBhQom)kDEyNIX6$*co zPcQv}{yLMLb39Rv=f8#L z1wPFnK8*w(;(t)^C+!hdtM^#hY2U}*qd;-6O*KdFj0p06T#A?xBi0w|yR6Y_CpI5_ zFZz5$l({Y7+#2@v7W^IFH9K%ofw%)I8UtOcOid$;V{?n8_?9{KF;0~|+qxdygclO# z&W&A>vOqlt^tbh)FH0VAttyYLOmct;j9rdqWu>OiS%hkj2D`9ao3>ha_{r|}61CKl z(3!ShU2Fz|C4UuLj(QF>?A*0&dtHa;h_x7kpbA1yuHTWo13D&DQ?>N#Pr>hoWd!PA z9yQ9C;NQNksMR&(m8*T~TCnt~AsEF!6Krv1b3tWJqseD#ftN>>yOA_}ar)$!KDWhd zDFNwilc@weyM^4U04SGh%FpIuBS!GBER8wOoC}QPEo+V=-I?rB6)U|Ns5ldAU;z8V z5lxL)g47#Um#(05kh~|F4}bR_8+|a0{q2WvHq5MOq+20P`?mT|$Lqdv_;8-BpjjcD zQ+}{~+Y1}AY{}Mjl&qwyvQyTpg(yqZN8f~y3QT5~v!!xlQ3KS;jme&s#3Jl{Fx|~6 zQzoS4Pn$+S&M(1#3$jD(ig}_C=%uK|eMa?aDLXbfC04Bg*CWBW2yqBJE3`UDtZ7Oq zm|gIk8&TIZI{2?I^Tz>rt!2;6^Bcf9P^&dV zqBi>3zikcc#NU4i?^?B60hOvUUD;cus+JY+t~!a$73i^-1YfCCGE* z)TG>u73I`gP4WoDmJaGUf`W)%dx*DHqL0u@3yd+;D|?k z8q*r6Zw)(mJTMf+$6;$gF~@U*8SV$m`0$AqUOO` z6m*_8E_{_YO=Po` zx7oGD1_^w#LZ<@|<_`z=NMD>qnF9W28VF&KEg52#l7-+ojDTf>)|Ct55!H#57~ViA z#4KtHKNvbCIL0A@#ockjF)J_`r=$ZD2Va8g#2SL*6*K_Tt{ezVMFM6d0Pup7`+mH5 z^6&7o;W+g>#Hj~QPZ%e?GB+~|au2O}p0@P`kRqem$JQgY~#A7n_5NZ=RPS-B(0*VflJG7KC$X(-eR7PW1)E2(r*+l0eOmGSOe+gj*b2}-6QMJ8&~a#Pb) zN|Qb>BRf&EmM){~ZR^0Bjbe9pvZ&6m&JBU98^Z&;0^y2u^E%yHb#l(StVPS-Sgp!Y z=DwBrRzV7QsEhYyAJUgne}RWUDq=AhbtXd=Hi3~lUg%8Tpx&T|l#*@$`+8%^hO)ie z$*%UQ^19*;MOBUsfJU}v)UPZ{D_R2vaHcEIh4@h@UWfw$IrZtkpYt^e+Bl!zd}29k z`J{V*e*IbR5S7r4Vu+wKba|bXIA#?hv|3$_+NblUAl|0N)v+s<%$bt49urDagnb&B zKBAhkG8Vyxl$8lhJa9Qwi40|VN0x0EFL#!7= z92#MQAI~g*~=TM&782F(M58iAM_K8HYYmfjw@GwxU z3wj5+I;cC*BwdeksQOSjgqyG3XfcXMI?tR@Fy+-*<0v0YC$X_$uP>s>*@C1$UoQPYsUKd~mOUWxi% zW!}SlJb%E%AC_ZLtfxKk>~AB^bs(7@$)7+l8_G;Iz4n`DO=oG`3@K%iT7^lR?=Fx7 zRiw~1YgJ2?pR|7%m;s@U09!CJS}`&_j`BCGe_~HCST@OEk@$^M{N^#rpRitH!%Ov& z*H~fliS60qwtiH(=O{fRW(p=`89*wG4s_cYL_2rEYZHL0WrJZ)tyTVp4*v;n9VS(g z2>6h#Bd;bVQ_8aBSINT1C6j4!-HL`$ovTVQ+Ei&s$$dR-c?{Sr*|zn7ilg?PX+P^f zy{%_rA7q~@(pPl@*Zd=CrrA^rfDf#l_ zcfKt(R;!0V;fHC3wN7nRnKHEM%&e4@Rk_RIypmG#-1f1%;=PNk~ylDVIfWAxponhsB`y`I*Xfa4*-rG|W?Qa*fkYHEDW3QAs~ zsl{V<$j7(Aw2|iO$Ep_3hgU+nD<^avQE#-dp$9)Zxb@>SFep8^hV`z=w)Cd5c$M z#}uqHiUdgI$P??C-ED=6+EHS)SL{B}+zFS`h;~D3*6G&|#QQVqv?YczQyECXHTDYk z;hJsx>Ble{@fK*cYIU?>wKh|!Oif;)S}vZb750R(iF@X^#8#&`bM5PFDj;BLQ-O&D z8hEL~Ybwu+#v-UTE8(A(Yc#BXeSX4R#B&iV90{d(AL_&@*!YxKED_KGDW0RgcD6*E zZFKM1daaI%-3OZw30K{AeQWmVMe^A~g5VRbI)#AnKDa#O>Vy1m3U)SvoklqA0ACJy z0!Y6?UuUuorF=cog|i`1V~CTF`H3C3aO*{Zt6W5U$-Ywzi{uOYbw|Bya)fQ2YhAIb zHhxR;VJv$-`-Y;e6-|EEK7!wM2UBiXP61&xTOOh0kqEU8a9@@wO_!OYQl+P5#X>k$ zV99bNmZvuwwwua~;46WW8If;9JS?oaWPH2thd+tL`6l+eAH_-i#C{jXK4!lQXCDXJ z6vHFA4*>pC;uN2ZWa8h$BcmR|4%%M^ha#|_ma>5XJNCd*ygso$rKzdDuDL0tK5=zw zN@DcZYwzy*Eq5uJ>g$_Y)2b6zr=};Yu1{?m67?Xq(Q5}QVYkW$>$)9B6E6^N*p#vn zM@wBD9lUVua4Yc7gu2w0=DPakmXw;+t5es;Lr&EV-ZxjXan)F4zf*vwt1kj`8c3K% z%2sKVLaX9dma2$L!?jcj4NLdgU$k(l) z383<1gLf`MEjcH-`m2cU)FbfBqYAom{rc2Q^81L?^7R#TE8SXAQCChrji}44SWj2> z+zob@pWO|1&Zey_8hizPAfPz%+Me03ytZ^^G>xl@ugmo1d3B8t@$T6Dhao&{s$yYQ zdB+fu2U(o1jg{UOWB?_|0NyU}X3|))FiW*Cnt#q?dTw3!z+j}ocR3i&<_Ex2AA)=U z(RmRS^euZq8K2G0fRtj>+XQpNY&HOIFk*6H@q-fdOhJ|j(o7NfyW|lKY*m;i(~%=5 zV+_~`R&T*424C$R@Kcn1XpumHvG=BH*v`6#=Gv6Ume)P4i&1OCmiMdPnJScV!~9(j zw}f?#>e4AjLWIWWC<*-Mq%%!wQ!){s3$b?JTE)wIC~|1wa7^d+_Qph1Me}>$2){-i|x1{0PY12FnJEyXdFZ z%SX-;mq&8wtOj@f;b*o!gj|dAhnCzs^-1Imah9<2Cm{n@!q>+PP)%>2-SGIXC$_!R zlxG*7sO8`6kPg-RD(`y$8Q5%0pO%j1p0l zUZ0t~=wUJgrVB4WBXKfsN&@hFK?KLd6DFlLyK;i_kXvGFzMjQCgi{32S8(hrGgf= zqH0#doVrD|Kv-$Zscm17J(nAgiddxY7%Ags!_{>xe@ZgZNi8GVhi@C-B7hxr4&eU4 za-ON!u55!2nD7>US0@XT{O3v=;Gal0t9E4wWX3<}{7L<$!TZni+rWW`X(Rxb4f{=< zD8HEJA+0u3O|iNVaS}w~fCRh^mAgsP8JIP&WNVL?Ez&k9TY{tL5%z%8bhiEks9M%z zNuR{Cu!W5|(56u*t{T?`?;oT6_1ed_gZ6Wh-NtsG^GiD_H&+TBeBZf|l#`TAUP=Z5 z(YK>&e{H7^^ijZ%m^UH@6UrD>Y~olF!v{iRK70iaTgdO2JvCmBbKh?iYZWGmm?94S z{*;ds2^%y^vYJw7#E&2|5p_bmtJh)L7Z7$SpiztwU@;(A;AjtR3XES>hp#V95C zW;Kwb`_T9|zEwRymV0Z7umISfA9fg0Ce-U-$iw($) zKjiAvkGa`QIGcW`fd&faO;sj6q^NSmemfVmTNZ^ZLv;r^`^3Hriu#>CN zs>3KVr*s0?w3q`Yxe>Gp;b{SDA_R!IO%^_|gWrDy)pHD6ISZHAgMVNHJLEfoJdVN& z6-2=(P?(6HMfk(I?ger-qg-M3NXB|iV_sdtscCy3Y*M;b6|J)uSOgW54R2sWKP+R< z5NCf{qI2e1vjMw8lDIlAF*9xc7%sieXJoE0Og92{z$yZG2sHzl;RWA!_gsllrLlz|Oiaq5NERh4fP#@NjzuIF9hCE{63N?t}aLC z1xKN^qOhZKOY7zjKV)~dvB#aH)`Hv;fe@m9Gdg+b3ypLgILp~cp!rh;e9)2!6IZTG zepNREWt2i~5$G48M<*~6DSUn4#8!%jX9k;skuy{oN-{ov?ciAdI(L>Uz3|PVICqkZ zMb=#2zW?2gO;sI^4!96$U25pnF>vd3%d-k7yM$=Gwgvp9qL@mMl85zHjj)QD>l~N%?ZSV?Oz;W1l!m5Y^fE7d-UD)EjgdZ9hl`A zD_nkMMmG3XfEaDK^$=m3%82^&n3JP+B>HC5B*FYfkAt|&Y(t#1qqNrjW!sU1^&dNZ zZsDUP?>_MS&>B)y!{*H9QY=xM)L<=8Tl>Y1?+>%^wzEBpG(5AR!6F5E{(A6H^q7fa zvpNd=d98!aw-0vwb-4l%3`$9`ASkpJdoFe!z0w9FEim4Q$B{TgdYHd9kM|Q%%+Ie4 zR|dn9lb&`P8T`t2`w54iVqj$M32<5sI2IVT*>tFLG1~bE#}8`VeyQ`v!z|J-q8s@l zy3fvNS~e1+NCt0ykS~{vbcsjl;*tK@M^u*$l@w0Ka1BIn7&QgsDi5v<1-4vL`PjSD ze_UFt*`8abCvH*tf#w))Sq2)Dou=W^;+Ye29yS*s!!?32qjyEiJL_jYJTmBaUj1z36Q?%zfN56!=bDX$xfIUJ_Dd3*55yR;O&;_Y=mw?rx$q&qW zjJ}7>p~vN=u%Hl;%7Ta_QQ2%bDQFW-*NqE=^|{FzF=X|);U?*E+{M_uMY%CaadGjn z=}U4Jm~zeQkW{a;th44+KYViBcdLk3KZTFKPw0aM4TJ<9#pZ~yy*nsfw%DQ z#C5Ug3k1D-XuLpMM<*8-3EoGW&NiO)Q&>e*S)1LLYtEf&{?gM7G{+A&iAr^ovNNtD zrirM$o?5AcMU{aBc742tL7k^utcnHUMX$+qNh)W8d#z1vor=aa(0)cBAj9dCK>m}8 z=A?!to<&x*MG03DrCDiGC-Z&}J&iIm$)+jRui07&25IfzgNk5EVxT)!ji$||` zJ+>3{GWL>T*FR2tWW-21)(DeEDSPPnRrlwuHo^6p##)udiA}@LO}Ub`S&evqG~PKp zG#xQsf8ww8xpUzrP#_YLq&VQiVi_0QF%+8YM-LN!D}${4`dK`XVk>NElze5rQc;By zpgB^xVnj%wZ3~m8^tBmE5|@Cgod{&bxb?YgtfrVbK!8IyGOp(`JwZLjE4deEHIMWp zV!Mf>t4vwy#ML98oi#L9ZJZ|GgJEL1m5V3xa*M0EOixmejgitTXWD-7H1*!?=G9-0 zJ@t4^Y%#1@aoxCkm|>_Pk*n*mZ1v37U%{83s+7`-MYw8|lZ*3C~B zd=)eXzw8Dgda$9e2r!%+NV)?Z{oyC+(Avn=upU4oYRne)Px7?hipGOiI@gam{spRwu4FZ~>S5 z+4Yw@jJL~KL|1n zf0#YNC3XwZI|3U)1?~)1V3k*!kS)KG& z@U(*e#>^`yzth5etiD(+i3>np!|?2(V4MeEy4-75arHJ_Mc_xAJKq_+NmM`AAg=%i z9M3_f5^o5nVYAKpOz3!&!jr$55azAXgvl53)yr z7miO(At;Xe6vsX%dwAeXhRMgC5Xlza&W^Ev+&~cd2Rrs39E_R!9_>CqyU!o~>$`Be zIOL4m<-c%Te#3G3e|X$AP#B(N5utCzhhO?w{EBhWWbfgsk|K&%5#w7RN_ zv~8y=tg)c|qau#z#wAzsVY)ho%|`zm(FX+aG#*GiVrHAxV-i(AG>HH+y7Sn{PmZ5E zasu0iQ0$`=0Vu$(bHQ2;)=o1fJwF0e2|fx%Im(WUvbbAR&oYV{MmA3|3X z_3RmPth2w|rY=gHf0h7InMw&F%zxt&&Rz)6k>=sBn0DEFf5S$a?e6=`c;Vc9|63@c*thwQO;yHSRW+f$H z*H{kGG%{B40eli)gggU;2QAQ0l;F{G(}pw)AUB*z``jqOS_s{%ZE^9^q)Ax*y7z7& zhVIx$;EFk|o3kM9kzgnMgd*g_l8w%pI)o4I4`wO&6Sy4tcWjTx?eVZLdoRB`Xhm^o zsOZIWpLG80$&+#`41hqyt@di7jS+g9ujbSEq%q^B&BT2%P&*qoggpr^MuEGV=^%Er zzw=>O5``~dAx5DOO+&t2$qdF@TSG5DSMRUqNd{ww$j>sse$>aEycx>T%H0ShXygoufM-k*Og3oWi^4Wqx) z#|RNWH$|Xn5P)~@w8L{QVv7fR$MTM6=T_e#XE}J1mGrY$I$tOyT1%EC4+fWWX6MZy z?9tB@MF2FM=6!kXE9p!azUcJXIm==b<^T=RS+X6=N)r6^FnNE^-uGZ@#C|vz#xx+k zp5ikUfw#}}KVyNS0mkW7v?i-C2hhsg2pCiYDl}!m0~Ye-wIymKbf?W{An>lVfb!(b zbm!Kf6zdXf*r+v#raPMhlUndV%z_0idn-7%D9w>?fm8}`B~-YW=Ax@sJ$oxK7yL7K zE;@R`1xJVeQ6|&t5559n#l1Z3UX~`k!lGXP9;GEz6VO-+OAqQJ0mIcXa`+}_;Hx8G zt}Y4_AyQdjb#HuzeWYtN7-prL!H<1eF*Pz^y!v|ub#lUt(oFW-g)AHg2I{60*%3ks zJ-8TpjXs;F1YgsukfoZCN?CQH-h$=RCMpuUzki2Cksn#w-*}32nBThlA%NrZD{yB# z78u_I!zh~*c94w?Kh9>uRnrJ+Ju$Zz|8@_0&eDp+?=dzxOc6k>Gs?*Rk^CfP>136+I_xKADV&H5YbA& z^#_ez(C7WX}A&!bn!JwN{Rll1KsK)JY@ z&^2Z*o2*!sVVv3;6@=NdhYDXohdV4(v%+AtDZ>+gP%JN(rurAeb8r{66eF zRFLQmynqj_rg#pD))j76fLxR~7eU1wO=4B(EduujsiXTLwbtN^-nHOQ~)b#LXQ z`uIC9ev(-T@r4IjyU*EBLh8Kb z#YcDT-rVGC!O5X?N_Wz_och$_TvvW!jw{oiXHgPMo^3q_jDlzmNc0JgB4vnFjIj9{ z9~D{S)mwXO&Fq#yGYarQKhWZX3Uq%lRG5xvcBX83{m|rQeoGO5)|zHn4ircQeY&ti zGT=&a=TLz_vTmgnS@2>ujSUafUy(V8Y0e1ZpLu@|-0ZEST5 zp*?#FyW+?Qm%XqLmHX)kh?ZBwy>z{4ZGKkXnssS$P)khTws^0qOm8rs$6H*zyF%|- z^xqN&G=N2H!F?-NOpD~h`gMz3@d5Z8;e)(2zbO%iDlluzhWz-{x8mW)X#lj3@Ofl+ z{tlK1y3mME_#?oKGRK~>9lL?i?M?Ns*|4_!O?L_wfGK9ECix=~V9m-#Ts47*w~D$6 zauAHj?_t)vCH(ZdUe}|=XnA%!{mA05H+t)BbbkDrizO*K-Xq{^{u?9y- z4#+t~j*rB~P1q8==Qs2tq<9VL`pmjzC!XBS!|71^?5aicRqL{nb!oZ`OPQHx5FXpV z$J=Pw?LGYX@p$_jTz+XuU2Vk{_!-o$hh<$h4v(e_e0=vidR{#duO12-SYg4w*LO^( zuh6COIZJh!SpE5I!YB3|KdL4J7YMG>mhQ{MEf4%Da9JVymKP9?3+1=dNoKtv3F5P~ zU8ji!SzGA*Z&4dz(jo5<8-Z6>t3*T*}G^%yLY>LzqJrmBxtkPM7&%tm%?fSSu*E8 z+0Wkehhqr^7K6$V{NrbWW^OH#%J#K29H?mUw751|i6^MJUY`)qc=}(_URYM~vU9x{ z#RY`FaKo5S#h5Pypa;TVUbU*?jqT$bpF^UHCi50zVhe82G7P1U8quBsbttWQihg?9 z^7!O*)td$J#FTI5FHt@dJujWQB2jCYz(#}xUSm&%f6hu2M!{Ma)o`N?&v@ViUMKc+ zdHaX(Rm5S#w)4s7p#VUBiEoKbKL6E@8@U?6k9ds+z1J6LU2K=n?E;wtB|1lNKkEQ##Ui9|=)@|Jb~La=Pecm};4|4n&x;GW7Z-A`#2}cA6=we)4Xk1(zCe@9modXMm+|4*aGS ztgFBr1xzu3bQ-L@|91YneT37?%>Ioe+Lc6XhtaxFPaql-75I>NBRM}$vFGK zaXtw(dBFu&>4Ka1N^!dQd_?RZNuUX4U>{#C3@zM+7S!b7*o5wQ7BP&``w6#w^9#dR zl#g}?vV^En7bj0SUb8WCe;n-w8h+_8Nf8_fP({;_dS7j&@pF;1tzl1FFfS zAV&E{{Hn>5`JHk6aUDsE(1lDR11DHN#Xm37_pQ;BUo6t+IP$#+C>)|j|6kw-^tq-B zTTdYxe^ro4-l&T4y>(#hU+1wQYqx6m>HT;HWHl9fZ9|`w7Qr8P@;lome;B`6xuu}P zgvQ~*5*J-R@(5&wkD;h9N+5x|_T=~nfyTquZ)Q(6R`~~aoM+!6UFxnN`{_x2yP?T+ zM%2&r>9gkW-;ptV@&Df<*)Nly&a(y5;0rr`YW}kW<8vaVQFT17ZJv9&XlHwU?U{s% z&+0E?-XFP(4DQJAtnjUM6=3QjNWq+T6cJZhok#kv?byMFvp+9D=T3=VG;>vsW`$^` zZlX=++pn~L*L)Grg`5lZaHLXRnv3fj%NHeSrSaMKtDm@5QzwHjun%+!ZKmBiq}dG; zmC-N+H7@KGaw#b=UWid;GSr1@72E%ybl5X0C}bnZ3lZ=^&5yT!!B$*k%Y9a zaG!!T;4xI@k|Sd2H2X4#lB&Qfq1Lub+gbQ77S{IF^%q3+hU6J@(DVISzCvr0((Q{q z87@9BRI#qtLv`29fKt0-U8>&5=ICH z2Mn!U6#S&_g1p=62^HjPJWc5SOT2c;keBe>VlH7EV?y&pF7rn5{6p+tI%Pe?#_-Pr z3xyA{2F22!?Xg(V?8A2ODcEBxu*c$CVpGn4wH@74`f%Q$oO++vX|yEk>LkTXOy<6a z|5I1ILW8u^1sl|_m$Av%HY>4h;#=aA$2_qVD{Sw!DYE;(DOLwhc`S0+j=?50T8YjT z#194U65EoVsQxkU+NT6Y`v*bS@m{-WkFX7uKPVk|P@V`~db_^c77g*+|uaCD}arNO%h#9GeJ`8~f+S@!f zTd+6ArE`T!IR6Tshp^Tr>Z{KRRY|d>+FEBVc2`y(+}*ez4r3b&>a)t#{v>QGG<{Lh zd=fWR6_20>5*(4$xIBBmYCKR2h#1y#1s=`bWjoew6Evb?tH;*h^m(dkTbnA|orlrt z$l^x90S+p9D92>YN1A>`c0yW8T3TwBXm}V`zO02P%bZ?m*LiSB@Hl$%p!^VgD+E%e ztmL?qatZ;a=Ro-*o+9}MVraXkNY}K$j2^F( zw<0i;xWYHChTkHl?>Bn1H$v{7>yR|+d^kK{20K-)L%*8NhOY7UPT*Vr3)HHc-J$5 zR_s-=s-;RYCKe3Ksy+2bTFw>Miyc`F*aYlabluVG;o?4=%!OCY)Mq6gId4{y=n^L! zE979(SenmLuLO1B+0KZ0#M>FU-{!F3k!)&yR z27`fp-AFxAqJ<)=7cJ~gJSDXLNaHDTm?=K@f3XdaK95jnRU`NUJi87)`W!f{Rz#?S zgnO?kI_kWra#tyW`})JC5HNcYtt>iJPcHZ+E6s>WnH@Jqoh*79_ngon_S;Rz>ki{V zx1MZb;T`0!9j9BNeix)m@sI$=)Z157O>3Opu&5e2F-$euz99Qp|I!wqErodiG{r17 z>h=2cg-ah^H7fZ<@T2(1)6($vDb1q79jcNj_Vn^=(@-Uj+OQI z-?JtGRvb${9mm3A1W6YhU$o>Tfqg=Hin0*V@_Sxz3~BqDRQIvF4zt6Z5A|oy7^u_J zCn*;w=WDZwCWX&?TH<%SG%E={qSvu+52k#afNp`au)(Cgm^7Nq=Z{S`O%jl$oHqyF zXDV_3DeG^*$<(}uGv5z8*@sU_eDP4l2yRL&lay$38|x#JS|uwOpZ9g&enIoV@SOK| z9Ag(7!_T8R3Z??0Eu8?e>WV)DrFKsh7~hX`Z=a9+9~wS~7{2SsyU0W8IE#nQRS7D&} zng@+|MBZgn1U059Ynu`o*q2y_+QUC#Q3^NOycd@4z4FKR|6En=tg%(ov-C{j(OGZ5 zxgohKwlGUz`f}h0qPff=6|8<;am5v1``6k+L{% zonEA5$X*06#O~h$z#JKm;OXmkKmOwwcJsO#gU8$m(TvAZWB+UA*T)Zi?WsVmIHtc%3Q7&O0`MKw1+s9dm`~oqqWpol z&FsD{g9^8@wf@)>EbYWgerE9x4onFAzUwtb0^F|?)yr~TON)Q&k%_;DY6EnYd7il& zUfs#1OXwZHv_p9?A2Pdx^kC7xN*1x>(xshD+OW@ah<4K51-r9$E@yY%_gDVA?TboR zJ7$6}JtBzuN1`FIV9gtRBp=Ej;!7xp5zs4aB4wGh#8PT0sbH@m*?ok~DuE!}g1vyf zi9X*GxoXH@J|TFP-K?O~ch5bfvYQ&TZ|k<_7nyyUx3ek|>1s0njks5%2Vb4=u8l8ow)EDcR;L@gBlu$H%*orR=OC%v7%5A7%~(|6C(i?lg^ zqiSQqo;N+um%dVBvH;&4{P+DyrK$$nNIU#Z`|y(1xh2n|b_DNP8@AOFN}w4+`EY^+ zkQrtdg3|}dp;@EReuvhr|UDFguj)7!@ z;|q{!p7>J)%C-Sq-)>YJX80P)UKD)=p6kz^#)>2KQutK(Fu49RuR5xSo3CrH!9d8BK{)sH2JjNzb# z#Zo33sXaj)j08spCQEtXObOmQ$~*XY)ZAVWWsE0L`x9iBpAk~VM|MSA<9tMY`WL0* zrO2pHl_21Cgv<#lU{WEF2}!gw*#!M|kMJ1Lh2c*&M@fei_tCq1kKE-Lsz+y{faCGR{(+|Et^nOB-7%sV59e+ z)d;l=K2}f`spU!5jzeRT15?2hDOeBS(;)zTf^QSO71`Xbl&*!C###VdnTBi)tj=EK zL-?J1+ISvo%okamnXYe6Z(sR=z6jeo>J|l=dHLF$T%#6bDij12&3qx zQeOorblV)((ss7s6D(!@*zb1id*{%8f0?(a2zK9gP%&)6AsWRRoB{hkm0^KLH;7z* zAw)zjbCK>Za}G_eeaw|&Pqe;CGL8K;Fty3H@*%$GPS5^VZ81Prm}^YIT81YL%Y$&@ zJoxR$C)mK+Dto)50-F8I2pzw7)34MTYoqD`IVa35Y-;WSQ%Mmgrqm2Y7N1)gXpa5NGx+hW88i9$y2<>2tD2E^H zYDF0u3dX6Cl~-TJ1Bwqq+SOZB{*k9i@9?PI4~kXR2}3ee?oeT*<(RgwX*cNI-~tGj zWQ)A1Un^N_*YWh=Yc!K;yjt-D3&O%|S^IdKkmY<5T%{1205jwipn+itWOvMBPfs9h zE5FN$HoF#=C?pi4jj7XQ2_9q>IauTo)?>c#=r&Z10uv!p2?QaP4E!nhibBjS0~~mR zdwFSr0p>YKu0-F}qF<8kAe1-5*+sxpd|T)FPCveXXba412|Kt^77snyWmWXirii2n z3!0->n^J6%dnLP!g{b!%|EV?wy}mqRZ7o1$N+e(=GdXzmUd8N4p4;ygWXRV(yZeLx zPuCj7zo)k`iZjtTG{yfZy$u9(f|e=EoJiNe;J;n_?xD*+JGST2Ej)t;?{T7X3=l(mN^`|a9n#@B;3~b|65{m)0 zA(T@11~NW+O49Y%29n29OpCRtH{1rcp>YR4V%iYy3ke|m&DF2PM+Rdz2gWJcB=Nik z&Ok>t>hF0dUj&cw1khU1PF>)$_5!HTi~w*~Im}?=$lV@|E}dPduOhee`+?7TzhNH0 z-1qHc0|0aP2+aySDCa_je4ApPSODfl7V#+xn6wCmlMEnZCPpq}_XEiGKE^!&vhRD9 z4_GFGc=`^)_Us?nU@)GMj>26G05M#;Z5n&R!WBK_3 zns|o=SbiL;*r1)@1|iN8w3Fb;K1eo-x}Z4YOa?4t_q|G(=P~ZZncTmSN8(Jt&Jkmv z_P}I=C;?&j2;{e+N!1N{?cmuSdh<2Cb}x0BhV%$IJOJDw>i=|0 zdkcHIdnpXntF^}99$uOc(h&4JV%dVA?ncESur^VgD8@msuP*EtTJUt@oh52egpjsk zark%EQY1kpa3wb8@{=eOatr8f6>N~i9{zycdPuG&^j#LCHwVVIFl}g!?G*z4(i)8> zS;k%sB%V){sE7wM>4xRKkI2%;2TA+kd`N`Fr4wZl&M7 zT`-g}nb5R71$fV$Q@CB3WrE$UiOdtC0I_UnWmB5Y2)01W6v^l3cf@a6=9vd*8+OVv zkg6BxL!l^`p_2&FcBbx+-4@pp(=ekd$-T&nxC0w0o?2=fQb_lB8{Ld-xeWQ>V3Z6g zc%We83)wQ7G;2xl{i}1XiS)%;0_^FU9#{?)XaNL`I4iyY&ZrGzI%8UrcH|v2q0KyE zFDFPRBDqE_4PY#VKEI3)zC4+cHySm2azWC-$D#yXVO*+4N`@)j(cIYJSvZtUsG+JJLYv#_i z4I~!^+8Lz@wezYLdUAU4)Dr7{PiJ*YO;uTamA8^qHX#(NEmUOzicQ9so@UyU zJ;`MYTNX4Yl_z^hwnIykttm)batu?Hi(aA=VBaDH4j|b>11>mmmBhZYvF!kAtPa$8 z8?eXt3=QhKtOJRET-d%I4Z$zJ|M8_ET-|T}&j!cT9(b>AFvq>b=zuSZdpRM3kFh`M z9oIOfdFlS#Gq9S16`w#tbG7QMA@+FRlB#5{vOc3Kt2O=L+5>QB?!ohOO$*fXGvd=o zMs~{DTxCYGYKb8p)Jy7=kuWz_YB;f!de7|Gf4-TVZT!~D#yH67h>&>@srhe=3`X{! z4Nl*&A^)ktIeREHbJ*w;>{7d_e(=BD^oz46ar=Uj33l8KbRYy##9b&qYhw273eBFX zUz|O~omG8j&n}0+Gk-pNAQl^%(>r^R=99D_O6!=c*WY~muEx!{_sHeD@4cQhs+&~1 z5=mw5G!!JLQSDIM6MZU2yfqb1be4Wn=As$brjdyEu{t}8;2pK=#%bi!R)JkWX;yM} zJXss7PQl}hCA%2GY@xg1Xw5FS4>+OGr>@F9_4;-d=Gs>$&irY};D4w=hY~4CX|I`+ zQok4z9SnuuiS8gtp4Gl3O+@KEjv@?2bm`HP%W0B4Uw`2MKYLP$%9VlYGif>|m9>XiN0h{wmk#Bn~%_!#?xmIGKZFno||rJ zXSbaQ46Gl_)uE>%Fe0=c&jzkoU_^MTY!TEbe_OKrL`XhYP#F zGVkdf2hKPB{HYjxReklg|7ULeFWj{MU3Z;4^3wQchD7l-A_x_6C?qpb{9J?r`^CuM z8weZa*s;$GOz4|;A1G|_v6%)Ro3x(rGKv?<3XBw4Oe<>}S*q9&#Uk1xZnX9hH?~3C zSlTUaEb&-x5I1(ePZl@AxP(htLno}dFE6oI+_+j6H>O`NZiJSB1Q{H*7GP=bdp@%0 zu*-g<=+JZ}r(1NGEsAS>M2Dt6qC=6Eb&D0dMTgcN(P1BnsVq9IjrHX8hz`3qxvM++ z;cR-XG$|iBe~z?bX^todYdvtefD??h4bE}fQH#F8W0JW#4@z6Mm6YN|=qM_HZIdxB zmc*iXLWGb4Ojn$p>>9~koqqNzG$9b~QLc@E7TY!Qhv>pJBKpO3<>^aq1DOGw)i%~=XASlwoeAuxeSJh`} z$l7dElSCT|H{qZ-4$WfK%$`gX~W9faNW9*S+s z`5Dv53Lf>K2_k3|c5vD~RTjfHrf=aRL)G!wD@e-tsirACrJtTxh%(k82Q>`QtepYC z7$Kn0yo)9RZH!dEU+TA)ppEa(D_Oyzw6arjZ!BrGdx@)>y+Bd!kY(O7Rm>eS1{?=0 z8B*{&cfxywI#|y48_Gq-jfh29(b)8kMBk#C#g(g2rZLjmvyESp#xLv7;@9$A5T!0K z-LfC#9|Ivbjq*RdhllMMyBS!GYz!&irwAl`=>rMnJbj9lGx$nR!NK2 zCS}6l1Y$`H8A?h;Mu3X+VtZu~l0nfpj+$YPX&wh=Bv1h{q*(L?AmH%%o6eG5>=w54 zYl%f3zUW8J8KT#9=j~$?kSOwL&q^liSvE_I*8d8J8rh^s{XP4=;<~YKSME>Qm(i|- z-@r6*+6PZacxKIbY{=JLb5+NVpHPf`%7Tsq^i;w(OM#YcR{~eFMidnmxkaN70WCUa zZ{)Xh5!+N zKb`TCY9Ss|9``W#gVQDn<1na!@T>?PEP6P+m-t!Sx!B`^QDXXq^@{|a3Ve>jv~p(3 z_|yr?890%UG(dY1fD-I`0riQ*jz#L5Ut+%gJ@}^ zrS>6K+a4wzWp@!4#>~gMRdFr>&0&i{Q_Tz*t)M0{1oO^S=0JpL1nmuyO-y7+g-qHk z4LVFGf&MK`qYL44$;pkoHLM8EPPv>`VnEvvoUAD;LAjhHj^$%-kOzGnang>})?~_B zEgIBJ>hpWKuYF@gwG;WV$*5JTGsxhda+4uaGFegim)qPHRqrKLdtji*^nzO86v~lq zrdJl_Io6glO`im!sbqIRIs_V+?7V>fZmnmV&axxo=W;V~eyea*GsW&`NKs+(09TQVTf(~@ zWCs+W!lh6dv=JFwC+MgACKkb{)e_>`DA?c&J}@A7h0t zBlh_*#AZ{>bAYsE)+m@vvW>Uf-Pl2zI@naorpn{nhe~RrF73NgMrsf^AI5cW7@eNH^7I`Evw^`>O{P*)P`s$`f!YKkOiAvh6 zY0&!DRc3+CADqV(CWwnegbfgCfdZi;1*ALU636}bCfEPq%z}%=dHPxFp(CySnw=#F ztX|6oiZAm9Q%TPLj9qb?)x`#|Tgc!bJ2ER2dxcl}mif?R`v1 zx-DJ2yuYF*$rtaA!}RQHOpukhNN2d^=i@E}-KOZeV@qDI4$(8-JJ? zVL`?W0a0_$*Bo!uTc4iV`i{8d|z zLMuO1zTX1*4S`~OVFZ677I)lgEom+HlZMmvRQigZYd&)Hm&PT1SG<2w$MmL&ZgSlP zBNT@=4xVYk2}O1eG5yRrBq@2!_}L=>BE?~KAVw(B(9y$P>8>rVx5K>)@=p{Rq3_VZ zNJqIS)VT?*YS6j2H#F3yUEUjfv}$2jZ1b}SXj?hi~OqV8NvVRR*kQvJj41u8@7u|9sk6W=bt1@ zJ*igj-TfyiTE2O`Ig^siY>Q<`ZHrX18PN|qD&c0MLYn6mk^;oXsE=l*E0eM2a*S!W z6g8C0eG##1Gd9YH`4b}Smkk#~%cBdPvQ?B+)8rMBDp>l2z{tIkdj~{EM*Q2rL3iEsz~Gynz4@lFo9@18#!W>xHQn_2O~J6bn{T-}5N_;u zSHI``z0z-GzXSdL)UQh#BIQVx(*B6wM6Bu`(f{@Ssr}957UCq|-}3k^%WhHMvip`Z zkpm;2jC>_BE%ILntRL{nfWHqsFz_$8{_fU{TR({!5#{}t%eM`@P4lYT$V!X?h=1{?a{&t8|D~s87-RV^*E{~L(-&blv!E1Sy{rm z5QsEFvSMdV`7SabcmXz{{G-F%w;NSq%Hd_Tdmb6U_sr+zi_#3SkcWVJZ-5J6fg{`1Oun)dv&b^@Fl+!YEnVE%YJG0rKd8}W| z?%Y4;`AltQm{8GnOAQ=LqRZG*jVxyW#agt{D{*+;mGA+yI<<$KCngyvn4|B~cF88Ca1U`*2TQ`HyAX1E)p zF%nw@$(X-V+m2i*j2QLEkfxMw-1dEJgzEhyA>iR>}Ym<%9zYpqR-W+bQ+?`p0ZRL zwGiA9CC%~WRsjUA2SwX$y}19IBT&A<6cVU#u1=*&RK*z5Oa&kppa@{gb>@50OEeAi zJ$kaGW*2c5q1p)IkOqG6LQiEdsI{?%M2r=>0D?B_ZuPbhPph}FtcJKNPi~Vo*ECnz z9Yt=3urjG!Td2h4roOy%{=B3-@J~d+&T1^yb|&qZU-z;j*9yU-@C~Y`q!#Iy&C*?O zb(oz7S59l%wzRkPAX1pEs25(Q(od)?7P_Fkmlgf!g$_c$limZ`Cm;j~?YEr{XYJdy z+kg|eEFwpijXPm&Xjv;7dSxI2)2t^0@&y45wSH%|C!-{}VogN`Tr)wAL+SK!D&2#1 zuRsf*JGo+vBB8!etD`@m(1D_v1f`cwuS5_+VWiU8kZhS{e#|X0;`t@AER_2?zv#>kO4hD@Q3;cmBE+b zhk6RJ16J3iHaFMF7VB#ggem%fmKyXZN$=C6WI#_zHzvY^=4{q7Ypt`q#OJH6E!~Px zuh3kkZOW`kvM;k{*^EVc@|TFe0G7DH#+*-%C^#|q@B})B&U;leiHQHkHG_fPbCTE0 z(z~6zZ|kW94_Hx`*1ol_wmq7*r&Yz;$%?m9R}ASrEjWXpx}nm1%`|<0cwEu1_J6EO z3#VX8%7^lsJJ^2t~<_s?F^nZ1qu;plk9eUYlPaE>yO4X5-MQk4_pl zWgN#6CU4c(`~uG!&(io+Qqt;BTQIaY!Ne72Z4PS{deo4ey8{DzViP$A!AunJnvKC) z3S7({PoGeDG7k7>Ypc`2m_F~O*wn1Bp`umI%6?%Z527%m`z z^wotfg}t^AF#^}=Ww?ZNp}m~zUWN;BQgjm~1Cpnw%@H5USAQou@1oz&P;2ynQwco` zX%qdJO%hUqrYygT3@E0S5{u9NLHoY_G5z*%(_RTZX|tt-wfiEUZxU%7c+ zae*}t{AJ`&Fp43+&z%mU>rJGff37XJC|W#6$*zozBTv1|Zi%bZZqDCeC^Wl}Q_Rer zu3VD(;;Ln@t(!>-(sfA|O{lLHmKAVE3o)auWu<@nwUHV=LHo zD_hrgYj5`|Tg%vRZrz5Ar9Ac5=CPSdWW}W{=Uw%_9s5G0DCl$B~pfB!|9@zER!ScqU4o5KW_2QFYCX_Se z37EfUz?f9#>=3}2n`wOLetZM2C~+0JHo6*p%3M(2%upE@ zG+u}42|r3l!38H@ACO0X*C{8~!-1z5hK=q}p`57bFDN%`cls8CIDsqE6CC8G5{jK@ z(Fo_Rj5(=H`H(A3@)Q}Om#2Ivk2#5H0|Bux$#G+v!>d6uO*=J{s=eXE$`OnXK;sEJ zCVAl&qH?H7+5LP8Ji~egxj2BA;yT5v<#^1yo2V&|MPDudr=8oCMsECnvT`#FwPB>e zUI}YhrFrP67i(PL_@FlcAq50S34{kQFWd^KCscB|Oou6Tm_U(Nrv~uA!(9lfVY(WG zTReCaZlfCn#uIL+u2wwZYb$IxjTbKm+-!VLv&!ypGI_lh#_L#!Vrtb;C%cD|n|ES@ zN2&Gb1N>qwzHmRNgXFt6?*WvzhCZ8dnybQnlVQ8N)lpGpv!{TE#pSebUY%QD1aE{n zu%?r**rQ+5RnqiKQ+~^aZ3R-gl>H$7IWRJ->TwkS64%%G!E{-F`kfa~fmNfYyl+#N z^|R%zj(xVC%H6;toIU;Br2o_*pK|fnN=W`?2+=<>$g}-OQ5*a zJ;X*wkYIpyeTVpK1KikzPgo5o29TM-BUM*`cc~s$>7GmvF z9u%&+@WH6I249)l`uX0^u%ZA|!`4^WSKR4pakqJ%#Y+Mfn7(fR-jx@JoVA%Dbc!7 zA6}^Yq{&*mwb%{cZBn7XAjoa_a7x&-mfp6*Z38=cG4^8od11kpw`CQ#uClJf&s?$v zEZa@pdF@5mfVbAzYo3xURpzoSHNWSfznbTK*_Xi(m|YMrj2LcH|ydw$}_q2`|MG zxu8~{wA=t9EtF;pppN>KBIp_};5DtWNFAWGO5e!;bXlME2zIXDe*a5M#G`z@cX{MH zrTO>Fo1N;JO4CEK&_iy-+VFGFr&8W>{U)>3f;C&Ezmy<3fnfhJ{`#QG=t#@E*gd&Z zAH4O^6?<~CuqW5sukY+?>lF0OK=XhC5I$e<jA zF6xmUgB3^jXm#UCmEa^lF^WIT86uqP-uOA- zKah`eq@gU*hQHMf41bHfjJU1Hzr?a3ccPsvNQN3_j(UV;K^CdUH|saBSrkWEl1#*t zAn9l)i$vGX1|YX+A@Zn9MCLG~h-+aao!XkLmRX>NS^5l?4OvRrjsBQ~xLw=TgHNYP#q<;@3dNjz}}& zm}ChF+RxGAF`-sJ4Qa9EwRBNe&7(M71BFyJ8$#EkiPlFEVoZqZi?<>)4G#)AgAk(D z*V;4UIc4Hr%@TD`PnR6MUO&o`Xy?v~8)8Nhq)}gtxKA`rNT|=$w^ABjT_2TGWn|mh zebn-`Q0tqPuZ5ybtTiOY8^ LqHyri)Z@Pcl>cTh diff --git a/fonts/CommonHTML/TeX/otf/MathJax_Caligraphic-Bold.otf b/fonts/CommonHTML/TeX/otf/MathJax_Caligraphic-Bold.otf deleted file mode 100644 index e26380deb5f596e719e0095a23af623cecf74d97..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12348 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 D*cS&b diff --git a/fonts/CommonHTML/TeX/otf/MathJax_Caligraphic-Regular.otf b/fonts/CommonHTML/TeX/otf/MathJax_Caligraphic-Regular.otf deleted file mode 100644 index 3fcf0c186e0b5e3850fe9650ddce142e7dd92857..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12024 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 diff --git a/fonts/CommonHTML/TeX/otf/MathJax_Fraktur-Regular.otf b/fonts/CommonHTML/TeX/otf/MathJax_Fraktur-Regular.otf deleted file mode 100644 index 1d8e3e3ea9bb00a7931bfdc991b49b07c424bea8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25872 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 diff --git a/fonts/CommonHTML/TeX/otf/MathJax_Main-Bold.otf b/fonts/CommonHTML/TeX/otf/MathJax_Main-Bold.otf deleted file mode 100644 index 01dd29031c31305278c54db84c92fb4c8d39f7cd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 46796 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 diff --git a/fonts/CommonHTML/TeX/otf/MathJax_Main-Italic.otf b/fonts/CommonHTML/TeX/otf/MathJax_Main-Italic.otf deleted file mode 100644 index 6578ddf24adc7ed349391c7c885915b32f9c6d68..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28220 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 U#y(umi{-ua&9uCJ=lPre1C5<t<8 diff --git a/fonts/CommonHTML/TeX/otf/MathJax_Main-Regular.otf b/fonts/CommonHTML/TeX/otf/MathJax_Main-Regular.otf deleted file mode 100644 index 38e46c390753b8dd288446beb3aee70b47e33c62..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 47636 zcmdSBcVHCd_BTGWo827&Bd{)F3n7RgA|>=99Tb(`OMvv=%cgH{^UU^=O>d<4EG<;& zcHvr440tbI(Tie1pT!B+_sk|Jw)?%`-~0aa%O*RsGqX=U&pDs-Ip@imjT_exg9$mo zC#Ec2u_AC;Mo~9G40(wl8h>7~V&keUC$%pVM30vsh{v8=wtNM-mhdBp{cxWMT(eV;^zj7*A-YNselNsChDHc(-P#5Bj>6x}7`Q+s`c=dEE%k_DzKQ zfdmQfB(eDPmuJ@ReqjC n)xI$cf;={1J$2*FDeqSHowD;Bi;s2foKw_vI7Y zMN97}em*W5>?^7NUjGAQ2x2Wk!aKnuTS*HcfD@X>^@8a?l2?hTVb0}AtH_sob!n%$e{!0e#C?1?tyawF_>fq&V_LO)WG@u1m>R~IQJ(W@%v%md?+zQ zFk#?)7$Fio2NFQ~-3JZd3V;3QBr%fE4V?1`f1-WhoKHMYoEtdzBgT_62F?Y<2r^^f zTnN|Q1LyaXUy~mUocj~g{Z0&=4<$wlh7Oz$Bm4!kh^0g_kwWAUX+$g$O~eoxFh=8v zaN;RA1`|`@HHUb{cQzHy1BqosB$4iWHVHm$fG1<&N)j9+iHUG!rSE(aK`c#9$w`Zi zj>!ldAO2Ke@RTWYo(Y~ZbxPo}$n@Cgq`(c~v5`sPkrM+~CWXV(tB6pjI)-=wj@iU+ z-{)8;idYqz5%WT5_U=`ovG8d<)Dlf(5()5F8hnh5&P)h}lNHd5Bq)G8roj`DzSd9j zwRkR^|5fqN{Jz8$$w?V2lGCCi1A`|`37i{vZ}rdoQr&-D+@F7aGqf+wH;P=V1Bt1` zB={pXN2aC6CMN|>odh5LFRS?9O)EEX|Lw$b;xV6)`d*WW#DRH>^Ud3&f#F{O;xmyL z1kc3!W;M_^%;~;vXTf^})OUBv0*Te|-9+D%{Z*$YL0N-{jUXSfFl_gJcLUTI1$9V$ z0>Mpt{}TyteR969-)3uSRjFaz2%mzWH%bm#@QG*jSO zI*19k^b+9MFXoe>77EkWcC_Y~Z_rp;@7^387&Lk%7LZga)oyye=>_WA31s zjEt1IlP9N#r^TjZq)$qZP2k!*dCdyw`2VNT`cDP^l?eWqiU>40r_1~Q9_!ck{AHZR zg=>!ye*E!pJO|ca2oqOGR1u9tE73*lBR(K7Ih8kycb@k;?<3x2z8|0B58=<|JNRyX zDZheW#joYp^P2*NfrA1c41757@xal6PX-1DelYrh(ZfcIM~@u+*ytIfi$~XwZXSJX z^vTh0jD9bO2;v6`g6<0%93&2UBq$&#FlbEB*r2C_<_9ebS{k%G==q>kL2H9TgCc|C zgYtq@LAoGQP;pRQP-D=!pjU!!27Nnb@R%`Uy2g6O_KZC?_Vn1BPli94JnoBeH^==n zu5ZG^37t28{uyj72ycHsI_~MmIo_+h51}6fU&tQ>{jlHDk2-#1ATRK~Kyl#6z{dgu z|D+!l=ttA&qoZGjeq4Zl@Sq#*Vv1C^Lul9vwCBC!+Q7hZtvaNyS8_A@3h|F-urupeDdQbS3lYK z@rI9AfBfRdD?Wboqn3|qE={=f6d(PZ>^PgR?aM9u=O95X$_x#EiUVLfQ>NRWEt>3V5)8;K(w{73CGi2B9|5!J7 z(;e~4BT=E33F3{&-YfmU`(1*dxqD%+5tralvWNRX*zB$%hcm`^&b<}?a(2&2YDo)Cy1f&eqY!y?)({es}v6>+PN=N!~?_#;&I{$fPgcJXF+AH0$aC( z2=iGaDJU=%p(l)lop2IGL>W;_)DukrTK9wdahiCIxJZ0RTp>OqZV=xSEa^u+Kt4o1 zMvf&Xk~7JLYk_OU37LgTX9oa=5AzvZiC9jg7li!dmPssD< zjo>}b8^@c>o5_2Yw~V)zw}rQh7s*TI3 zU*&(!|C;{;zt4~FH^^_8-$=hveoy*6<2T)Jp5GF`m40jew)pMxi}XwIOZCh4lliIq zXg{l;+pp5E-mlGXpWhL`Q+}`dUGV$Buh;K0zZ-tv`~4&!1(e_c!92kl!45%aW>V~w zDT}9Yhu~?me21lT`VWiy4@;ucLbD>nlM};2!!t8{C)|x`Q-U*M6C&>UJiY(&%>IL~ ztZ7qb_kZ%0HEqh0{!dGNhiS8)3r$Q6T^5;;5xOxZG9&b*(8REa(5iS`Cx&iH z0TY{?v^FMoZF=mQ#K>r_u>jzM`w!Fl4_vKqaYp}vtDM95{fEVgu}RQm--l&fgMz0{ zS+O!IEi^tOGc7bKHg@LJ;MsGek+FbyGtxrS)7Rg6zg%(8&z0xZtV2 zkq@5g8}i_(Gee=6wAl1`4#@RC;Oj8-m@6(EDosmHNrrlplR^_>lcHjiVl#3=lcE!R z6B8WVUtI8vgyd-M>CmKzfwSbaSZGUHdSp2FT_`#^iMs%;Oh}JS1dx{It8Th)xPqro z3r|jpPRoRbho(T4*^#N4p$Yv@_{KGO#uTnc+*Nps&4L4XehHE3>Aq{xX_28&+ppi6 z>6@G2nVirD2hZyNG;0ah8)#H!7!26mbM8W9Mp|T4LS%OToxA7#cYGzxUhX^0@l9*+ z9G@5m&*|^|oay1QY2hGs37P5rPtEMVkeHc}5u1{b(|@slVEZL0cyWITi~CDhJRPb6 zoC_n)`J%q(7xzEEbb3T`#xJw8)F*(!OZ)FF?{C!d6}~U5@U^Xf)do-NUq;iW_vsU<|Z`KN5XJ)PNt+ZJy z`oFNE{|hU8?Vh#5x3(5f^Od=HasR>B?&T|1aMi+rs}>F`{x@X7pV_*5udPl_OAO_V zCm1juAa6h5l7ztL#1Qv^do>tXp8J7Wd4L#73?qgUV&XwU0!Hp3U|t?39w8nDl>Rso zK#T%ZJDLb0#(?n~OFT)81Go1nVgm6rIJVD#12!4Bg{febrxDYM8DJb|5wn3QnM=$A z=lEG-0kII6sC;4x@GHxRJs;yS55k-ZemXtpm4s0~pjz;97107HAuA zQ9Fp8L9mqI z(oQ-^C+Pw+>L!cH60(#mBg?_0R+3d@HCaQ}l6%3t){_lnBiRIQq=8rrW?FI$Zqh^UBlnXB$b;k|vWGkjhWRLYj66=BAYUd=lBdYi?N;& zdHdd-4|f1NkF~NiTVu{E1}A zKJpIvZ}MjzkcB)RkI(bt2>>F9cogqG-XPv!-VomX02m(N4do5v4d;n@5Aq}cA0Fb3 zQyivSB-e_JBZw&7V-dNs~04~P!p5jg5Jxr9VKYX%i-1u>8$88x`FwQ)#bX?2$@~2WKJT~F-(}feqJ<~AB zIQhQGt|@z_G*3MkyfOIlwBys!jCnJs&TNOu7%{nf`#UV)eAcpo?7^~g`Y3Hy-2)h?xNL;!WLyMs$A5y z=+#A^Ec$8jh{cl^FI`-)gjlj+$=gdqmfg1uEuXmj=5yrpPp^zw8M`uJW%A0jm6quIF}rwtM>S#k)7`uGoEePju*$p>Kw1!}mqJ6}dcWNmNtxg_yB1 zCt|zeqT|xzZpQr>cPIXpgy9K638jhoNqI>hCw-9|mE4_tCnZ0{lsYH%rPNo_cBB=i z@5@NdaAwZVv}XyjlCui3kaW1TLfRocDZMQ9W~XLUQcU z=sOHk>2-8F;v*^YGAYdW#+OYw=3vWm%MVs;v)G@sFSKv9NB1p4$Gpprk;mYNe{2Mv z;B8_j2#@tiC2+NGxyZk7k$>M43?AbBTuOd~2lFr8eoBHAp1xI#&Zsui#mJ4!jM2uJ zJ>FHwNi`+yjgJAF81PzOrzCKYzxOick@%rbJg<}AcH3VvdJx_-V)P(?Jeggbg+KP- zNgn*Ml*IGe@s@VHy`6s=-;^MkRqNDKSSb9w2GOHvS{Wk`qofPjwMd}QYqUs)04QyY^9)AAE@fU&2ST5$drZ2Xd(`Dl^5dK#Wm7dhc z%A1@e`DHLBBEh0;#EiPPN$*#{aQWkhF>&b@E;u~=)R7%;uKe+hp4Wd|`KI`vay%2S zk#~Gpe?_%2m2!$AsAX!tO%TcaL+O`@^M~Sv%cS_xs1Cg&3*bR2Q5m9Cu zu}wNgu+bizeZ{S-JcCd&>TBF)XiN7S)mqz!X6X7q}Mk4;Z{N=pv9q0x0{PwLI3Mf2Mgeg?Y1Te@#TMZNliWO}{_8M}7z$LS4?*5(YiRKFQwCKFUz*cbkTIMq1jdBvX!73sw@SPsabdvkOD*XUUJh%-8cMB}|hzP-=#af-J zFeg=&f|AgT%geq&XVK}Zmk&@bN0Cx+BJ4!gX~Q*i;+*Y$$`P&->2`#MZAHl_#T8et zuqQMbOf+LOS*)%58up+0x}?@!V>D7_wH?LBO;kybMp&p{gECPD3T9+RN*Q7iHnqvq zMj=&pykPxP(uAZ)N~I_)6>NWH_0{-~D7Ra17nFojyAQ%9zRu3bf`l)4f@evj%P zjLMnXV@DB)1~SnUyR^?GL2s5fw6{}bWzL+EL_yoy^K-hROga-RDMah_T75)PNNyNf zi^5K$D->vAysQIMu)ic|kUzWsi+B0>QxI;@9gM;mg!$X>M1*7E_ZXgd3-g^$hJo6Q zw9#PHn-Hi?st_fo3s$_eWm@7`>2l?2P-|@To9qlM978pvyOF?cVeF%zXq@^k|NL!* zL~k%aPZ-*wv1oo^c}Ll25E}!(+u3JEvplUvtD$L1Zl+5DicmwX;KFMs{?YVZ<=c+e z&_5B5UWsS0!tbf%S{djtq@xW87FzrT{!Q;Q5^jN*jYg)SvblyjvtNJ;U}- zc7iT0g|%i?o8$~=QW~803~GI-02Sk>m{D|TfjbN3pn`n50A&`l0+dg!-!Dk0Nvtz~+9OWUUSz*qz3oo%~DZC9(CX?EwztFgna87%v7 zq)JRm%+1c0$D?>8b>&u2NlmII?RC0>K95eJZl)8Jn=oN-X>6*js&mz$W>hUJms0+y z$7|~$aqKm|clrodPpU9Zn255Nf?|rsFC%IwCm|{|q)1o>m7*4SVIC^eLv`2jH9X|v;o-;5 z;ldxnJz_8Bc^6AMYZ_Xbvl?Uc1~9^ivDnS_>X!P-L+DdgubSDY3V<-PME+q9VG8cI1Bb>_zrIM2($2Z{n!f>g28f|I7pU)eh|L z9=;!o$Km_%W0;tX2a9iDu{T`OQB&7E3N=dWQcOBV&wzqq+-|$2wye$B1S_scSE8uP zbEKf%pw^O>uU2X3?K(Z!_3vO9X@fz}=_DDvXrrDo8TQkH9vYz%jYnF$3$3E0BD77H zT9}p-o0uJgwxit@33ZgsC}^}*)S_mpBc&dwp0vmSlyAzm<=3uyFYF(nA}$?oe#>2F ztwZ(bOv16Pt)UIEMr5J@Ss^1siEmu2JNpK@jGVO7V3T{2TXt7xIga?V+CP2MIHaVXR>#XNMp@G zf?Tj!27`fKH*F&O1jRnh=AjT=gwQqtibXllVVzd1rB(VuI-aHyLL9(Df2G|LVnJRE)T9jrt2!;7CztELJ~1xB#o;vYAoxU7UU3gJaggP=@T zX{bQ|La!e2xQ ziEo)p83!t-%0=k7rYgT(>WS%&FHbGbw8WteC?PF9Mh`Fn(&48(YLDj!@%2;QT@t;=Bw~z=gRz^+&E+N+K)NC$V>KT$ zVlkqwqmY*bJ7363%uC%G96wnx)sSV7LbVaq8O^8`)s|aoz|7Ud0$@%twWe0v^{T(M zy==C&^>iMm-oB2y+53@zU5FAHsgn|as5EQ9ccIKukrW{VI6jGNv_VI4!~V^_;Rjxi zI*WB@quvl-JAfxkP^2TZG^1_vt5H`Gz90Sl8u}5v6>}`S#b8|D19&+jX7al~D}<8+;o^2ap))X&SB7BxJ|Nf|PCFE)7HT(9*KV&XBI1 z2Qp8gqsX(j?f_-6Beei6l+90x$c#;u#;Md`Ve`TD%QfZMKp$z0GCP8?H8S9$RGUjH zQ3Lgjw^q`sYK*Z(TCz-=Q6!p{I(>l}Q1})U+pakV)fr0lM?h=ev^CT>mX(!*x^*Hq zZJ{|p2Wua%ziWrRLNLVaYkpvjeGmX|#`gp2=B)Hk{-wKjW9rhn0?bSWAUX!=6ZJCn z9%)!|j8bkefK#q3&9iU-(`2<$ZJxa+950(nm@-sKoh&@JB_=&JCcyt@c)QouPTqbY zTY{_xv({`dviF~1$6ch@3OpRcp8$`$i0?mRG+N9?Gf1ROQ>-ZHyU5m~0Igo{^Jh&O zvz|iU3v5HF(^_nUQt`u_J5O>R{MbS4X1^x~`QNQ|Yn@=6xUA?tvI{+9J zQqkoBL=PtUI&bq&HD(kyjY5zam6#ryBMWWY1f+!CIj#~B>q6K4lmh`pP(6?)d0gvDTQ)y z^Ym)Hp55K|qh4K@mXN>0K;?(nghi&eP&K%XAJat!3U9=A$ynj~-2fB6!6ya&P3SN_ z(1}ZXhU166!tGcv9ScErAG*zx^qm#SWVB&DO~r-aI3bP&9OO1$FTVIn*(K25MR)ag z&L@jrp5mgMCV|-dkLvTUqPG!X1XX!{Yf@8GRcc9!J;qvS1O{a%L$M(tt->=jVxkFpjAA;m2=^zM%!L6!dIB&r<#evku+% zKRo<2zR$boQs&!4hj=9B1YH1Am0hiN^9Z=jD67VZ7; z>xZosaji1*Mo6$F?+38*mUU|D;`Xhi2OeV59A-2fxQJd4PH;^oZ}^2faT_`cC~Sa^6o&LX))v+XtKy0Kqatp?a4lO_7qZ zIy`xSvVfMMXA!kkxChDhcKJ*2JA2}&HL)%e_)+4tk8@EtW4{i;YiVRy+$>H*R ztqOr$Z^HKr(G}Fi7>!o5*~*v!7ac`Su=boZCN&*VrNEDh{|%sB$>=Ga$1FljGR_4S zz}$Bsq!lXg39^40to7QSud?u_!z9WJ_kU>WMPZx_@>6fHK%7=WLF>Vl<4>4Kw%{!jIxEgxFfaFWU33pZA^>Iowv}Bty0K z$c4H32`CX>69C~+@?SM2t7p5gzlg#9g8$-afA->lN_g;lKE4d3M5Yk>$q|M|tyym| zn7{zyYJ{s0kijO4#SCl?(`2j%5DAUQ(~tEvVl2wz8c{8*M@*_2#*ci%zlN7fqLb4? zNBMBD*17J)u6JZMRBCXc>*(+2-B%eq>Owdi;RWb@#z=wkw^$&UQ*Eq3RB4Y&s0C6a zkF|c&Z&7*9-avec5wJP*Gk{Sy@Km zWo)Iur~|04qq4HJX#px2nquR(;Chv#G8$ky%|%!!dry`yfypx!+JNkHY8+}On}jcO zcmyxQ3vJe>+HUtT6IBe1v7XLGS-=t&08yWTCNOd%r3f(#0ZM>PEYZ1DAj3LZXV4pT zp7wVA%+wd21=D+#w2;9Q2atiEsa__CPfJ&~$ zW>Co%sYni_)+l7qM$+2az^1C<+M7rIR!b6zdF zgxnlT$`ytgW9^D2Sc5fyAI5_l%Fq<1*jEIvv-4kOM==Jo#>jd4fS=7)vkez`|IJ0w z5c?ovgDJNASKGr$@|R$18_}1XB;T{Z?_IE?g`+uQ94HQ8Zs2z(J8V7sG&P2;AA{=! z>+#b&@i3a9v=#xxkeJbk8vW~%=J27rKx3_dDwHn!V65K`z-LM-7~@Ceheb#5RGC#^Xj!m zN^fGrAbo*^kDlwe54<^G~)aI2weU|YyPt203;59NXHkVZx|h2XT4nZ-kH*m0F*ib zl)}qk&-r}HYvb%{W+~_iM6qjr9eI2sN79gHi3eWkskn$>U=||*(ooCrXd%L*e7FVF zjuX&)Ei727PWTRLF?1#X$IfoT_nq{7-Q~4;07446Kyoz}VRP8=xVRzuNh zlgt_BPOZo(%Pmv20L9@%R^w^6=K}f{#gq$l5X04h2Gr?kg>F}L@>Udsq-EKyT6B5q;$|aiwBDs624eD0UYf4?&fe0;Yc^K`PD&Kn#Tgr6{{dWnFSE_8K=+ zKURNq@SNQVgn*rDZ`@zHA3%i_sFO3Q6EW=@JJy#i229Kn8FO~7S1PizRa#0@B*^wi zYtr0>7P&bO?LeVX;A3{ulG=*8#(;gOGQT*^thPxxYBOIW(`BnO_1TC@&aSQ><$pG_ zE3XGPb>b$#fdF0Ich<{nh7@&nL4iu8)yom31veSgv@ydD zQOzSDHdthE$PPz!hF7b=edW}Hg|Qf^x2xYj4bawtth7b>a>U`)&8fv{_9SbJ%|)}D z0W>eYN5J}KOBfYQO9tAiOHWUah}cfgK-4-s5(I3-y}-DJ*^6$Wx8%js!C3l(Z!&y8 z(0$<_v;eESl@eiZs@-8)Mg^6l)SjZz0CemATteILY%FCIO15$#3wni|Eal=k(m+2%}| z2IW$YIIO1l9adB1%krqK1cAz4;Fj5=_r^Kag2K*HrxvbD+V&#E6(*lw_FkIB(5~uK zQXPsm6<9U#^}~6so6&l-GHlB_8Suj3=CDK2j0>QUDdaF9of#Z4(0)^Vc)7!a3%+jYQ+IiU5T>8K?EbqOR(S@{&q>lf?;kt>vGvt8i36^nLXay{qXQ#J^f~q zjS?~JR#d>*zuT$AcBz@mtkB&!@WQp+Xacfqzlm z>{=0Gw?XPfM*fVA8|D|t4RX+}p(wH>sUdxDL5t>)ZZ9eWqyz=-`L7V+JGX~HbA_11 zw@&b}@HQbqhL_nfud|C@V;92-Lz~nl+J%6k>f0*7S|hd;Qubz@gy3Pclh1#{VCY6hDxpxNiWGSeuIk~A4@)(UeoLsbE&%r}gu zlTj*2Oaa%`M&WUAor((}0Q()+wA-z>7fO_Xk~$3aGG{Jh09I2+N!g&j6@a9l_Qsk^ zx=gJB?jD7(z%b5N(mbvt6`(&44M`ecBaJ$H8db7WU?@zP7tIQ(m)I?fK%hhMh}a*& z;+w$1GdeBxro9Nnf@{%C5algs6O#q>2@F1PBnF$oPD7woYf<6tcZ4QA2N+6Vc|b(d z#uz)W-vRt6^%2$y7`mP1A7CGW-wu`!!v}!J4amaGnBfPn@qTVE1@8j@ELBocZErO~ zof@G`zriPo0e-{CK_zym=8Q}zgn`lZe1BeJh4!J$Xrk;*d$1auDFfdejESrur zlsrtG6QF@{DlvY?a17CveugMPxP_6KV)M9v|s zHB>7>1i^+uf{P($ZRj#;A^YGAJVvk>50h7b)8{O)v@ukm&^-lBYstX?PWDoxW zD5^?fCGhT}(2?Tf<&6!VeHCw*-3*YD@T2eZ>${}Pp$bGO9|DJ5coJ)9tU<^wK*myB z%$O*9xKgCuV93^_*Yoeg4u_yx_`lkN6;_@L5Sq_1?x&koHgs!3oPL zQxQ6b+LGOSEQO2=rBRs$qNTb`@*SCJ@_a>ZE+syam6el>qCg@GEwYO3uOz&U4xsMh zmU_F*S!}aWI+0lFh_6p>2jkV&=;|=qK)G~L-Qm$96hUjW3Y}67Y!19EI)|nRd=Cy6 zj6eoWx%BlF2ZJFm32n&Ajn>M+-Ycl2syo((np*JACK@AO%?+%aH2+_D`u8LA~ zsm;Cj@cD+%tU$AHfDD1!is$UJyi=RyeX0|0>2XPie{}_GzY=GCb$gj4%n+-m5d|nG zYg9(L=%B%+F{gs_$3BkO*%W)cQdG%U90HTY=C(K}XSq!+5Vtob98Nxs@F4WjXQkgl ziUg-T@Q}q zdzv`{8oyJYs!WBLy-Fp|h>etngPSgA6ecRso(yqNN^3({W3>xvTleif3<$Xh6dm-b zQ10+dWrX#*=_(m^1HDiG!Z(A3KnF`0>}g@x*TeIB?7 zkqw!xSuKivTxM2L4`duw)s#E-fk~?{xD7=Hn$f_#e52s<#|o%qZpM7WpW1`jf#HW1 zYp;mwvEI8{!U`r#WJivI#Z$g?~86q-Jf*=okRyJTN^054Q=E?$4OQOk8?t( ztS3jb+bFl{>VdArqY$1);WNJst@yxS&F2oZff_4{YuHt_2~k)wPJ&oSg%qUj4oL|C z5T8*bt%_?=9zpM*4{e9qJ8Em1+^x`tw&cArzM~NH7&akJ~J^T8)5AsX&C5B?~;ZL5fd5tmxK?%0Ou7RLDB<~>* z4af^HsMJzLPC-F-R-QZxQL9mCbJl^vz3Ogsget-9A~U2Of*P6ABvG+pHj&w5uP?5y zY^(;vyL+-+S3T7?3a?DHNx7E2<#hJSzg>bK&{xDMRX1YtZ7dMcBa(SouD zV*NP6d?3 zyG%-?pmk`jV*SpnC6qxyKaW-}1JCqtVC82Bz@0=}!I9>29SmwZ(*Ueo9yt2NruV>> z0DbXKE`$NWwr)J{-HY9L#r5r7!yDh+^Vy<9c>QOtw>DlBe<{bGKsuM)CP*racf_I> z(dOiou)GX;CW3%_WpZsgCH_{Pn;}bw&}d|7Qe`eB*9ZzBh%5)@@Yc)OIWj4P+*C+y z)HvezrtFvQ%kn574H0>qo~r$od+Qx7FcDnf8Xe4Q&Zx<%h%Sw=rdbqd2{V^5(=t0$ zP?hflOH>2CZ;{p2nAa-nM6aV0jrE?=8dnwSK%T-{>0SzgIlw_7NX)dD+|CkPsmTJ^ z7p_3c1lS`TtzguYDW^zQji{=UlB%}!n)p$BP;6F424tAZ*){Ba5>&}l8eO(dpo&0k zHl*94Kzm3b)F!2~4RTFPa@rn5y^w$K%~7B--j;~3y<8@D<)JjdG4Yjq^)#XLq5Nj@zIw11}0-3Bog%+b#G(@J7Y2d{m(1Aki zkmzUn0EVjueZb)bdrzKFiZYFAMr$09xP9pF;C&sZZK@A;cg_Yd5EdODLE(>oU9~s< zbk#z1u2#4q?pK505;dV}gDuCb0Hnl@M^B+$ zeV#`l32s{-BO0>IQqv7w#bV|Odx_#>ne&ATiv!_$4$vm@`kD=BgoxluI*BAAen znVGQuOv34aOX&2`inEmXu&s(tWw3|BE*&&0TE7RH_0b+f%&*O=6z!)=_10uY0}F#) zfY|3yib19g$&O1^YGCoHfXgW~aWEC~0eyNQ%xCs4i$Cn>k#MWh1#`wV`9rSBe==v4 zsEb0UPxJ^Fbe(<7tmgCw=sCGUT|iT6D8OO-gsFsFuT!WqT%^82|Iaq6Svh|K-B^a977H$drr7PDrBUa+OS_pbQp4 z{?R>qR~r|i-HCBKDVi40$ksf{^Q)|1eg;y1IeqYX&)vZgANqei4u7c(-VN(~*7Vnn z`w$wZ@OX#$OfLO3zX9^!(3lIsH`6M#F1iM!*Tqy=u2jALR_PT}sj&n?qOT>t9=e|j z+qbc1BNzcCt)hbpCr2nE2e}07#D8o86JyVdy}w zp$4X&aoEpPw0J7Z?Um*VjxmCqeokq!n|tu%otW)O>K;Ikmpj<;zNPd(slP^amO@wU zYC&7l{``ZmWU5S6wvU@nzFz$IyU=m)l24}qbkqXl2RRpea-vfyl^Vhfb@!}+zt)jM zIF^(hLbHQ@(UIOkUf|qUXRnKi&PYp>C8NzKx+Mctib^ED+|b_E^a}LN0?~)Fio^5J zBu-EGdf4S1+)cKA1@MgTz3-@GstB!ypv@nR`v27De;~Y*!rf7#ya<6ZQ=JP4TVofb zwukQx1zI;35Ksb2SEb3GkKMLH^9-dCq1~?CRZ&e_&Tj!rfsWR6c2Xv6mas2~vUWzr z?FN1tth$dZ)fm^6hJ6Ai<)HIGMN9p`_S$ZU=mO%kpySHs-K9IAGux|# z@5t8St@}gYz}r0GuZus#>%GB}H$2g+U}FIUJaklpkK!9SK=Dy3p$anQRccD9&bJHF zi}Fng;4;V|V{@)*O$?d=5CO8)Y~l5B2c+f7B7KjNs?k=_r z7?H6K*s1ukj5c|NvRc!iD@7oNDk#7}Q(8S>*6Gyz0p5~=#6PD1@@^~)LpdCFo1i|k zuHZO&A04jSd&E&;sRF;-mli1NNoftOl)9A0?G9?YGs<4r0f~da7H~<4NA{H+2d7}a zq8ocVqk4wlxDxKcejf1~c(nJ1M87I$b7DencBVYtKq;ey;&(p+7Z*K)b~0+)%Kf|F zL$9FL{q7@>-|0f#RC{=g2p~}*tVNBHaqBJb^ODee&8th)j>@$*xlK;n88(oC)My!_Dqh}`bOl%& z8>+CiIqDlKYpE4Bk$5LKCQtm{G3n*9S5~N@S`E#PQ^010kY5Bq$7};ty`A2UG@5N` zVNp5xY8im#6eP72Iw+M*XVaGffZI#sU`qTLUdc&RH0L+MBK1mu3H+ybsYDI&!^-Ny z3=oegtZFMBDG2)kHuji|j$%t415rnnP+^!)!@fX>=z%Ax38@u!8XSy6%4l&Qdj}!2 z+G608CdAfl78m5|ePXs1?X7pW8zEw*70T!sIu=pUumK488bA^Uxw^euy%LE7m>s2I z0mN~0K;G6htW&Zx0LnpW;&Hhwqc{-s}(o&_*aRAR2V+o(nGJt?RaIoGIa zA(vR<1VD!+eL{vdt4z?O5{`+pwtUw3dD}IrhkZm)x43GR(MQvjz)fJ->d& z4*>R60=|YFhE@mwMgtNDug{dYFSdtTb+xogV0V?*6qPl59L_3dg|poTAt{cERqEG4 z`?Arp{uWwxgvVdBE0oH_=gw>TYkVNHfRwzhYm9+&12|bB3n~NJw<)a)RigLrV5c$sn zhYn_49a16$CJuN!vDVYB426!ormm*{pFvb$R3iv$hKrq~pC(y1_CFV;Db2DYh+B`!RtWjzQgCD}r z3Euts+$TWq!QMSk04~Umg;c)lDxpE6g1tss7)n#8cWsw!RT!^ZmBEi0(Jz_APopV4jViU(pL4E9qn67sRB!}MR2_INQdn-B+VU! zd+>n4;x-pK-9?Vtie^`r(G82qXab(b#Iaj$ptm`CQ40Bk1rVyqr_+H%id7^RFz z_(T;8uO@u~aU~(dmGqGC3+NjUhMa;?tWh!vK;zxck~sVd|G}$o09TpM=v@JCp=0sx zFmOv03_F~H!i)-mGqNtNCA&mbsV>p3&D$AMum-j%JqE!BG0+Lx!q9E;&m&4s>kD#> z2G=N;@I7?CvbCkW)Lv|@@$rTDF$OjLt@{cO>nlyz zqAkt7xS)Luf?Uc%n$CfptMP9oyfs`b$3ggvWbz>KqA7#K@~LnvC{hE3Cl7|xY2Z~X z^7kIcBJxWt`UvvxzVvz}(+AMe|vk4WHvPB_Mk=y>?ni`Oxl>xviLn}%&qTl z3Eq3Jxdjr}I8N1sTuO(G!(z&DGy%*nXfNenV2dVAR#5U!F^S z5C3CLFn4Z7I+vUckx)oNawuF-5EKVRwlu&09(C*1_hSS%$2pWXSS}9O0}TQDXgnGZ zgYm+nN&Gh)$j5*4MoH!jVoTVByQ6e_=x=*}XXxGW$J|qM`n|?}W6ybw7>(c@|37j2 zFZ>3q{cqfU>W_Z^@QpuSy(~V|z|Q&)j{cu{`5*o-y?pAfoBv1t-|NH=aY4gch!}dY zWG?KV|D8nsVe)?;Ch!)Wz+x%+c_-F%atR)@B=ew@9@s+w+YAQtu?6@HZeRXiinjOF zyKC@v(0^Eicjo$P?h61x>3-paYh0M4ZzO~{`bPGLIpEqrCG1cC zQzg*rxYP2Ui( zKloNRd+VOn4fkw#1KH<~kMr3>x7SJL55jXt%pc?rH@F$<8v!%aH==)r?##WtM@shn z%*IQspy(k{%j6CFX#^M?r_w1O*w3%m_pQ5w6;hoBxL6$}b7))vzSJ*>a&6|q+5_2N zze~vdFVa_=A@OPl`WRLv?0)6)X%8_TE)}aQwVWNr?MD7X8g1P@sj0xK{PVUzN**6^ zJ4pyj+n2-1{`2;Wpc}0^pf&HNxodP<_MdlN1Oo_r42(48-HC5V-eyOgf-SVLl^Mun zn!)goCIpbk)P)hAhH2R1fc;K+u-OC0UlN+m;14D5$zFew(Azrn=naKumxN&l520FvLCsuVIJ|xY9RW z;yI3A+3LZo!nd-o91j-;_pOt7Uqg2Myc7wtfy*9+a&^1)GF?7xC@^FjqG^tBT!5mP zY-0g*RaXN0V}K>5jL_x)snDN`j9=vhaUlKn4}$pD>9-(m-CX)@-^Kqb{r1$a>9=?8 z$q|G6lr!F^eXHTN5cb4O!boBc7l98C%&6+c{P5J|*w|?G0$mo(S^-8;*Z>KRMiXs@ z01316&GjEqWAK<;Nbn=1y*KLd5ZT_1W#BmcCWV~!h}c#zu8_0I{i}vt3U-(q*{|3K z*g(N^3pTt6gaPanGlC6HL-+#J;W7KNFY_S#5^R2t_pNK>sU9r9g=L3eKUS-x1pJZx z2kH)u;&6qPep9x8MG-sL91o5Q>~vzsiwYIAAp(*~GQqi_Qeby+g$aweJZjkCfGYHV zOi0HwAYEoWDq+g)f3G~#)?Qs(<@7+5^gt>&{G72in6#X`MO8tb#3=N7#Octg97m2h z3xa&{xrvEkVd-o0SHPgDVZSj-#ChzT`D>n=Q2@yj0bCBy_g(mW*Y`cJHibCoYaED$ zd~eN&Kjg)uYsE&vckXM)Ti+QI@^FJB$FJarPerFl_p|U+;YL)t_Jri%}_djQnAfWC4ec#{yOfGkFGjs2`=bU@ad*1hXo;Q{B z7VMGj(!0!VGti{g2g83-hoFUrgWk{yNIb0u7dODZkkF61x4l{IwN={el-Pu$`tS$K z*X#fQkeP&gC3<$0uh(4QOPrAntf%+WJJ+s%5MUTI>URU|^`1}B_pkVh{rW3*)mMNU zI3*P(pT;dk#THpMI)uC5oyKk|CJ+3yJufTEPb$(3xsYn?t51BqNZ#PxL&To>{<~p?iN&=a=77rMv zD$Z8dP`TAu1{%qBdM0qT`|9lj>1^We-E7|OJ?zTJ4_HI3gw_~3^)1@1>h`=-S?@uK zsNc|N;>hQ{-tBdr?Ys8(zJ*{GZPm6YPNekCgHtHqm}kh%d*{cpE*nM zx0A@PfnP%4otPa!`N?h5r&|cl6%q!emN- z;5H}z!PQ`s*61nG(864`DkG_It!6czG!7it>?rgV_zJ6w+9}!E)Y=)%*M&dIhy;Gc zCNR#KyQZ5x(H+Wihv!Q!Jqyl(v)C^>OLJ@I)~x2_=zmruw;LgFfQ*7gVg|t_;UE9M z+`-RYJNlo>N(qX<4ev8~;ni&3`-{5))0q$R5Yhyh)&kFBSFA19l1D6hvBIjf6*)8A z1$KBRkL>v*823wZ4!q*XvzA)1x>D=Up#9E6i#XmDZkm(wnXR;>2m<>B5qq4ZEsj|8awu-S?(~nPU zd-U94%%w=s$d&L=;{rWO2fS)HX@#fEh3TTXs3I5mkYYoc8eb{U%k&1`YdN~dWpC$P z|Hh1WfuG3g^af{%*KieoM_52b;0etDi=nA*`Z8gqLoY%A6);v~b zUgW4r0X0BGTt$WbadZp4CM&3?5?FTa@2(8~H)&*Q`-}WRJ|sbf$~DEB5Gsa%5J3j0GV_}H!tHDs=S9n0F!k_L1 z&RhuB>9l%2e>x$LMc5zA>7Nt1Ez8Lz;p_Y@b!m9_rY<>0YU$VcB{8~BKEXl2r z*GB<4<$#`)-RZH}t*(lr)hBDul<#pkD>}Nn8hy3i24@u|t!2e&(KJcADEU4Tc}^sa z!P=o1FRfiup4^|;4{xQ*;oMvvcsH2MDyH@9m)!FJonM@&*X@Y`E z@TJl+XJgea47$p$uPa^zKDp9ZZYVG5i)(qFZlD_#DYPbX$v=~3_zUnt&@;h~oQm(k6G|&WNf?=5{A6h3SgEEoVs@()c zJF3iMsx+a7l!U^n7O#emi$(!=FIP@e+cj>T1BAP+vaobna6?Mv5<@LI);8yRisOofpR7PE- z%wSPPsl!V&mePz^buz{ny}h7m!~W#0iOs9GuB?s$nUvo95CnZlARsJ~z$fmoR7C5K zF7BF75sJ~}D>oLWrqdNf69HW~y;I>S@|AXFHs|?ePMJ*?1llW23WHJ}pOCz=lq8fF z`x#KNPV2cHqtmkb!cl^7w71hjFpmv))j6#eOYl3rSTOyR`}=P*5h ze&Dej_3r9u*g-rsc0UM%h@|MtwUvsh+}gAjtyAlfSLw^(|L!kuukjFwMgdN@jdtbO zQb>t|R=~gPFYFnP?g{zyH5Q90^P6uaI+~G|FHOtNQ=~&BOi`!XWA=g1UruYSb=G=f zt!V2ILm(&eI18&~5mvy6VXxFvxbrn_(#m8EoJJHrRhyoj5<^~iGU=i0o8&9h%Yd5H z1CM7URF{$}UjBmJjvfHNnM3PVSxwx_eB>B@H(Rt8t^c8(*u#Ln(SgPzLuEb$JMj0C zDooP8Knt8<<`P43!IYRs7XG26Fe{A@0G?h?*H$*U@<7wUx*gSxl}-rQ0T+&Tx0h1D zfZ~O;Ud++#T#vKo>Q{SnUwY$MV?W#URwPq`h#Vp**Z5@Vn(UM)TTDmFi&*A@`Q_f~ z>!@vS+p%llBo?mkY~Hh?PVOkSVWFBzH)%J^?@oGR+Ny_%xk^5L`m=3MJe%UjbD4*0O!Rt$47l(1D?^JP4~%3xcb30S#_ZQ`?2-Fu&(?H@l+e@J`mbe@*w*{jbJs-?eM+*DU0#2fvE^{s2}& z2FY>if6Mv?s@iFGtGDO3q;Jh`fs9u*T5sDR=TN1UZy+|Mt-zLVky%QpFoz1O&1yrM zF;%rXnU}S;sD(uSaMs{b15fUwPOsin5tI~tUZRfWuvd5fwXrt9q=7>cUh_}uam-o$|1KX;DE3iz0_qbtFc#EeE`Jx>9*psoci2)vq{>L-B;3N z@}N!NUBdLN$}_;>WRk(I%5s$WrB1b9;ZqThma4?2v>f3E&0=D(i-ip=cfm!q1Tv$*mKK!d*Jlx@c3@2v7$9boN|v&;C|0u`_iZRNsjwi* zau!vm__N(II}D<~Iuup~ECiaBW7uc{ljJnlz+<(8p+C&#B6y<$cjrNrvWZ{Wzw71t zkD-^ud!t)t<0M*Zsi83U&Zi&0C#lq^Gtp84Pm8Hs|CgjU9&fzUqO)o&Mw`NF;<02% zuHcJCx6w!P{>@5NJ)a}KM2wFPLwid+xZsu8Hw&F6j-e(Txkc}Z8mocfxq}z001i9D=fl(fjYIJ~VSDDtlsxx6SliIS$MvJ@}m#BWMlOSCH7 zwbh9#OiWe01P!x+CJ${Ag5pSc2{*1n;RyY&Fs)~nkd|N zT0^2NNwo$`okB3KVqF_55*vvc`c<5RTwI80pWnk%1s#3EM+!rJn9vnE1SbW)8jQc5 zoP&Bi!%*n6(@Y@T zBvp^9S4MzG!YBnzP&<~9hzuLu(r#5ZpyF>=?cB1DuiK~{dIHr(5Fw04wS3dkq7|Tc zmViH{f}2YV@SF(^KNso<>1g;K0d-`ukkN4Q_&O1HF>UMc@j~8(+SsiUid%H5x5QM% z(m&7@s!h^OP#8jkQXTXcVMw|lmQA`U`@Fj`FV-UdvO_yi(wpmnkQhoztGStp!BFlY zv28Kc%UvpPAQV^(=D`tTq-W1EbT5W(cJg%|gXVpY_z+@)6rzd8sDYOdu1BD`Qb2zd z&~Lei0<*6hy^tf2&J+%9Iz-fd47Yej3X5SrjgH@JMq$WMf8evh&_jVIB^VyHU=dM> zjr*Y@YjmLP0Vsu!$LT^Z{D7PuE{ga!3`_rFd@nj3PCtMH)@6jRpZmuF2GBvAa5)Af zuCRs?b~v#=^oJoRt-UsH&rGRWtB9gh=7|SaD%9|$ zVfqY8PL0j^L(C(260r232{io7w$R~c0!GR2$B$ej3Ow8Zb71M?>5u6VjN^_LI~JnA zYf@Kr|5vZR^VvZ!1oUBq1CYjv+UMDY**$o2=o*ELo`3juod5h)Be#!TcvNl=rq?}K z6luVRCFgIUDz`YjVSRIQg$|P~rM)#f8n-qRuNx{S>^+OvWp~*zZjV}OBaC{z;w_z> zyXv=reax3^pyDbZEfrph+t-#Z5++W$M~L1eH()&llhJDO8(OrTrLFSM;@*97*S*A9 zYQdA`hui|6*-Vf~&)=4^E3K2LyaD#3we~EAyB~f5AM;|~e?wW3@Qj4AGZyxqr%c?? z-q>H+Wd)>>(yEP3@y*EuSe5fPiES#Umg_k~GtNaQJ7Qsn%ar1+se>8)g9V)o|mZ3c1 z?5`bc>*^q7J}Mlx2uH+r@R9laW_RP#ypc!iI`9qz2CQ!YzjfJ#!S#AzuhYxCC|K@Y+JqjQ3P zRsnCIv+O9l^7}7XbhjVE&v5Kem(eP>%j}t6nQO}Shu)9*Mq6eTH-mYX2kj6vA|v~XX}U`{7dmzx>X*4`8AF=c?QIj%^31Qk*0 z6L0Q_Z%e3!5;o#O@ZTB@2CkYYgE)$YU9sd-LDVb!){Z3%r!HA-c7HGX?Wat{t~iXq zCsi2)R6ed&gK z<~(`-D!B$UMuP_G`aED`#hRep(5&!l$fs*wdt&fjmlQrt5XN0rSo6UySiCKBXXaJ| zpH(RM`Vbeqk==kD4}Ree44KK9vBl%nt#JWRTMk#Yt7_njlczu3OZ@KU@^ZVIJN1Lc zxyGijXP3*}_wRn@kMW;ttAGi#kP@v)6Acv$y-i!azBRTr8D3P>DnN2jyS)K3(F8>9 z;rIeIy>)Br&gyM8CuU+h^=NIVW3Jr`3`LO;FKNv0%xfcx!EMOJgGm91oxL?D$i(ZP*~mp1bP#7uF=DZ^+pw(;}!n+CYHy zq2~e7P~{q^-qqI8N|4WDMPxn*c@LO?=0bl54Q}R6{K>od2mawudJh^+}GVc(9~DyvO~c=`1Dl(<_kB6iORIG zg|TUyGoT2BILHADyHnhiu`6{)QKgovjdU}{ZQVRHr^hrZ1@S78(xhEY(J_t7@@#!ELfSl zfUL&|afq&CM4WrP;6-TW+qu&#h>k<@jR%EFi7;7U!eqw8mKMs8`lkh*YLYM&`n-4b zuuXj-gMV)Ro~1xtATHpLbhfp2N7F`GS&qG7>-P2+IffUGu>E;0FF<=YQJ++@kQkL> z<&Nae#Bw<0tk9(gBvfvURd2{!yME=Gj2C3Hbr2z-*#xU+=<_;qJp~o{T`RZcyaDFR zv8EUIzIJTzPaQ0*@~E?$?!X}V+u7%Y&{`cv1qF2C!&S7@s4_hxjfp9I+Ngr-Mn`gL zpd&D!KO5a!_)_V2p^{^rSG0s$LT1TA*& zR^n+x+7+kCX=+e4AOppAy1lBaqqer94z%`{e5WAKLK#uMnej3yZ7HoOt|6smzCLJ2 zx|?|50ZCfW3xB}d=#>Ccsgb&2D}z(QD=wz89c}U z=i40&&@S%N1Gd>h&S!w&2g}+>hNEXl1jk4@$Yz2y;5IpkWdP|L*zMo){;dSj1BNGD zJsmU*C<^1?E~zWg^gG#B8u_XaE~3KXiV8Ur`AD!7cPWhT+MRcUN`ft z+&>x1jJ4E3tbxUs=0g}+Yz>EbU27|A{Ot5==bD-w(3%aikZ)nEIGjAUj#uYY+sW$5G#P>~lw{LJRf&&1pjL)Tqe#?hMcKijwD#SP>p zAyGUE0i+xP2!PQ9)-KtwHDiZ-?|A*NIT5w}5@FS)wbJOY(2pz^?pW3r66os>{eY`0 zkB0ufHDieeGqpw6sIP?7P?g#Tm-~**9c%n6ZKbwCtaeNzi^ovJW7y=tVpBNP8w-u4 z@|CG;;x@~aO086#r;_S&b=i8Tw1t_`idsF^<-q4SbshuS7`$u*?%4G{7V%{hy9xs5 z9yn2(5npS}Wmo*}Q{k62(C4R9DY-LTZNOI%Q4HqF;Qi(gKr3@R^*DAqkT*V7{2X=~ z$Ldz$C_zAlD{I4&JB4a5o##B1kRY%!%M?zTI ztD&rz^+}eDCj#MeVFsWPOQitxK~~?XBW&_~@iWQu(oH6v&cKzXq?Ltm?()ZKJcr3) zH_r`-8v_k(=~64*kxtEI^x8m zV@D{AR>^9i#g6G2Huq@uk|ptCT2cNTB7#*VJ}LZkdblwZdT0U4iL4w{>!?XX1MKKP zNbvvAz+z^V%)Ig@c8#Pbt8F7#JB!leH)Ur_^VM8QHqVn?mDG~aPhX-(+XuRvNmEs` zr-KgC22D#bnKTr*J_OtNSummu5A}t9!RAVAmSeks_54yu62C6o)4UWg7-W&)0&s9- zI;__3kO<)#Rt=?$Kp}`4W|!6%G${3YwYGHRuJfNEls=6u6vuv(@G*kUZkW+L2*R@! z=!L8AH3F~(Cy1G9s^tzCh3Axm@k8v(q4>e85B5YF4>ADAZ`(8D<+OTLjlP-w7d>%m z`&-0SCT@+d-`oS3M$ES4UB$cLS}3=b+sHm6z-A?w@u2l#1tej9OyY8t z29nw;sQRq`oc@Vhy~^$DjNx<{w!cW+zOhQ$k`GA2w&eX;uOWhsskyJZy?J|A=PUL%i7SGB zx9I(++KXKI_Iw0oGId$1MY$`MC#{4_SY9Je?~_(#)sx81bz5I(nG41YO_Zi)k;t{f zR|w}MF*L4q`D=P-af7s;r1gup4)yLBZ0V@$@pV!1>Cm*hqaS}^+5=IMog;1ReFV9J=bfs(i8~L7coiF>XUvNY4;Eoi|_n~zG-$E+mtQR=5?>$w;jSFchEQh+d z7O6$)l>2jhLvp9Nqd-S-Y!~*vc&sRVAOUeeXU+i5`)cbI|mA`rx^P zAw#VJ5G{sd0vjc2y{sf!|Ma32vw3a;kQ{9o`hEHSRlOVAOMHdC&9w!dHI%5rA1Gb; zG`)+K+6#g%eZQsB+V5{@Xl!Zj@b^+k%RpAe*r0A!*30)M4#n5Y+e;f&l}4z#K{p@z zhknOv_4`iHkBQ${t&BQ<)5zVDr@0@jo;!QaT~tjB)ua$6{+JzN=+K!%{n&mib|H#g zB9AsC6=Y;db7VP~vS4~3V4LC0@upRiRUP6D%~EfXH>EPqoy2`ofN4NR#h@}QEl!9l zU19<<1ty2wA@f8bKH;}iSi76HG*vcLHhTK`lLdjzR$Y^-qu8adm)Dk({mG5;CUv8_ zQD2X_quN&OJW;oMh`x)vslwevj?BcP@xMIJpXiap6>r$e@DO`QrJ+)#GRPEB|KD%Q zF7xuPcS|4qQJAGS!gz9+yy~NCUf%pt;dXha`Y;eR9iHv}mug?`I=b8IaR4dnCXuR58Nxv2WotL5jvJ_^ke#j zaIXMqoJ&)TB33$0IC-hr9(>-AxfH&5EO-Np$1|1=Pr_6dOdUEF3cp}_3M<3@2_f)D z^Aw-Kb8}9J>K|T&>@3rUuaY3N0T`9eII>6ZEA?tUa3qjauxafGC$j4nvWI38HXuxP zLP65v;?)mt8*D2_t3o)*?jV8%tCydqbDU<>)dwiWG}ZtVnF`^_rIvWxI=k>lr63wydNRACq*J#I zctE=bU~nTC8KhLFRzy>!y}&N5e`@dY_Y!IW+ildet9sR2w8E9ScduKyATuRDMjt~; z-0HF@pv}BCe+46-yuqI6de#4~>zuV09$#dWwF8F>xqPLI`$f+s^aqT=RX1NdJ%c*J z0aIVd@XdX}rQfroZHI1n;bULpW3?k2CG&p#(}gdLNS?itHw6BMxtG=Q>6c~n<7a#Z z7TTt88%IxnPaYShMQ9Cb4lNorsMxf}!x7hmCm3o0K_0EkX?4P4a?rQQdu&>S%Z}I! zo_)1L3!3$`_rmEX)X1wG@m%;;v>>$Nme9M$%F8p~#Jw%yD{U-s~F z^S(ZsL^yD4#5i(v?1SUSJ`Q&wv9H}h0{brTgg+i%N1o3K!>U`01jIkN;Fpm203a7@ zUS(YYx36C64{YoY{ab}3fHxz35l9oP0R-2=S9>II;)1KIJRI&@bX0hdd#KPWzT|VD zl8v7!@IGuMXfJ6E8Zy#9vN6yfaal4+{&kyPj6nkS81$$p9~#GeYq+4n4Ur7qxuy@W zrhe8mfJ{VKkK+w|JM6ANv1I<0i1?>Ugl2cRmx%evI$cwI7|72@TSBVjzAIO$AY9vm~gIy-Adf7If9+gNJ@lTg$YvyiBt>U zH^?kThO>lUQjEa+7nLETnFWJOKKNN%N5E^L!Gw8?5E(jy2thjqA%-Idg4X*?wOB{P-8vtysM28F{`z zX$Aoy8}ZM4`@JoBNsSijc8Us)h=?Fq{))xoK7!m)_0RE8<7y`f~oEpp%yb!02Ww9))V@z2fs5@YC z2soz0=lHkz_l?MWwMtM*geCliyTVJ%nMW6r-C;_DvB#3mgaYx|CAp(Y9OI66!3s5p z>kV2xM6TV&v+?9laj_4HbJi4Yz>UH<0b-BiI&h~qK_%iQ;b!1MfkA=?$BqDx*-|)= zvzx?z@~0i*vx9DqIdUL{S(G_kN8`0I8ghqJOkJ65F~C^Ch#hW}i$oz4D1M9?!b*6! zCb1m-P~euKkmmkjH`?+ol=QhP`;k{NkQV{PTO=nNg`AL)n}lNAT&P%>`%QYa8iy&u z&0`bRNKOR6@(>1siU<`It%s2^F=0%i~z~9c{9M6t!A;<`S5kF-FUJwgE z=`!KKk2`RShF1eyG7E!4icl)~Va}Hke}+$sr?`h#9|Tvxc(_y$0w4sbe1Dvo|FQP6 z2XgF8#W+(vKU3WJEGLA7-wf*lBEZI=PZ@*^-npFg&y;-mkJ*Z+2lV*0r`d8YfB#X&dn>o6cWrKu_sY%C z)r4aL3nIkr%~o~UhGPp4&Fg(?;NhkxZDdXO6vIu4(-y=fZ-~!`QzPdama9Wy?0qNuQhfSjlvZ?9(gew$5o^Hn9GnrVNx3Sf5&z3Ry5X ze9T$0=Y_VMlS@8G{Jf}N(_-2Ub+i`ifcvwW4|-1?CT&f7_B#P{;m`4?A_!`xhRr%2 z%KkoFA}QpF1D{;?%uKB?0Y0)AI)grp46-UyzD+3bnp z;TiFP=7IjU-8CH*+ict52Hgjq!N;`C?6uY#nat5$_Ezu9hx&+{6U@qpCn9*s6QNAa zoWQMEI_Mt>BN22+x}yLN#0`Bbn+cD_i4CBB^Tb6OF^9)HjYl{1F7Q2M(LmTA(s>Wk z%^;%4%ugX)xdJL!^GO!p_V=!USB?#y5M%pEwr*hoC zI9v!*(`m;Y0V8)t@~QB|TS62DkMnniTi6GIfF){@o{u1*%>lXO=Z6AT!fq^5aGYd~ zLcsg6L4;f~iUh6|G<;xSn}pP3fnh9>hJZ6VUpPJ$akjd)eiMRyS9<_?0Bi&=E<<6r z`s&y$_7-6a*cb4}(=r`aEM#MX#4LO;5`Z6aw3LCBDCSG-Ys{SK-pfZgtURX(#YmBD zM9>3lC;09Vw+KuTiX2c`zjy#k!1(nXU(*SxeZ!w&Y0*Et2d5Mb&yxr@#{EtZ#R^kO zVl^A+LU`nhEK2Y6=2<)Dy*Bmla~UaY)%!rPAbqsW*5zS$_JWxs-plT(*a?a1W3&bt z!F_pbg)oWTCQKWOt=jBZfE;x2C~Q=aK+nh`a39UZW|iuZwBN@(H|ODdUJyj38nfIi zql+L>7*`|wa^C|?l*+Cn>K>Sl8(P?n$c@WlbJ)Ys zs22)gBD24I`AmQ0%;8OJJ*IP>Iaj|^Hkh_Et3S2t*&|C2tbaZA16{evTY|v7NehBz z>h$$THtmDkZaV&4m% z)jIX_@>mk7T*$?acB)^Z+lhOxAp+=cOd+1Qed$mm__F7(>>8|4ho=YKwr4SzN>|Rrw-uygql-N`p1Zi=)YMNiFZQs3n zpnqV%Uvc`w-Zx!;q)rQ5e@LgC_4=Cb-0F1iMm+rq1u3br5_xWEQTmZ3`=3C@&v?Y# zAtH#J72$hnqoOsdIjb_wm1vjRH5I5HBt|ZC_EvVZv^0Y;x|36%8f6U`b!p`*(GUys zmmqIZQd;uDMJZ_txuRHJT#~CUBK-NHH1%*vW(i-aaDDd_^U5JWxslZ-Dq`iGzw5Z zzya5%)>TN?U3d#$hwIiiF*Ouo|NoA$44&Mzx;q~SKeIWUt)6)WeL%z!8xUk=5T zrPimE6_+cKAG;t9iwh%w0r~amWoaC7Vp8ZA6~;bI?*_05l8N3G_3OJbNo!tP36hY! zM29+@2QW_z1|HeV7Z5jp5&AZ!P;_`|&|=<#fchY@j7$Sdzo${As56njVF-4gxBWfLGFN?K+C(AI=J^~*rO;pE8H|E8}KNk~2*rNz2 z%!LQuSJu!|*@?x5KMskGPzc3WAt(CSv;Cnbh7%>{_eWSceHF9Wj_Mu9mggy6i%e2X}8 zG5wuz^;-Isn0^o936lSTtDy(rJBa8E?gnYdMDykYc)XE@R3a|jNIoWf8Y#!nhutz3o(11C@UlWXi zjTu10f==Rz_!)ZvwoErnhb9v%c6428%OHpkV8zcHP0;n5Ic}PaS|()NG=ZKejII-* z9EO0Q|7VPwhal9WA;NVLX5ki~J`0pjCBpR5a0b1Sl+u4;czteeF+=aw(hi{dKewtT z{qQJ<^8}eXkHOFRpW$mw7C&_voMzGw94H<#SsXbS8iWyzdf+CDXZ>dxQbl?^VYJ|r!-jr}sh%uEUk0k?evQ{J+`_+rSWo`p`^zFYlfypxH-fAu zhgFT2TwL>WC76|kwhn&8&hJL#oQ8A zhcI}Z*{y8 z@Ec>FpA;}&GyJ$DzdrDE6-&4Ho5F<+)`+MpLw$ev#TE1ySMI%X@5HDp!~gpiS5Fq* z6DhiHf+$3En_;+la9(^y>utR9eA4zIVa&R^?qtM2l)BmdY=b#p0o#nuNPpm~aJ~l2>H}K8Ugfl-p-lyBeS*`@vLT!hM)7=qC-UE7Eh!q2X5SI z?8@v*C8w5D_{A<4Ji1r}2!!1ZT^mO!T-q2m3TPgg_%Hhg8Sfnbo7_JWH(Z>Z=YpjE zPjf2#50V5;9E*mGdSn4{8)qzC6498bP{ppm%7VJ|E*$q%E>~-(uN*QX=;B(3)=4H77Z$4XK;c!`HdT;`Io=XC)Z2?_sa~!| zBjuMD)~HC6PQ10TwY@F3H6=MWBNJV`Ew6P8P*Yp7n$tjY<}lq{eLgZTl8Hbm@mv^q zSq$F9p7a;N)ZN-p(cu7Y18d}RDBk#pY-@7e3mhtwrb;3cQ=q1<#1hHm1!lP0@9zZu z(Fx_yN-S(0=6ao{1SgJ{Y1c+ggsPH8sZc9!7p_G#1CmB=4XKcyIxOz%=xVjvJRS$` zls4qm;%S@+e}LJh@n+Q&^aAzU+KT_6P;PXqS_|qDX#&kmM`UgyyYUVfjP3QkE#%cb z`JM0?wrOr}6K9a;m zRl#qs_w8-$Ip}-UR$&1$l~e%Zr`489qv)#4)yX;evP^X*hP6CTR%Jn%)Su85*T11> zS(ye2fN>!>qs)5q6Q#>$tM1_JBTOK2Taho=nod0c6c-|&V=$2Olg1Gn6UQMI7gsUI zbi6$du|Tf_T^Fq{Tyb2O@(vNa5Ff`TW>el_R~)y1DFAg32X#aF%SMdweDGjjw9!1W zQ`ieaAzw}h6$g+wQ4{bA?QK#XtmFJxpxC@I_! z1#D4`{E=nz=4>LPjF3#7$0E!^c>keGDIqBK-;hzv{qvlVY<86({#>}BTnqNn9q`WG zGtLUR@C+Tk>=`42{wD{0d1KY!Qq%k!TXO-(VAoxG@(Jax?x93;re&{UCY}n<(U3(eokSiEa*k zN;Dn&NBKVVO3|Ic<2q4Xh)(nA_{-`s?7|t`A8TNhVCd z?^oh@Huhf8Z}A=e`*eKv#^C-ezIV6iQJmuz{x@uqVPT@HvA+)6#0d$whigRzC=0)b zYq8J5Cc>72?Ph%Unvgxg{ms}<4tY>?1CIX|$FIldZwPttzmHA03ZKDy)X(+7W=Y0y>vS8hRCt5e5GFb0(aLmo` z1^eUJkG>zfHjeS~=3wKWJC2Q)do8wo*xcBbiA4V>!1fNd5^U?REy1=K+soKevDISJ zV^fGk=T*VFd`fh0u>Q884Jt)<2J7xruw8gv@^<3;yK#O|=x3;}h3GrzGose94Ob2R z?ekzinu+`4eMyOp*W;sn3-jPuq$mp4y<@^;Tm$D1sTYM$C=or4_qX%53H?0S$9|1H zzkj~xeTVOV%ioV}!S`WFI48D?j!(yXzVTzzalYt__BZq2(I%n^k+}BV!Shc=8{Uii zT|Tz)KDnIN1Fku~&BS|N2L3!e%m2pDA1wQ58*1_0M=#!RPrN_#eiqyZ%Y)zfvEcXl zIYu{ry=A&^S{l+`zQH^_v7cdu;=v`ti$nZB?SA}FUHy;G*pZJ zi+17dAf6!7p-sB5NyhiVGVuDY3U1Rwi$ybV-#1*?^Ky=#dvrfJI40=OkNMc36J-SV zRidpp$Mo=dqDRA%M9U+d#(o}tPZCX!m=)YVivBfu?4Fi|piTHD+K3Hr`F}^=yw@Mx P4?nnw?~i?V>)ZbizKTkG diff --git a/fonts/CommonHTML/TeX/otf/MathJax_Math-BoldItalic.otf b/fonts/CommonHTML/TeX/otf/MathJax_Math-BoldItalic.otf deleted file mode 100644 index c0a12ee9c21ac8c3a8aabd07cdcb6f960baf704b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27092 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 Kz4vkcAAbYy2kX56 diff --git a/fonts/CommonHTML/TeX/otf/MathJax_Math-Regular.otf b/fonts/CommonHTML/TeX/otf/MathJax_Math-Regular.otf deleted file mode 100644 index 8f8cec49e9c14849b81be88f19a0599bb21fc12b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26324 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 diff --git a/fonts/CommonHTML/TeX/otf/MathJax_SansSerif-Regular.otf b/fonts/CommonHTML/TeX/otf/MathJax_SansSerif-Regular.otf deleted file mode 100644 index 739502be40b0b3ba3c8828f2023bb059a18a292a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15920 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 I=XbvOKb&BzkpKVy diff --git a/fonts/CommonHTML/TeX/otf/MathJax_Script-Regular.otf b/fonts/CommonHTML/TeX/otf/MathJax_Script-Regular.otf deleted file mode 100644 index 48481f30ce7e282e282d5c509b1e4575fe2a876c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14612 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

vzOAgIu9n+siej&bH%DSyQ2qG^ZS4r)e$)zhn0 zO05ChXJKXP;@gAC11aXsq$Ro7e@2&L3SMWvIGOY1A!aXgA$L9A9gz>3JfsJ#YF{wb zJwEl~@bFkH><&47u=K2LMJ_M+4m+kvn+7yxL(}&1;wo;buteFY7Xzf>`dZ>5)YGs} zau&DYcAF1o9bS6J_KCVvV8aj2u)Y|k#ezt)Mxv2yzC+9}uahao8adzq5=+5&Y>%kA zP|oLvEUeY@VjtK5tJ~tS037%RmE~VWWpcT=3O8USWu(=ys^g+x;}7v?v(sl=yZjx| z{V2NM6K(DB1ZcmvBR1&?^tJ-Fu)zS_=2k7N4+&leZLQn<#O|_^y|uDx+=yj<7ACtA zb~^=z!)+f4&a{trq7M$gapBmdXuBukjN05V0Y1xULu&~rklt#v?$&RvetI2xZu_Hm zSFBfw)O?eKG+NC7Jgq#dE^n@u`6L%>jY@@RWtzC>f!lYAwMN!d#F(3z2YOPioi2AG zkxI1%;uu8(MrD3B^I+Am9zZlxkvfpNJUl+^6))~d&E53M-g9T(n4_k1W-ncSHTN&G zu^Ts(DY+I6sR3i8rwle@uzb4Z# zSifT0@(jONT&=7()Ek8W@{bqPN`&U?uc0KN3s`d!2ER5ISynux@`0SjezAz7A! zoj{0yjCzBk0~i~Og%g30KM)RkX||7mBeYm!kg3E_(VzFQihp

8wb8j*kbh^3G2DS2wkX&t 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 diff --git a/fonts/CommonHTML/TeX/otf/MathJax_Size1-Regular.otf b/fonts/CommonHTML/TeX/otf/MathJax_Size1-Regular.otf deleted file mode 100644 index 3e6380cd1ef646666b17abf43acb40c96ca939e9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8248 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 K@a(r^KmG@$YiC0M diff --git a/fonts/CommonHTML/TeX/otf/MathJax_Size2-Regular.otf b/fonts/CommonHTML/TeX/otf/MathJax_Size2-Regular.otf deleted file mode 100644 index f87d4128c451eef358a5a5b3d8e50662103ecf37..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7604 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 diff --git a/fonts/CommonHTML/TeX/otf/MathJax_Size4-Regular.otf b/fonts/CommonHTML/TeX/otf/MathJax_Size4-Regular.otf deleted file mode 100644 index d6fe72cc4c1b4e330ee6dd7a06970e01232b481e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7364 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 L)5sr0gWLcB(~(-U delta 277 zcmdmUo%zUhX0{`*85kH|Ph>M=krOCanCLJ?CE^Xo7Y2q`Pk`bw?k=uwj3x|hK>iUR zU%@|E-^i^lifiHz8z%;F22P;(7NEF5dQN4Ujrct)1_piu28Po=GEx&$KC|_8GcYjn z0OidxfC8*R?A}1W3y`mpky}#nS7vep3h0))x z{xjs%Vg|XAgMkSo3IsqsEZ_cSP8MLYWoBafGC6?BkyGKn1w$0`YsT}NXECX>FzReR x#P;*bMc&ODc+I zPwry$^NBgRyAo(k3Q*XAfe}ao4gJZ*cO{SOl!vtzOflPxnd)8WY}OpcsDK0_3<2eZfIbxgY%ziiH8{>QAqtl+wV zS=)ti0}F%^xj{r5=%Fc0>lloHkYRHNd$!`_%NkOfc{S76Ss8(zWSZPypdoU`cF}o| NO~-y3`GaVXlK{q)Uq1i< delta 383 zcmdmzxF?Zyj{yV2lZmY6EOwmwCt)zzF0sm}LM3IPWnX1@c{he3gvcl8U0s zle-xGd}2@St^`_>0u**&U<8st%$v|@7te3=m4Tc21yF?H z91Kh#Q6K>7VF~`1I$4FumYIoZ-{ce~M^1(R77S59b(bfvW7^HAvpI|TAF~3Bg6jrm zZ5PH3tPn=z1`+N5?|}x~VOqyv#9*|!gFRbOQimahfti7wfx*z!SkxGZQy_q0GmmCE kJ1;ZXW&sAq|Nj}7Cs!C~h#dd7;XcS6$9@|5gJ_V00fDAuKmY&$ diff --git a/fonts/HTML-CSS/TeX/eot/MathJax_Caligraphic-Regular.eot b/fonts/HTML-CSS/TeX/eot/MathJax_Caligraphic-Regular.eot index 4d0cc8daf5a56dac858b43a66c139c24cb566d19..3bd2636aed234fbf0779510ca1a6f7229447d1a6 100644 GIT binary patch delta 372 zcmdmzuqJ_3$AE#sVc$Yszy{>=0Qn03 z!TLt-JHsL;OEAjtFx_D~&A`C61Sr8Z*@02S>HmKQW}r$Ipa4gDPGy>o=lxF%4D3Li z3Jn>li79MKwu=}T7(phPWdH@(k20(T@?C&@m5khyij>8Zr!o5Z#GKq+2{bnaDD1$% z2qb}q-aT_DHlE++D+4$43!n(Y#jw8)F#7+a{~9cX%%VU(2LlsG6bOL&m_`4*o@~Hm z%goG_Ho1VwQ548$h+-CH7FA$i=#K-M%D}+1YVt9r^^9LOmofiiR$x|e-N3Bv!nlD2 z!id};q776tlW7%$5fCzLp2EIbLGlYj3eZXH3=D>*#-fTqoWiJ+0s@;OG$ymNG6I8v ZY4Q(!4Usdpi_U{AIrh`YA4G#34FIQNUvK~b delta 358 zcmZ3JuqA=j#DIYzU?QtI%W~V)j}slXs6@Qs_{PAXZ^FR9Ami@h>c$Yszy{=t0Qn03 z!TLt7?GXznOEAjtFuq~B%fP_41Sr8X*@02Si9wu!6R45}C?JrYQ<-MBR_qu913M2; zV?#!2V#@cZz6}fvj6gnvSq4ym;{uZ$knaNIt7PPsR3zV?JdM%MC-&6tN}#zZKw$?4 zMj#2qA5(3Y$Mf5KW#DFh0Tf|4`9<|OjQ;=VzXnSovnY_y!N3F(1p=TR7KMKalMR?` znVFapCl@d|iYolKV2A>$yP?3q&>zPPQpU7;@-e3Mj5?dknEx>=uqe20VAghF+`tN9 zL~an#{{I?i*m2FCyY8JH)3(AN+-{%^y5 Okg>;p8u^20kTU^6pj;UM diff --git a/fonts/HTML-CSS/TeX/eot/MathJax_Fraktur-Bold.eot b/fonts/HTML-CSS/TeX/eot/MathJax_Fraktur-Bold.eot index 2f194a137856f263c09764b89ed3ce7aa681b4fb..07e77dcbf8e5749c30e7d3bb64b4321d76886ba6 100644 GIT binary patch delta 448 zcmXv~Pbfoi9RK{j@4Z(bpcCdK8180pMJ@lDBK98paETm;*q_ho|NI+Zw{sI z7XYmufNR)4ID{QIfY3K%_tHAM z+mN{Loq1;@wieDlKA&@%1ST$`S}^1=`eJ}!J-VY@a1sqL_A_pd#uKYg8`W9HFKo%! z(qhm$yxrw}7tCMBgRADAsNWm`9ASNFC7~Mrbzm{gVz0ie>4EIo8jBMw_Cc`cQ&OH$ z?|e<~7b+zl3fxT<`~Rc;YB$PxvRLZ`m8$%>kF25#v+@J;Z*u-`QknbnW;-=W5{1kO z^3|24WRc|tcIJ4Y_@JZA32h1SnNj6#*)6*V(^8vXq?K|qldf&EJ3-=sj-W!#Y&)kX i&8t8|rWm-aPy~M=nK`YcHrID>TiSU2qmGqg>GWR$l77no delta 482 zcmXv}IY>i65PiG*lYH?kJV7L41VK^q#iI}j615R5R6M{Vn4hFb@S`bIgp{TbHKs7V zg{Vy+YM}^%;t>T)Z6qK86$Bek5WkZIXPKFO^WMzP{#>!(H8aRAz!oyJNc-`lNXQnk z486#ofNB9y-fi#f!U~LpCBo+3z6Pc1VB#b6QyvgW_63-Bsh;Q3+`jzXhE2eb18~*t zn9)#zEWr6je1Y3L=eqBxSOerGp#RvTI-H-E%kuyuJ(@jK$jTJ~!gj(IkIz4w+{=p- zej*QgrzRcAjhj_^@09p6pJO(>&PoG4fYGH*&G?m&eF2!HWmvm5t!iUehjS$Mlh_7E zkvwt~-yhF!dq=jQp}^%^^~HbIpY=-VjweYcgQu!w)FWPhhcP1E68|FIr6*;$bPU(? zD#6)9xS!jKg;{UK2#rXXft4{q{ndOYw#^qAtBWa8vt%)tJENl3&Z5T5WjI<`t6TL) zcFPic3kn^?g7V-%Ssk1ZFag%4#-c`YXT}iw8a*-Piu9HRV7d+wK2~cA&wrzd)J|vL KN^dHsKKBQgkcQv@ diff --git a/fonts/HTML-CSS/TeX/eot/MathJax_Fraktur-Regular.eot b/fonts/HTML-CSS/TeX/eot/MathJax_Fraktur-Regular.eot index c4bcbd8c6ace6b9402fec2ee36e3867ce1d99c2e..5512f3bc08af91300b76391abc118787534528a2 100644 GIT binary patch delta 421 zcmXv~JxD@P6h7y^_j*D`4K@T)FK`HqETvi$H2jH{prEX%G@m78DCLlQ)S{HUMki@- zXb^0%+Jcf2N@;7zK`4SIjcAb9c|-@!J?Hz*chCK}`8&+sp^yy$lrzF4-z=5=8RwZv zPS*ke8|MIE^tnA=IDrnrDZ8t9c#H275&I8q)Eq1%ck zH+$;hC$)sm30H~+=M1%;@i${drgiVp1#Qx1p*8|~q%2YHK3RYb8Cwkyo z$>Kmb5742+V|$6rWi9p#T5? delta 411 zcmbPpoN>i*M%ER{3=CH$vYNBRTZX1gbXcMi@rL6E14Ggd1_lNhcNbSTh6xO8K>iFM zU%@|E-^g`uq|IawMj0OF2aN9-7}z%eCHN*AFp5Mlh%;~kRdxUc1k!UV)0Ca<4l*!s z0Qo^G8L5dW-+B6~85kIOfbwP;Kmm?Gro%wK3y`mpky}!6sEPM9kpBXRdvfxV6VEt4 zxB#@^z~niM@~LYW7}zEkD`q;RRus(92gjZBoL>B zTE@ro+k9oPZ;=|M`Cf7CELTKt2Zp6G#*YfO?qU|BINcz+}tJ#5ikm z0+WLXv%-H1hA5!I2MP=f{c+4dRg*VwVd`aM)Y@9xj{tx zzs~<>j8_=1Gp%JX0z!t(6F7DUP1cT<+MF8wjh&YnY^MMNWL0LDk;5}5*Qfv++ko~ka2f$bz}5nU<2~^ z0Qn03!TLsCx(Rg?Kgcp)VLC8bfKkTj|9=K%p!^n~JV$y?W!i;FmBtJV{7V=Z<~wAh zCZ@3cw-aVyVB`VHn`Hn6IGtHTfP5DqUnL{Aq(XVoWB20aoMfjo@PWE3fwYhWsD_&Mcpp%&iUR zU%@|E-^lG{QqIH=vdp)bu1ywTlyPDZXW#_NZvn~+q~}zoJ^H$Voq>UW2?N7?hm6$3 zlpp5(#taOMJV1G~44?p)AG-yR?*injWaO4qDBYTz#~3fq$iQ&0H#H!h-{va=H}eai zEW^n!suyAO)DWcQJQfpZN5L+qZ6)Wj54 zY1>!^21XvByjccNfNd%xkjdx*BvdkTODev#PcCDOw+5Q==(o3bJipCX25#mTKv{;1 zVSk-q^uK5S*;rDT-Z3ySZ~!p`01aY#_g84L0Fx~tbj3JeVW zaX@1kcQLKlyo~8PBjcCN^H>hEaGHR{W&uUBI48zQeql%f`hcB*!O+xLR1t_%7n$x1`Z&G0H7Y`pa1M83ozL-Gchim9Khrt#;ow)f*}g1@RtGu zLw_7I(5jtGt2ZxW`p(Fxvw0rNVHQq1u-Gi1Xcp(hI7uCb6b5Dnb_NDRQ)5wMAWne* qhRq@w?i{?#U<(Bp82|rgV4j>%pdoVn--i1j2ORrp7Z2LlsG6bKj@7?@lB)Jzs(vSnsw>Yg0Jnh6wj;?rF!`Gp|`=mB;H218S0QAHq5 oVbno$Qj#3=Rvj}`)TA4qCw6B0F&-p6aWAK delta 311 zcmeBaVV=^$%qnt-fx%}Yt2v8yV@c&ihZ!mnZ#dZ)7!DdRFfhotySTbB1~Gv60zkfk zf3Uuh>;5RwiGO67PcdDaEW;?{#30VV36uv)GYF*TRHpGr71l8@@SkB|Sj>}=nwau^ zaz9X>kq0PmmH`yttYGs8@?C&@m5khyibH27S24z0Gcqt#mNaU|^V@u7;AVaSGVbIT z)f+JSZ{xoY?A**PKt2Zp6G#*YfO=T^|7lDXVX|drVq7yhgvn7<;lBk#6mtusfC2+U ze;hMV(JrRdn^!SSW?|IXY{&kajnfV&ww`GTP}GS}cj;vR%~G2?flOXzu*m`pjQ{^L aFi*a4P($SSzYX_6_8j|Z1avakLDvCmkW=gc diff --git a/fonts/HTML-CSS/TeX/eot/MathJax_Math-BoldItalic.eot b/fonts/HTML-CSS/TeX/eot/MathJax_Math-BoldItalic.eot index f5c9471f8b5bd0fbac0cf52f8b7e7e46edfcd0cf..5f489a3668947c8902ed7e2ab2f6a64ca41fddd6 100644 GIT binary patch delta 322 zcmcb0mhsYAMz%|73=Dr#C$gEbczt@|Jkep9N=omgL4 zK)!;1u)dK;W`x6JE=E~K?a3O9a!&vMGcW_CcL1e1(sL@)N^0hu=#7(xm%QWI0y z>TH2lF!BK9%`$)j?DrTgfP5DqUnL{Aq=Iwjj5;YG ju$e8cn}d}R=sBjz^U^d#&e$$G53=&uPa}U24RRX*h7?=w delta 330 zcmca~mhskEMz&jN3=Ax36WPpI=H$;0o9M7iCE^Vy2LnUu3kC)T8Fv>~H-^a!Y(V}A zAYZ{hSl`HPL*(+wT#T}eCX+Q7<(wGA890H`JAl#x={c2YZRfYnV_@L8!N3qwkdd00 z@_k$16b1%H9-zEg22g z3@5*+-h|QrU;fu%Im~pGfti7Wfe9oE1VBB^5B?=gR${VcW@2KVoW$fH#;ow)f*}g1 z@P+~dLw_7IP}O0k6`OZ3O=o1(*&M*q%))916g#r{28U>h?E zU%@|E-^g7(eAmPuvdr>Kw#`D{JW#DFh0hDF9 z81~m0M*qM0UyVhY=_~^i0|yX803!nf)7ihqlLeS;nVFe6={c2YuQwOHWnkdA!N3sKkdd00 z^6hV59|Hp;4^ZAL11P|u$#@mWcLDNMGIC2Qo(4@WV~n?EWMD`v{c|{;-{va=H}eai zEW^n!s<&bE|C|5SSfrWGGB7c405Jpr^)TP~7dKge$(EUkanIxcCI>NQh5r@|Q9y;a z6c`x#->~>JG6CBFnk~$1249pDd3=D>*#-heRoB{z1 pn^_XPIe3}D)(J2${{PRwJUJvoL*)3s4fjFTANy(K528V?1OOR(Tpa)a diff --git a/fonts/HTML-CSS/TeX/eot/MathJax_Math-Regular.eot b/fonts/HTML-CSS/TeX/eot/MathJax_Math-Regular.eot index 1a1317251fca1be7b821e430a5976551a366a119..d8f07dd8178e755951c9bb81fad176d82cc1ad0b 100644 GIT binary patch delta 324 zcmca{f$_oxM%I7~28ND_tmZ6d{cwK;{VshA@YW)Wj6l z!?tk@42(QLd9w_l0J|K+N+2JkUL_;9q~c-2sghmT@Q3ip{H-CNnaA*=)yB&BAU16+6IjKTPrqLkiIS>E{FfcIk0OidxfC3zvj8}kskb0Gj+>(k1J0@2###=KoF!UX({1wk{^Ob>{`2|px z;p7+9J23kH&HrjF(oAQ8d=3UCkSGuU^)TP~7dKgi$(EUkanIxsCI>NQh5r@|Q9y;a z6c`x#4UyyjHrxkUbL^*)KZpjo2LSxpShxTH diff --git a/fonts/HTML-CSS/TeX/eot/MathJax_SansSerif-Bold.eot b/fonts/HTML-CSS/TeX/eot/MathJax_SansSerif-Bold.eot index 963cb32e15e09d3dbadfe2125564abe0061d3032..03022bfcfd831abb84c39eabfcacfdf9fa59590f 100644 GIT binary patch delta 331 zcmdn6nsLQyM%ERf3=B6WvYNAO_F;6N=&+zZrT0=214GCj1_lNhcNbSThE)t~K>i#c zU%@|E-^gP@{1XNS#ttAqAvrg(z`gAKL%9jQUK^7#KJjfbu+P1?jo` zTlAMRFtFZWU|>p3Pb@C@|DS;wXx{`2|px;bPcdXBa(+ zNrHvx-Cv=}GEBD2%uMc+W0)MoKmrU=Oz)W9DKIef#{rFCJjJwm^CqUxjErA4FJoEF v!fwpK2o{UrtahHf*+**gTc0WpRz{$!nI@NnYKWY%U34B~$FZMA{xG`$s10FM delta 361 zcmZ3nnsLKwM%E3X3=9t@vYNBZK6x;5qQipvh&P-(3=APh7#J92++AGV7*;W`0r^XS zd*MKAkM%EG;az}ULZZEGHvzzlpPEVoIvxO)?}n6DyMv{?3)ZU z4Cn|3vkagJ+i|AbK)wr*uac2lQt@xa=c}50?$b%H9KfMN3+pK1Fx8Xj>1;>6G`NLcS05wr)IRF3v diff --git a/fonts/HTML-CSS/TeX/eot/MathJax_SansSerif-Italic.eot b/fonts/HTML-CSS/TeX/eot/MathJax_SansSerif-Italic.eot index 61967adf62fea8a747ec3150273179d01df1be39..74fd4d916358a4fb72b7a6096d5878012a0f863d 100644 GIT binary patch delta 327 zcmaDdo$=0eM%Fvt3=Aw2SU-xI>YFH$Nsaim@vI#U}E3^VhCVlU|@RpS7@>dlPxndlj!6WCI>N)07DehJEnIE z3=I8oKw}yAFm2wvi|I2XHqnZh_F zU%@|E-^g`Kr0!%MMp@=ZOot}xFv>VFh%;~k6&wI65J=CdO!L1ZSH{4=*~7qKu_Gfj zG36U`-&6($MjoKNSq4ymJ%I5AknaNIt7PPsRJ=Gkxr;I0nvsE_% z6$}g~zo_1W(f^M9XJav8ddI-TzyZV%0Mx_$^Pk;h6((C|CdTQLQ0mptC`GaVXI{`zmTtWZ< diff --git a/fonts/HTML-CSS/TeX/eot/MathJax_SansSerif-Regular.eot b/fonts/HTML-CSS/TeX/eot/MathJax_SansSerif-Regular.eot index d9b9a4116c687233c418501e1446ee44dfaaa885..9e1a27cd9341c876086e913cbd75d6c328657dcd 100644 GIT binary patch delta 308 zcmbQz#Msls$jal$z+fw(7lq8 znwY}EZkx!!z{mrXH_HGDur@RL1NkmMzDh=JNyYO&llvIs<$-4K>AT*D=ePOFz|H&u zD9dm$>@P?an4ZkTB*DV;?yt~f4JKP=W+uVO8B7jhAOVIbrgu#56c`x#jPid64DDei{Lt3wDGv09RL4w*UYD delta 294 zcmeBaVw}>%$SUHw(7lq8 znwav{zHd4M10xSm-Yf$sz}Cl94dlB3`6?N?B^A$2CigMM%QFJae|_jsJipCX25#mT zKv{;9UsUhI=*c`x5-iL=|JhB}V6tUqVw^rXgULaRS>eA0Llo0HhF=N{4E=G;Ky&vn zZQHz$=`$mv&gM-lt64bhz+w}CqG_B<^(MbIm)fjqv5bS4nSq0Wi9vvY@&A7Y=E)Zv SG(?X7+W@xi*iR#Wn6&^q$W;9R diff --git a/fonts/HTML-CSS/TeX/eot/MathJax_Script-Regular.eot b/fonts/HTML-CSS/TeX/eot/MathJax_Script-Regular.eot index 38470446a9b0af701aa64a626960b50cf2b9b4ff..0fea4171f8cb068487930e141b4e44f726744c8d 100644 GIT binary patch delta 335 zcmeAvYAIr6v1DK{naFC+viZa3NfR9w)Ti`bN@ifNkYHe7ka2f$bz|^nU}In~{{iGH z_y_A7xfg`pWME+I0P+)(a}x_n^Xj%TFfbJW#iEkSN)#B3n7%SFu$2JiInoN!bNRRE zFK1w2J_A&fnx0r(@c%ypGtj&bAo=v1%Cv2r^`1cWM;I8i6f#m1l~dT3*$M#-;{hr# z%K(aS2s3yA`7S`dN=9x;MU3&}CdPPqpdph!f7l$)Z}XLboB0J$mf>R9Uyv#=J&8$z zh3WoZ#mO>Ew#>{-&nCw(IdFjl7^0Z&Gu@xOjA=6Cm(5npTr4a=mmS{h!EUW3`Gp|` y=s0!;218S0QAHq5VbnM3I7v1DMdnaFC+qMvKFbfUw8`iM82{0s~h3JeSkGVU&}ZVdhmY(PGc%b?&N ztZ(GT9r22Rfw2R~Pe{&9EGW&Z+seSeQ~(rq zfr0r9P)%xjVsQb3I0GjGgZT%byg+(RW!i~1+hl?2k1#N3DP*K3DyMwE*XIQ^j0dQ| zECVRQDaWV|USN@ieCpTfYvAmi@h>c)`3zy{=(0Qn03 z!TLt7onh6J7;T*X|7TzZist~uInr|~)3*IOHi3bG{RIPqctu8PVhYP<+e8KiMjoKN zSq4ymZ8F0%Am0VZSINjNsVKWQxsEYj9%zR43C6wg{5D@1xS4^v85k~x{ROE4)06)& zO0X~o{aH6zg2|SdnWXpzzc8c#UBu47U}$PA pstCj>j5;YGuvtVwor9GT=wPPF9vT`VXKWXp2bq8Dr;$I*9srPEOrih) delta 254 zcmewp&=SbnqQSthV70OQ@+0Lo6W$$$ODu& z%K!?n&tnn-@?C&@m5khyiZZdub&T=yj0_C+IW_y^`E9;3a5DpSGccU|qWTan($1Opq8zX!-y z@DJ8E@@x&an8aw~^#4BtGf;dBP@E$@r!wuT-lKR12KEXD2GNd;)Wj6ldA2}4BM(sC zECVROS^a+kknaNIt7PPsRMbtJT*nwM4>Utd`rG<=ew(ih+{`b4vJ4l){(@A2>B)Z> zC0JMker=d6!DP$K%s1gzc8c#oy5+-U}$PA qstCj>j5;YGuz8E@d3IJtpo^I%Pf*nmIb*x%JjjA$KaKoh76Aa5sZK2b delta 256 zcmX@&ea4&Zj4A^IgX%;!GnT!%I~*rE%u$JW!zsYPpz;JLF5~Xv>c$Ykzy{eA0LlkQObKK-bOxqcCHb*f#N=>eomD;>j_8dDe jGXn<$6N3N)I@R8o2`B{MLH7BDa{$hf<>x-ob#umSl2K)!;1 zu)dL(W!Umbj5bdH|1&TH#XW%H9O*fgX}dZ$E@EI{d%?iKZjzCjn8J9@7HAG54^ZAL z11P}8#=r#Ry8!tr8M!4Dwr3~TF~-XS&B$KmRUXf8^Ob>{8K|3q;bPcdR~S9{52FMN z>#AR2lO>pJnVFfkOpai3-~tISM6s@7T{U?TQ#s?8%~H&Bxh20aqyU}7&cI-3YAmV< o#3_tADIl=<0-rlODl{w1RY8*V6tUqVp=^pg2{o4S>eA0Llo;O=53P~F_kmwY?fl4%RPBIpVa1yd~WQ# k%nTe1Obh}HjQ{^LFi(~d(-1lSZ^M0%k;i@-`NNC`08AZ6)c^nh diff --git a/fonts/HTML-CSS/TeX/eot/MathJax_Size4-Regular.eot b/fonts/HTML-CSS/TeX/eot/MathJax_Size4-Regular.eot index cd4552a3e7140e2b621d6e52e268bd458753bd39..c895cb1e700566a537d787f7d5707d3935d2c434 100644 GIT binary patch delta 269 zcmZ4DG{=cmMv;LbU?QtI%lVnlLnk`SQAz2&l)}KEV8Xz_Ami@h>c)`Fzy{=t0Qn03 z!TLr%6T|*YVzhDk|DS;wD8vI4=Sa_~OgsCp)RKXLeGLPHfJR1YVhZCq+hhg?Mv%N& z22gx5J+1$qbQbh6#LkiGI>?V|G_3y%FX@`qUj0B#>l%m4rY delta 255 zcmbQ^w8V*3MUjCaVj`)S hFfcI)FfjiA&%iwSfr5s}@qZicgN!`()5srYGyqgqMO**? diff --git a/fonts/HTML-CSS/TeX/eot/MathJax_Typewriter-Regular.eot b/fonts/HTML-CSS/TeX/eot/MathJax_Typewriter-Regular.eot index 6e38b71d4464dfb33e94e408b30e5bb63d25d045..629544577f79150ae89ee283839f9ea086065405 100644 GIT binary patch delta 431 zcmca{fbq-$MpmB$28Nu8tmZ7We7z3=GUKfMU0j%Ssd&{xVHtVBp9B%JZZZr04Q) z(O=HMze+Fitc^W`@j`W<$G}T1kZUzR<8U_ZR9~r5MmMJV+whlnU zcz_DbGJqn?`Tv2M8C`&Um5khyir2YZ8-aYFg-i@N`N@eduU(r1G^=9r3PyR)5(Wmg zlLh(3CDr`Kvltj+K_)#bC`v7eJ+-?Ms7eQDiUR{9kOVqH&6lq>p5Nvx6F12D3=9{; z{<^~G$pTCgEKJ+}dQH}0vSnswVw#-8v6QhWuqe20 zVAghF+`tN9L~an#{x8G8$he*tmZ7@-L-}j9X8ZQyx|mLV2F=lU|^7OcX4%NSj)f$-N?dA_uQ^j!We z`pX#@SdTC;Fr}s^78fvxGjIaU(*ep0q~}zonICD1XJFuLU|{h1k&&8cnesKMuLfus z4^V+w22g~hn&B*v?*injWaO4qyjse&5y%Hx$i$G7pPcye+O;`A3u`8?V3hZ)U|?W7 zS&&~`Qq6BXi-92)sEhGgK~ZW!-09twKvf`X9T*saBoG_cc8kaJ+k9o>205RB;p7+9 z$1r-b0Fwj@^TB_?lXaMEnVA^xPtIX-;9^$zZ^017w2k5E=50*eOpH3453!W7sIV%y zZeZ4SVcft5VMJ~a(f+T@z{t3sDVeF5!3YQ$Hb-!t_MOZeF16V<{2T`_GXn?E{Q?Y( b|Nk>EPZmhf5IO#D!+ntL$9@|5!(0IXkEn6h diff --git a/fonts/HTML-CSS/TeX/eot/MathJax_WinIE6-Regular.eot b/fonts/HTML-CSS/TeX/eot/MathJax_WinIE6-Regular.eot index 9ca11decbafc0574c67fb5e54aad4695edfb30db..ada072630c19c7764f98e7f951444e55d7a1e3ee 100644 GIT binary patch delta 270 zcmezKobk(ZM%FLI3=Aq0SE10@~+B{D2{Q+^b;gflQO z@&M({GJpbH>_2jWd>0^JB_p?_;&H;{CdPPqMh1psrA=4k`E9;3a5KLE$}*h%qWT<0 zPhyf_VX^VVcXtsI%FL)i-f+ewx(gm1$hO lyvz(73``6H42=K(GcZryQLG_y{NINAAOny6H1dZT3;^j^OJV>3 diff --git a/fonts/HTML-CSS/TeX/otf/MathJax_AMS-Regular.otf b/fonts/HTML-CSS/TeX/otf/MathJax_AMS-Regular.otf index 1f9599f833c2311f866b9a9a086af89d924ca812..88b390027dbda45acd7996c7c24094ddd9f3a22f 100644 GIT binary patch delta 952 zcmZ2*l6k=?=6e5-5Pt@4h6V;^1_Ng|H-&)3AxR7jJP`~GS1R1xLVQztFU2!3JY`{E zV32Wladl%fVgRxqTmbSF{Dbw4Jk!EC7#J88fc%8y+{A)oQCeaQ4D4qZ7+A70QWH}c z&)GHt<@NxvSq4ym#hvvlko^USRWfo*I4k~4S2+hX@WaFoOL=An2F}E&_IQ4quMFJG zFMw(oE{6SefYB2lNU$)!{v$f^k18`W)7Qx=jE)hh&^-tgN)yqkF)OPaOC>sx#nBvcjjL#h%WRm zTv_<3NUmse(Zgcf;;!OHC5uYC%i_wt%ah8B$|skvs|cuARH<1xzw%BsQ*}=D&6=2+ zJGB$)H0yTO+t(j%Slu|a$-n7gb5(P1%kq+f3>l5oY zose8V;nGCoNqZ(sPA-~!Vv78f#3}QpteSkC(A5Q(v}yx$E-f zD*{%;ugF``wqo8Yp4F;roYrn%Z?GY4))B* z2njEc;Z*v`C92FNoS?!byg-$UPlj#QPtNa5d%iO<{#^1)R8)av>IWpnZ~;ex|In?(KDyFx_j3yR^g1vPdpUFQ)aB_o!xu7`)23n;_qq=7n;s=uLA0y zEbZyV3bN$D{MA%wE@5H&t%)%0?dzpsnY=7ft@PaslJ-$+K6fGX9->a8(H7ugzksuPgB@ zcfV)se$U*^^8UR#+Ygn^|IP*pZ4P{(!=enz7Ac@K%D@OB&e$$G52BC#H1Y@0pv(XO DXCr{V delta 873 zcmZ2*ih03F=6e5-5Pt@4h6V;^1_Ng|H-*28q)sw0@I){$T>kFn7UCQ6hT{tZ!;=;U z1_l{-7gsk%BL)@*h6e#azJh$o6@tpX$t?h#^mws{NB z2}brjwnnxdwn>{?`5f6cpA^YvuD_R2o0*ywpWT&nA@_LR-hA%-;QYG<7YnruO9~eh znHD7%?JwpjPAO3-bvRYzCftBI=>s$E@Y zU3akFwL!O0yzydFa?_t?{uarW`>pfZirP+f2z6R?PVfBN9nt-~XGiahzU}=_>nDUv z*gDB>((FlJCVNd@IQj7ug(-$p0;Ysd>7O!n%G@azrd*#YH1)tVr|D|b^`|eL{$Ymg zjGZ%$XU>`Vdsh0aTeDZrSvNOi?$>#<=Q}QlTUfogU}@^owxuhVSuQ)iTyy!Qq zm40%GDsu@hP~j3zn0(qrN)#?P0ZC@_FPGKK%+CxqPhR06!%(z z7*i&{^iUAbn6aXFcJJx#o1L4BzpFJ|XgbrqibFVMvVx}IN7p6ft{nZy}hlwX>vk?0wc%fh6Wu*7U3_}T$^>8d^A|kd2IgP zJGpk%0>;0Swn9bh6#0VOI1VA^G1IR00rm+39 zy#_v+ud ze+YaK`p)xRE<-~)OU2+r6pIuD|c{WS6i(V)Nu07gWl&j0`b delta 511 zcmdm!uqUD3KP1GTft#U$ftkU;+09Ks_4b(%1_sV83=FDE+}uKZBi?X)WneH+U|?X7 zad&ZbV+dzpVPMdY0P+?5gY}KvHYOS}Ffb|r`3cFni3N`i&Gltq;4lD+C1s>0ru;DL zdj^!-1H@(-KmpEsOoxH&FF>r4kz2xCQP?)I$zGn3fx-8IRz*C&%~u9)<`+O&hLc}Z zkHP4P43utI2iaD#2925JQ)%hN*Jmp z%W=s}w&l8ISj=B9a7}QzP>1j-kyWC%#GZ*?mpCcKA)O#oCu=U}A@@x|RWVm7TY0_m zCgn5APnExH_TbLr75T3DTl3@hi0>Tg@4x$eXVrNpBs^jANr|b9E|cRWz0@Z(OzY~e z?B|$D#A6B&r8-Z?%C`ob%ImsJNIwy z_dk?B2z}@IuJR)dD6RM7%=aQu;ke2ADoYsGZN8#n!zJ`bzxzF7_xtznnY&ruzgK7b k9y3`%|EIDJFyvA|p$GIS5FG!v;Xa5y_S488M1#T>02r~V=l}o! diff --git a/fonts/HTML-CSS/TeX/otf/MathJax_Caligraphic-Regular.otf b/fonts/HTML-CSS/TeX/otf/MathJax_Caligraphic-Regular.otf index 8b97a389a21a5aeea0ceda30be8e32287521fd6c..1988f8990708cd98e2a631c79863510a946bde7e 100644 GIT binary patch delta 532 zcmewn`y;mAKP1GTft#U$ftkU;+09KMdeJUl1_sUt3=As9Zf+sIDZQ8C85s2LFfcI4 zxVyNzF@!U)0Qn+7zJhZvsK(VBZ)Wj4vCEGMvDjB&Y%oWLD6PxVinHd<$RFm@J`E9;3a5KLE$}(IG`|ALs zCq9s1VHW-Kdg32dW@e_e$tsMFqChS~6tgI^r~(5+e;m*N1_q{8o2wWnaX88|{7_*0 zp~&<@iTQ^zOYZL+8J5DID_Lb2-to&YFbK#nItt1#D9NY@3NdgpF)%W4Fz_>oF~~9~ zF!(T}GgL7&O!nrIVK&w?nEZlCXYypO$^Lze!i;B`PBW*m1hCq&-eJ4KzMtbbmnqjP z?!7#-co*_*7GM_mBzRuvweSs5RWSo`Zt>TWJW>|YAu`Oe!m`KZ?#n+{xT0jCWUUmU zl&MrPxsY4T|iHO5n$KZ)3|@*fMh@O|+` zq3;LYf9HEAyl1kll!4ft{I2${s^)^ava;^F?#><{Ong%i-rKyb!((RmPk?5B}Ghz12X0INBl&;S4c delta 527 zcmewn`y;mAKP1GTft#U$ftkU;+09KMw@h>g0|Vy+1_l*lH@6Vqh&LSH7#Q^KFfcI4 zxVyNzF@!U)0Qn+7zJh3i_;V$z48u!)pydKGj5dNY3`#O8fN=Wy-!?`ITYJjZl~Ih`et)sFQp+g0`h94ENUxL$MbZi zyC-^dD{^dR<8kF+{jB`xd(Y$mkvhgzlh2E&F<#pIO~i(k|AO1G?`tm#eLwL2JKsCu zJChxy48->2ceQs_H5b&Cm37y3clH1w2T-bA%93r*q{XblcQzlBViy+rW7z$kvHSh| t_srca@87GleUF)ZTlbf;4ls05KtTlbEf5_4x8XjBKK9edA4G$~8UUZaq)-3= diff --git a/fonts/HTML-CSS/TeX/otf/MathJax_Fraktur-Bold.otf b/fonts/HTML-CSS/TeX/otf/MathJax_Fraktur-Bold.otf index d1e654be33cc3e925e6690928fe98770a193125f..c41094476aa78e08fc6d652bf22c29e8b5f746dd 100644 GIT binary patch delta 645 zcmbPmiE+v$#(Mvd5Pt@4h6V;^1_Ng|H--07K>-X5oJ$xOVmG_Fh4`lQUP@qK$oRp) zz#!x9;_AlG%fQ0GkRAc#EBFWN8+p_wcrq|BDggNj$+?LIQ=AJ=Gcd5f0E*4ZNKH&( zn`oN@l-mQuW*I;M4kjiCAo~jtt7PPsa8^7q;5z{{uwr6|r93kO!_}0Vp_7f ziqW6LUyb31I^z!wrXQNjKeSj%eizHI-1u3+D#IwvFT=nfAj5b|P=-NQCN@)uL4b*Y zk%5DOpFxa4mO+IW9Uc>D71bTJG-^-O>CJXL z+1f&K<=rnA-w?X{o#*^_rXPOygzsCu^ZgnLVP3MaC~QA$oRs* zz#!x9;_AlG%fQ0GkRAf$EBFWN8@cUD6k}juQ~>f5l5-OarZ^X#W?*1{0Ti2+k(!wD z{bXMiP;L(pn`Hn6IC+_Cfoza@DjB&YoE48V_)Y)~EScD0DbL8jz<eA0Lln~!hWiQ(4E=G;Kzmi0 zR&TCi^ylyuVECcN_(PrPhX(TxO_q}1#WE~6epax`FpBZZFfa(nFkTguVbGO{O%r0^ zXJTMv;9%fq5Mz*KP+`z!Fk-M|aA0s}@MEZA=wq16uz0crm+$5bt_sHbm3qqhZHBof z{HDvyJ1yo}yt8z)tg%Y4_OZTev){JIF4TUy!)?btCu`?e=Vz|!_ZnWl{U0&MI{8{o%ToaW4=s z?-l#5^<(94Ew;UX%0+>qo8x)>wS~D}I+lOux*>G;JJ0#=Oh5eY3BTWbz+8}#@&4vZ z770A+tFssU+_t88vCwy;y}~QLYyb2Yo%DBgE1R%Kd)IHlruHt5wlX&16`Lbn6@~bA z#!eObF8W>kxA=Ds;R%yF!u8D-^z={uZreMNqkH1ct*o6r6_dKVIer`HunJH3t&zfB zTFELLP~X(p)YaYH)z#VE!O_(Yl-m3@{1=~KQ1^Sr?)UHCGk3GRf3ME=J!bOvw8YJk h=`$FWb%0Ts0*X&ya09{de;e+D=wm;P{6RD*wgH1-<#7N2 diff --git a/fonts/HTML-CSS/TeX/otf/MathJax_Fraktur-Regular.otf b/fonts/HTML-CSS/TeX/otf/MathJax_Fraktur-Regular.otf index 453a6ebb82293926499e03ef00845f01d191dbe1..cc33bd99c2262e84e1b80bcbd4c16b2dcbed9016 100644 GIT binary patch delta 665 zcmXw0ZAepL6h800`}S+@y0W_H%7vPsW)vwY)9D@LY*EWBC8tgph-5ZwQD#Ky^v-m> zT8bLt2b4_`ul|c%L6Rm!CXxBW2nku?42o@jV0Sx!9 zfxAFLs+M6?{nxo=0O>n`ORWrJEHJk%m;lUv0HAfbc?>)N0YHV3=PJYblr&w_#a#fT z;<>4!x~yiAJktdriQ=_~mdY}-a51xr_g?aK!omw;1~u~YAHLLS#453>0%*U& ze?T72hHR3gcgwOiKBiGWQ=qr?arKu#l1Bn?S)(Y692@c|hvErR>d z3!^ZOvt&l{SaK?E5bedggpzwD;}DrysOPMqZc^BPbA&pJ)8)FbjyrwgPPWz2@<>9N zaGRV#9o(Y)-ckCAZ6x3tuN_wSq*GM1?^&Q&>0q7C*lsap!L>PulI^`+qE41=iJ>fZ z$3bTkE3pS$qVQW=@`1YNfyp6-Pc}u3JJiaiIuTXFy~+7SM1ILy@tylh&3F4Jls&hF zlnYPiWuQsCnWvGtnoHSwRwtn*xm;#gKrZAi;h(3qGB&47dNqBuA`-Wn@r+!)co0Tryj*b hMSe9mTCOGHg1MW6c>)Ty`OLu&L7WMs8G;y0`yV0M?>hhh delta 664 zcmX9*Ye-XJ7=FKETBSdCAW=77U<5!a zQkzODi_P=YnH~T-if~=!WyPi5(Dpjgdr2axoDlR`(Im+O_tfQ;)xnm@BVn`TpxI$d z*@*y@imd*kh~vK@gjyyuFuN8@+W*n9xK&JfHu4>RV<{23ht)_EMX5HA!UfScSX2RY zT%^cfELf0*PLP8y4*B9mzCDz0ulUM(^&gktB4Lp_f(4MX=(~c21UBCn339w$#s=Mj zUU&i{SR*sw2I&^ODN+irWdfqo&*uuYp%awkan*gsgwy4jVa^)^LEU_-z2y$g^dtJZ_#SjNvI=DjLR{I*n|sxrndlGihd6 zIL$p0QwwSD@oH9v%!%)I4zvx@%mhx$u8MXifAofYV3wA>tIDS0Aalh?tAzQ1r?M}j zC44xiY}-=vLutp?p6Am;ba=i0L`~$+FUR_t-ja1!j+S*=2O66jZG4l&ZnIzGYiXvl zBdINwPoWv7AkTG$(+g>{-ZD2)W3DhBIq|PT4w-POQA2d7GsZ|24&H-!kHNN__E@g;f_7Nvb19k$j8enE))E&TSf1*Bs0ki)Bo2Brw diff --git a/fonts/HTML-CSS/TeX/otf/MathJax_Main-Bold.otf b/fonts/HTML-CSS/TeX/otf/MathJax_Main-Bold.otf index d01cff3328b9a9ea34add6ae33d5849a7617a31a..5c5129aebc173a27c501afef9df53ad938e44164 100644 GIT binary patch delta 1286 zcmXw3X;4#V6#ZUa@(2(i@(i0Sfq)i~y##o{pe7InVq}peWeE^SB!C$9H3=$PM8N0L zTHC6_NVSO8*NRfa1-BsXOviTWh?b7~WOOJm5Y&br{c+B@=iWQ_-#w4tQ6}F}G?LU* z39toP0E1vbTpT;LuX-E+1_OZO%(%EzvApY{41jaz0RV0yVQd_f2&e#@b+dT3Bqb;` zK0x+801(^aWd)^q(u^f!PNNt2RHhX`2?Cf0Eo%n!T>NW zY#qLIu@11%VTuFzi6~@9ARFo|&6^fRi=o95BTGI|;jqA9JOpvVKT}x5pAKq@#ta*2 zp)?-t1mcX$TQys~u=+%|qdU@1TO-!DZTfA!7)u%Nmvq|6?Roa8_G3&RW+e0AQjtRk zx&obEc89f@_1rPjDb4ALv$u1fOPb3m*DTi;%lEo@xo`GJ^^|%3&X%($z52Z~y(c+! zoTHo{Id?fzoVT1$J~w>}e2tnF!z<-0-}tFkIjmBxn)Yw?f4I79^+Ldoz_7qeL5acK zU?QX}{h}CAf#~E0yN!YIpA$@COv2iHDk(haYI1V& z)0Fe6?OS5g9Mc}AAIeC~q-2gugQa|Ff^<-N{j0CD^x5e-g4{IO4%uwphy3D##)7}( z-xQuGQWt473Ri`b}yG&{Npc*rO*jPER1(8-J303D0*4gJ$sq zE+x=A9Cj5zGla->|8j;wOw!2HB(i!OeTlycuYxA=Ty6#Ql6b@op*r2#L`I?a$z|p} zEHdgAf=+SfDF}L>aN`Zz+Dybxk=cfnr|2|36_*A*#v?@P$m#vsZk@iFo-J!g_OLU5 zXuU!{8_h5{ye3&cPoM^e*UD^F_T8(i>qt)o5Ia on0$!2eqS5H>+C)%XE9{ti;oVVMVeT1?B1f@mSDC~2i?EsJ^%m! delta 1289 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 delta 1450 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 c3Md6I08@eaQX1A~AJ(_%px25p%r4p`4 z_EPrR=UwE(=QGte&o9wGAfP93TF~j>_n|_eAH!yaZ3#OSc5|~nuPH0*rj)b7eoH2^_)~ zHm?e?Ta_Do&Ds0<3n6i_HJFoK9Pwu{b#=wm;P J{6RD*3;{-?o`V1Y delta 492 zcmbPoj&aI4#(Mvd5Pt@4h6V;^1_Ng|HwDK@ynYM}oJSZKqMO~^LVP3MaB?v)r2SxE zV32Wladl&u$iTwDkm>>CEBFWN8@YBy0@X7r0Qm{Yxrqg@yK_ny7}zfW#V%!}CZ>G* z+t&w_+XKXA89)IJO~%VW_7@;l$;d5Xu6V*avB_SZk%58dUe?ukew(ih+{`b4vJ5A` zsNROr6CX&hFyHtWH}Q`uGZW*U$tsKvV$2HvEf}Jh&NAFmU|{HvV+Pu|lWFzlD#knx zZ2^WK?uJ8OH1UG7Jm?GEDOXWf-(&qTGcT3?>V6#jyWp z6k?QPRGD1Cb!oFN_Yy|u8+M26cRQ3ghBzrYD>}b-+2CsBrt7xey~9Jy)59~xOT}xy zcd-w@&otkBza;;_fZo9AL1%(LgbIg#3Y#6aHSAp2-OVPvrmU=IJvRyenw%$ei1E*6 zL*XT6?B5xGGj0)nGWoWr9^<3QTwZRBUnU27&1C$t`L)*;PJRyI3nguH7t41~=$_a! zfn)Q!5KDfc-woaG8N1)Vf6v^_^8UR#+xM8w-;#qFH+!V6WK`Ax22u(rpcsIG$iQ&? R--i1j`q)n+e-I4{MgVWBq$B_U diff --git a/fonts/HTML-CSS/TeX/otf/MathJax_Math-Regular.otf b/fonts/HTML-CSS/TeX/otf/MathJax_Math-Regular.otf index 144cfadb738bc8913ab0d554aaee91ed0915ac1f..e115603f11a1b27e25513e87e05895c57a28d29f 100644 GIT binary patch delta 506 zcmca}mhsM6#(Mvd5Pt@4h6V;^1_Ng|Hw8`eGA#xM&NB=Q(e7?;A-*ZSmy#G5(he{% zFvz&OxVkY+U|?ZjNEHF{75szsjoj5Egc%qZ6@dJN?>9p5Nvx12^*vpe)11 zu)oeQdg22K7N)a*jVJz5WoBk_pRB^@AO_+yL@}LZI;+6I&>sghfpI6(ip^Dwk_lEp26lo?uCrbbM4yg8yqYhB^{qRJ#*gTQtI;G^^;qPyRZ9gPhL+= z&zD{;-WJ|he4>3#{M7x$0)hf#f+hxU4Y?7zJuD%tGORyr-eyzY-z+?vQqBth`R>~* zda(QOWPUf%$#(91ljDVEF#g*7LuiQ^+m@v7jKYs5FZR@9d@}ixryJv^$&y|(89!~_ z?6rk+a;^qD$As>QJrg*DFKjLgvEb)V?|#qN{hqm-<^6kgwjU~+470C{O`8Afp)o delta 496 zcmca}mhsM6#(Mvd5Pt@4h6V;^1_Ng|H-#mf^$H9OoM#vqqTSrwLVP3MaB?#+q#a;j zV32Wladl&uz`(-5kSYS?EBFWN8@YBy_A)RqDggNj$+?LITZ`Hy7#P?e0L4yaq$Z|( z``tGID7OcQ%`$)j9GZ-mfb1_otdfyi!d!7bdt#HlJR<{xzDId?JipCX25#mTKv{;9 zUsUhF=!p*`SeS48i<|gIm6?fg&tw%w2Qg-a{}v2UOlKKxDKIef$1wwK+{v_ha}{Gb zhqeI24|m2N9!x(xnSXe(r2NkNwf<)!s|@2!ei;S^0U4%wf-(%+GErPY3h9-$$CJ-f z%k!02tGA{1Ri7ANQ$G!V@qpmK*q}+l+d^)J?g&c^s|uSOwrH~z?{5~?v!0uTe@(U$ zI>h*A^IxGQX6)Y?e=}|oelmHvryk>@$=5vH7{5%G^_t1}W%G8gEu8!u!WT-~<}Q}+ zp3pt9X9CCOst^l)q2CSN?-{$_zkko%&GP=eI@|Y{%?Fc17&nWgE@f2K0R~hGD6klS W0m;B{{NINAAo|!(BYzML3Q7Q_C#78g diff --git a/fonts/HTML-CSS/TeX/otf/MathJax_SansSerif-Bold.otf b/fonts/HTML-CSS/TeX/otf/MathJax_SansSerif-Bold.otf index 1e4c683ef05a04002a658094fc7cf99a0f0b91cd..f21f4ad9a1df2348e2efefb34805ffcdacb62d30 100644 GIT binary patch delta 764 zcmbQRmT|&b#(Mvd5Pt@4h6V;^1_Ng|H-!X-dB+$SxHK3TylmavLVQztFC{TBgq1Kb zFvz&OxVkZ{U|?Zj2+08Q75szsjXV}40QrmxKz>4UZeoF`!67>a1`Zye*sqM##1s}s z+jyYd9w0W$01B|~VO$Gje*t2ZjNB6Dihs%zo9yM885kCp1ewS4+k9o_v`-8CRQ27S^P2#3<5Gt{em(K+A{7>g%}hjS94i$u41^x z@P^?pBlF}vT+5h^^$aGzVA9##$8E+~pUS$M^(>nu+gkQc4gn5DjuehEj_sUroR_)g za>wzo@to$J%qPe9k^d@8BbXi*++7#2BAn*L$JAz#!V-y5U44Z(~;DW|L4;0nla0eO7v`Ici)${y{5k zC`-}WL?x&4K*B<&ZVs#N@a*(R4nD61Wj_QT2_5(jF~$IB#EZ$5*4m6WfJUfIUTf~V zS;FSIFdN5~vc5#Q&1?Y=82N>|-!pcf5l5-OaL=6tvF)(ld^)UX*NKH)n zTG=-lD7OcQ%`$)jY{!{y0@+`HSS2I3gt_8x^u#86c}4~XbJ2JG@%%Pl8Mv8W0A(3Y zeo?&(qbEL)U}66G&u-!$Rc0o}-IG-q9mJRw{#!6aF}-8>rNF?@AIA)|@f6dx%~gz7 zIdlXVewZ=-FlYKJpS;(3Ww3D#Rc^xthz0 z{W8N#hF^>fllO5goBV=FXY*ukGsgNf);+A}*sR#rv3GF@awu`6a+GuI;Ed^1-{Sx$N3-e{}G54G!QZudM~_O#9U;XXt|h_*b(t6@iP*R62B!=r4pqz zr4Pt>%c{vfky|V8Ab&?8P0?40Q)#1ejPiArAe91@N>yXkTWZPbD(bs63N#mL#nfwk z(>|foq;o}gr(UDpEB!?Vu?9B{CmZ=1vm3XXgqsSP9x)3vt2b*hyJ8+|zR`l!Le(O~ zqQ~NcrG@1wD;+BjtM%6M)^lwlY@XTvv1_(>aZqx!bc%Maac*-y=6u8Xl?$7Tyo;qv zkW1npp62*&h6d%I5wvUrf{)$$IR{A)6KE@ zoV151d*koM@5;gtCd(Sy^IypMd2SWk+V1}D$rCt)A8gJxRN~~<_^t6><-6H;jqirv zwT0(Qo@1rLxMuP}D?Qd2H7+3kzm4?d`&I&Qp5$a(YiX63$^!`tow_-!y2G>6BRTlI z7L@%Ed?a+>JH$8>piws_*H~*az5p7fHhF`&?`CP6=fdpWTgv(pfo|gnc)%!ltNT4; z_xtznnY&ruzgK7b9<%v-U>S?D4lqHbfD#o0Fu^e}9RIiBK8QZ{)5sr0gOVHoZ3+MvDjB&Y%oQ&jCN|m2Gczzu(QB=Y=ePOFz|H&uD9dm$ z?5{J7p7=n5h3Va2p^1M~nVFeHC#x_zh=KSFQB3cc-YGCJ^v3~BVBEvBd2PSF5zs*+$Zsr$2S%#Be zRPVv)i4P=Ln1BAWoA^hSnTc`wWEDmSF=mDT77S5L?-+h5FfjDTF#~Pf!?bO472{_P z9RY?PW{f|~nSNL>|FC5FeeQSPuM21W%228M*>+{6M=gF|)<3>+3fv0oXfi771X zwuwNwJwR-h0Tf_uX7mNJzW}jHMs5jn#k2Jjo9yM885m+dFwKtVxB1Gz&HMr=%WyI5 zuM3Qx_&|b%>D^zUiGNg?nVAG9t1vo_pAD66RQm40)80=1_2qSse&>Lx-tfJLJSI%S8-W!u41^x z@Sc%@k!|v8u4T-|dIp;(a-U_ae=f-@DJ7{P`BWB0M85NmE*&}kYa!zv7BQ;e>on-h(b=SPTIT_i&il>x zc~41*Ju><3AbjEF?>^D*4%gX)ADI1o!X|uS^8qz6Hn~S8FTVSLkno%DM}9<$`gO+@ zrKWNmHDMRN^CxWbUTuxdGP-@deBJLEyWcZ+v%G(=&h|rP^B${EW@S(`q<{jMfe}QU Tv0Zc?L?8QU3=9l1 z?k=uw3@aE|7#M7LfP4l2V0|OkEs;G842%juenN6?Vu7f^Av*>J4hx{zuZ+~hl&|)E z(}8k(fY>YpD8SaoR0(8%0b-Sm+!E%Br_U!g*~>FBFi7Vb+s5SnoFwW+eVPFuDVVWQ)!=Ni;P$$G7KY10G75im| zHw=FnnJ2&HS~mFwlg{Qt+zT1&Ur6#vN=s@=K9MSv`YAn8MpdRs_NbhkoU_~vxjS<2 z#EGEY^su~X{ysykEvc&V^tGZi&o25 z>s5QN&Y|w9o~C|4qh8~oCYPqVW|rn}t>fC|I*vO2I`KLMI*mGWbvEmq(Rs?G^JViB z-cu6d-yMECJQ9BJ@^_!;cZch2!WYbbK4BAnu=$9Z7@OP+y+_}JUVQg?A$;fiksr~b ze%*0Jsi_=CP1uFs{0WghPz_^LMrvXT+cH}r zpd8Rl2D1#H0EaMx2ax>*h*dIjOE@c{p0THK|8hUMnZVpbW3`}{Ht3<5HYa)L4p3Nm`TgcvxP7#JBi82A~)7-Sg~7*!Bl&hPY3xsloP;SP029pcf#3%n}5}mBaRcif>#h3Ly`)tlk?jBw% z{(6B^Lb)PEVwU2IC5}ny$}q~VlmDjZq_kE=S2aUjLQ_<0ovwtgq^^;!r*6dLdt8^< zI3{=YG{|k!@7{*1AcSIEy~)ST?3pu_EXpuDBBqqLhtSbKA&f*BVZ z$Hb1FM!C(~w3OM{I9mF;rpirzV6Y1)+zAw(ywK2yjbjqX%*nS553q4GPw1KGA_?bMh7lth5r@|QB3z4tv2T|T5{M6F#M2b{Gq_~ zLy`H15=-arb22P9e-^XKFx=voVPFuDVU!elr zkjqd!`30xUT7PHpV|~Crhck=2m)DxVLEyAdo=CBnmG}~g<5GGu zOtS0ce<->rtyj@k%~F@ul-Am!E2k^3YoQycn=tt?*JbwZ$(=n7-5i_uaL*BDxo>`I z?&KJGe@5HMYvgA#dQNsz(BalRP~KA6QQFNR?7g{G!HkQ&dtygVBT&muEoC=Hh1zZ!vpNy%@ew205vQyDq)@c+gx(8wuRB;7>k+8 dI>3-i0fipWqd;){--i1j`q)n+e-I4{TL6Ubn5+N* diff --git a/fonts/HTML-CSS/TeX/otf/MathJax_Size1-Regular.otf b/fonts/HTML-CSS/TeX/otf/MathJax_Size1-Regular.otf index 70bbaff1ea8055203983456c656b040bda6db002..b883921a615069c1f032e74689006ddeb21b79b9 100644 GIT binary patch delta 769 zcmYk4Ur1AN6vxl+{;r$bb$5T-bn4A*xGBl<&jKk>^IsFnT-h>=NJYaT{wc}yC5#ZX z#B%+L{vndoLj@IFh+?7-S%yWDMQSM<9{(8KwD&iS6hIWOl)>11ht zAQ%h)2WJ37eudxfTu5~81JHW`Y`ote+}kp;&B1x7p&bqkQ1a#Mvj$_)58&_$oq@M?zbgMR{K?MZ+W3QT+=DSQMBJ!MM@u-2YjLgE ziIx+$mV#V{(DY3PMnh@n)p2emWh*oEELhwE_&hw&pUvpd;W3BiQtnnKOG zwo%)ujcDh!(Zp2Us4k{&<2WvZE93%PE7#ABa!W~DlAaoBcrPC@<`^rC^~R7gM>GZp ztIY8pl4ID9Jmjmu=J?ECQ@Oig#%D;6DVvcx$(U&~ zS|<@x6;*8ZtJZGwc@>N1K}NQcd5eqmTWU7aE=C?8rJJT0x%!edWK?=3&toiQ$+9g= zz0_xIWTdO)z14wM#h7&*G147!J-Jl{O6gK@B4u2K+1^bL4%qLZ2+2#mNOd~(GSy(( z2en<0KB8hey@OG%kz64qComjE!%;lUMx)sp*_~}u$;TW2w|TkUD$j`B!Yo6!JC-ul Y4{K3B2aqbSiznt)zKHn(D%HRG12yUdga7~l delta 778 zcmZ{iUr19?9LIm>p8avV?(S}FIrZvhI+vpTSzwA~{;5e+&T4}8XKE=9NnNJon?ga7 zWaz1f6tag9s+ZtG|CBzP*_qa359jkezdz^qk_(^fM z+v9Nq3q62gN14lI8?3!#0MOYo5ilCQD8VR^oPnAXPW$@9^K`Zh!7!4f?gzLpM6S4Ti| zmkz8R=q<1!fR*Xd)LQ+XWnl3f?Sa6O{p&v+_+n8gPDeitMC_PhE|UyYqOq;z!wGy0 zdBs-rEiRXbP%#RXFriW$DpN$>$iD=oCH!3}Fub1rfftzb1_4q9V~G*6NVm2^y$^X% zJ!%rCwMInd*@@aN2tWi0$c_9=IdcR*=S&O83*zdch$OFwC9k|-mOP@Iv$`ndh_Xk;(XK6=69q^WXJzDc z(#cK5_`})G+Wx~s$R=|WG1^3uT#EEyg^x=G()R-$=4`f zCAYXDMSVfk7Yqh*pCTA^sH9U4b4fXo{}zJhpa_d zpxhoHHp>7Ca902C1G2vWu}Vg631>yE3lqq|9}_z)<(U~6vc%JO$Mf5KW#DFh0aU|q zG3>7kjGp*Ff`v8U*M^CIRGFEXT_>wBI&gvb3{k8BtO1+z7?*J9Sup&tWc*>p^uwC@ zhYicW#=oCr*!Rc)ZAI+Gi@&of`;eX=>2XCE)WfA@RF?)S{yEbrf|v;9!ntSq&OiIHLQ6`8%t cAfKdwT*$x(BF@+@IuD|c{WS6i(IEE&0JG|4P5=M^ delta 337 zcmdmCy~VoTKP1GTft#U$ftkU;+09KM;QeG{1_sVI3=Bdq+}uKZBi?WdFfho@U|?X7 zad&ZbV+dnl0Wz-u`3nBQ`bMrv(YF{F7!`p0gyh`Bf|l)ksSFJ4AAn-FGEx&$zFq5^ z36$Fd#AX>l0j_q29YFRMAXdr9E#a)FsbK;c_+?^;r92}8L*@K6KjZmrzA|t#zW}OX zIQd2OA&j2*K!SxW`uDAge^i;7nC&O4FgkECEBv=$h+++3j@z8axP(JbfZ>M);}1)w zA6CpitXcjw{{1AwzDI^NfK`TZKfeqEgMbW^fS?S6oQ#045QE}m2QEAIzl=hR@{FpJ z+qo`Gj^h5!e1rG-<_MmByp#V*N^aJXTFo^1rpz8?9iS^xKrUebx{`t6_`ePJLG-bo KM*big?Z9d-Tc8=!EH^Ogla5piBJ$)6q;S7C=rZ{h_;4A8pNuHss#m$ zhh9P}VbE)_7d3|p*4$hJ9yAtdQS_o0!ONo16}8DE*^0AG1qbGR^ZmZ}=JJfN5x$*B zCKKR-8Ne_wqN>5bC5Z=UeGbqfs%r9hX6}6&z<&$?ENVoa~Q{9@Jg~ zpdj<-)03&Ib?a^s!1;r*LiR!`gI0&xJh1;@Fw20$!CnBr*$rnWr||U9O#aTHJs9A` zB-$AF3~hi58+OY(ZBzND`7gV8p-|WIRs>`28407qqV3^~P!I~sm(f&9|6ZW`5RGzl zKc>CBTtEG1R2Ck}tU*RGj|||IQQ9X%r|j(WgP-`s&ejyn!6H0?A{i9V;RAgG#Nc{K zNlawb& z?E|a3rI!jDs}*Va>9>za78YnZ5EN}tDJ_-IeOd{0iPC0!GoNjy%xno$Hnx`k#}fU#qt;H=y`RV% c->s0n%#6J%Kz4aMytroTt6D5!D_dmzFaCPjwg3PC delta 552 zcmaE%@am&>rOVwGXk<(FY#5RhSv6O>_)lVR5tVi24x$R)?##W0^?4a26% z7F@BDXK?izDKaQCEMVke3}dWdJkR)<=_GS6b3gM!=8en;m@l&EvbeD%vQ)B6WckDz z&05Ub%{ueQBqszp1fB;lpNn7wMcr#&46?3W!5UVZHA6jNR{ z43ygg#AX>l0d^w>kXc`VSS2I3gt=ns-HA>1^2`hjXLssG#`D{JW#DFh0hDF981~l{ zMo)Yo!NPX!r`E(js?5yHoRd`;9k@VzhA6gcY}YpDF;3wyaAx@7!uZ3L>4zKh4|f)s z9}{JM%gM0k$*^5xm0?oj2f9)~hN)LjhCxn7pi+oIcd`*z2&WvQ7h^nQ4r9^gUM?v{ zW@9~r$uF36CST_M$Xmd3hS!kSkvEFBkhfv;MV<^EHjehL`fB;f4wA10elO^L&)EH* vxtrzvdv&%SDw}Pksu(BllzyQM@)|J6fPfK1oUvVW9z-AeY2**0LEZuY@WO6j delta 374 zcmX?NdBn2bKP1GTft#U$ftkU;+09L1LBca<1_sVM3=D#|+}uKZBi?WdGBC)jU;q;C zF0O72i3}_Z4AMJ*dyz%@tUm3WWUjStpPJU5+ z1fwTDkYHhd_$zGUA5~^1X4c6nj1FAP3jZw_qS&snJldScIEBMNfZ>NT;|~|6AFj+l z+*o9OOqBU8C&Qj6!*-2ThDniMhJisqhN(kPhCxn7pj?PSXR;Aj2)jFD3}Yr^{^ouz zDaOrfxMdl63wh4+8u2>uM)Q{NHgCShlflE@-rZH-UClAsMe?=KpN#JJjNR|wzh~}d ydH-IW?R(5-d#Nf$Muy2dq+crQ03DnHax??bLktYZ|82MrqL2MF@(0l%F987USZ&z= diff --git a/fonts/HTML-CSS/TeX/otf/MathJax_Typewriter-Regular.otf b/fonts/HTML-CSS/TeX/otf/MathJax_Typewriter-Regular.otf index becc64a93fdba1b6b36a4de52a438406fbf9087e..4fcd988c57512ef7b3e26cb44a44f7dcdf28487a 100644 GIT binary patch delta 754 zcmeydhw;ZA#(Mvd5Pt@4h6V;^1_Ng|H-%>|$E_I{xI7pb0)M%=h4`lQUP@tLh>Kxh zV32Wladl%@&A`II5aR;mEBFWN8@X)>Kf=Jkr~u?ABp^uwC@ zhYic0h~Jezw*K^Dm0{e%FT=nfAj7m?P=-NE#+OBiL22@QE<4Wc438Q9GV(KuPJY6* znb}y+VDbwloy~{2qZ#Wbakuf9@v`zhk>O9b0qIdB}vE02*^B;Jt3zccT4_=!ZpPwN=3>Z%0E>V)FjnzsZUY=tYMG$iN+4iel2~iz1sCU3OeWXWc1$Z$Lr5C=rj0aINvDL=z?*miNfT$yta~?T=ZQo zyOz04c5m}o=CRA;oTs>_fv3A?=;qJ7*E#vGIeh2)VRb`j|EKS@_l0*%z9sI$STR{% zLX&aFW>1Mjf-+XWt-ibd7P$018cYeF*!yF(=&V2SHEhBcCaY`tFh1E_q7}o!b=&&> z_tN{JcZ8ozzNM$lcwsV|z5?Tu$?E!vj4w8K>QCSiu>EcOebR5+``_K}3%}~$C_33U zT70s-O&{Z@&F5@-h1o8-eCPTuGC3*WHDk(Tzd#ShC7Y)QK4umLJJI^O(CSM*K)tu; z-uJmAyk_!*P-V6)<C@_XZxYD*({uob+c=X0FyE(K>-sg5HNy> TGq#J)gXm*Fjr>70C@}#5MgR}o delta 736 zcmXw%Ye-XZ7{=fK&Ng+r>+!PHF}J2Q=Wt6X&9nlyxz)^8nwFB87Ix9D&?+N~V8LP2 z`7e!+~Ju}O9$`tb6+&-3uY`{Bn05f?;9%PT6% zArabu085G8uI(EVT>_9e0Nj&ydqr9G_XHKd###WNO070K^nwte*2;Tr`C41n8w7yT3@5})}NUQT3<{?|ZMEhHZQSsR$jA_ORcGtqJhp`9*(4T8Hc#RCrv% zFy|7zXa`R8Cgn@T(vPxz@@xg6NLSE`ab>ZxTUA0XOV%d;O6f{9q^Z&d)ekhynvq!z zv+F1&^&$P`9NnDZjHlWG-PqiHdZ+$(mTumxdBgKh&z~?XG|+}~h91NH><**F_$a5% zq%*zFO~-zzTf{Zy&fan%uYym4xrdCry2^$aH+NKmk{nCu<5ZBW(!gFO-< zJ$NL|itb^(IvaVIGW8QBWsBL^!k8$;*08piB1FD;$n~b2nW}3QlTn;wbfGZgG1dwt zk^EuyV5IUr8O9^IIVg%HW-SWi9CJMyWPIk1Bzb47lP%7Vu=WV~qy1J2UR9HZtwnzH zm3dp_BjZ>}OcG*C@YdDe&}F>F?LdvpS@$TB`tQf>1FGJTi@zQ|A901qofuc@#rqF* ziOD-SSecGm@KEKhf*xN7?W3>LeYEfRsS}-EUn?EI=UCg`4021GC+^Tm+LuB50~g!7 z@#Vmoi~YUf?puM|@nj1=w(bg+RcV-|RdFK5TB{W3O*|NlGjIS84#4w2HzPCpY%;HW IMrY9Z3+NdQ(EtDd diff --git a/fonts/HTML-CSS/TeX/otf/MathJax_WinChrome-Regular.otf b/fonts/HTML-CSS/TeX/otf/MathJax_WinChrome-Regular.otf index 71bd7c02c4119c1ff9ed102f7239e91ec287a7e0..732b2f603d22de34aa352da942cdcade31fb909e 100644 GIT binary patch delta 368 zcmdm?v_q-hKP1GTft#U$ftkU;+09Mi`L@)MGC6AP-M??y2&a99Avx-wD|Q`l>5 z^MG=DfY>YpD8SXn-~wcS0b-Sm+!E#r`NWA$_VUaO40h!_H{$tizA|t#zW~ZITnzi` z3Zo}JkYHhH{#`rqk18`WQ`lq`Mh7kspCO8+nWcGi9^(QI9~Fils*FF>n0}};|IlFR z{wpEFx=x0rnN@~Sj34NH0U1U^pf{9c*!BuB@G&tkGH@{PGl((BGN>?UGZ-;gGB_|e zGvqULFwA6_KRJTSp4nK>VDbwloymu}vYBI9b2b}tyRq{7cfV)se$U*^^8UR#+Ygn= jodQ;qj|v1RgFFNbC?H@25oc@{od?m!ej53MXpmglpkCB zRsrSq0I^vHP=I?TV>OWd1&CELa!Z&i4yM-8dnHU%uI2iaD#2925R2Z}wj2J8# z92jyKS{bG>%$Xd;Wj}ci*L3Ct*8I(8+-|Hwzh`v6XY79e{ylRy%lr50Y~N!hcMDie hJ}eNVtOImo3do&66M^9PzYX_6^s%2t{vaCU3jjYbU`GG| diff --git a/fonts/HTML-CSS/TeX/otf/MathJax_WinIE6-Regular.otf b/fonts/HTML-CSS/TeX/otf/MathJax_WinIE6-Regular.otf index 2bde816a09c00e18a8e26cf53f22a0467dc354ad..e66e752787a56e37660fda7ec08bcde2cbc2d92e 100644 GIT binary patch delta 608 zcmX?boAJnP#(Mvd5Pt@4h6V;^1_Ng|H-%Wy-=7#5I1ex|B-*>Vh4`lQUP@(P$X&s} zz#!x9;_Ak5o`HpdAsfhLQ1B1dHwt477i3^yQ~>f5l5-OadSg>pF)(ld)iBP=NKH&( zw>B09%IyJSvkahsV8l;jAo~jtt7PPsa8^9Jt)UJyP+?++r93kOL;lMdo8tLxzA|t# zzW}OXxES`=4MtCVAi=^t;Y-29KdQ{kO#ddUFgkF6_zY3p6E^2CR&(g?X85s(@yA}K zAN!bp>}Tng`BEUmn)CAns|;HVzYGI|fDHS5K^X=)nJ60}hNYWDxLg=HQ&=XjEMwWi zvTJiZcLEEuv7W)?LN@Wq|CvNLzvkb{#OxLrx_PnCQ6Ao{iHE+wK9sms=)C+ zN{kVcXUHcru9*Bs-dA9I{K@ZkPsZ&KI<(;@P(jb+NCguvpKY1@3(j|Q2+x^3UBOgv zP5j#MWp3RZ(cP(4*##WJF_Z5q=rXR^%&qv7mvwXUbzz0coceO20)4&R_gOo7JNw$Z zo4e~AOt#UNXAGDeqhG+dVDedgeFf#2Dp-KCukEma^V zeY6V)I?2<%Q-$BS`#od#d**JI_wUu&eyD7IoGit@`A^nDCS_3crGTP^fe}QUv0Zc? OL?8QUf5^dbvLVP3MaEdW7jcE zJxo9LGXL1e(k=6)K!!Ev=LuFBws3wK1_l8c_E~~5401A2mO>0mHj8k%FtYcuEN0or zvVC(RcLK}gLN@Wq|CvNLf8gKB#Ox6mzIlbvQ6AnyAzQ!yIFz_m=j&5{OYd;(95PJci4)aR7Y znSH-B_W_*~Z)e9iXYxEdE5@A3H|=DA>~D7AK)e0yJ5?s{OP1LDHd&Z`Gh_AwCS@I9 dNT+~8n*kUT3=GHrZMYAjkNq_A2hpIo002`izSRH# diff --git a/fonts/HTML-CSS/TeX/woff/MathJax_AMS-Regular.woff b/fonts/HTML-CSS/TeX/woff/MathJax_AMS-Regular.woff index 7aff423317a44f153865f4464b5c3cffb34eaadd..5a069e4abec4315698af291e1d77c480c86b0eba 100644 GIT binary patch delta 40259 zcmZTuV{j%+vyGFDZQHhO+qUiG**MwQwry);+qP{d-@gBD)t#zSQ+=v6^J8kdt517C zUVA_Q9tz^(3aY9KKtQ>kKrlf6))65P=zshFUn1h-gg`*RP(VN_0YE^Do{EL4#^U0t zazH?-QUA1Y|AT4tyn%$MnD{@g?4L~V4}`$XKwt_g49x$y(SNe?KNw1xYe1RU837!D zfYSaMg17^be$965vmkcCMcP zxYK_Lwg0n4{Y)jDwlnhl=P#@1pAN)-00vhCvNy6b`^Q!Ni_!XzlF?5e+;enr`4=zu zUmO4s%0ETIpHLuX&#W%rU%n_S&8=iUhdLSa#RBpP3_JjUN=02 zL{{@9H$FQb-8&Xo2DDR~N3=f=0w>$`L;x~6x*n(S@CnTq-Jozqy4u z-MSw?bgu`GUm8W9LY#Y^ro$++ zEDNvYYx$ni0Q7*iNQ_aXQJ7I`{`y}mkWg)r!u*9<6HZIddB=6fZO6V_oB^Fs0Ze}O z&nZS@S+*GFjOY~{2lj2FEXyqGEPzp#g|4Npy{^fo<)$$$yLPmD;l?RPX!O&txk+jL zjOVE5rswc$)Lp?H+JVln0Hy%@_Y`MBMg}+a)BR$l%1F_6inqpj(c)Qoqw+~9y}Tc- zo1eA4wUD)ywU@PA1&5lfnzBiGb@_)fLJ@p%jx1m5yYG2qd2Q)8{gXm@E}(>5`G;jH z>AAa!phPd#U1hzk>6ewtJicUR=CkB_L(`JgnpNh)pLzEZwc>iKIP&79(krP8X`VRt zBzNX3-*tuseQ6((tF0!4`R@ew$s)$HNz36$-I>kF%|2Pv5@wb(uSsEZuEx-{QCp)w zSTrUUn^C#HSe|5A7RDZ#!T@OplUT=C$HWiN59kk&$0o-Pli^fLtmCfjXVwdt3w9-) zvWc<_a*eVsay+tCQmjkb(54tU=83*!&@=Pg|Mj7cpRp9MjW@A4|wt%r6-IPz$b=mIp zVh)$YsmWj7g)f{B`rUI3>0CMv$EVT$1GHbES}0HAx&5?$(2b8s=4Y)l9j-zAPiyZ` zjZaAC3iCK$&ui~jjZbKkIVBw47L8BS<`*vM)iY)-+fTOL7hLbjE{`-Pr>T=mCtMs{ zw#&g0-YireK2GV?tbkV8A2u(laajj)j8s%KjN~LcD(Xr4QTj=SQMsPn;+@Rmmn65^ z?b8?2tx}G}3HFne!(+7M)7DKNgR_(?9q0t?;hje#^0P15`Hyr~u1?I6jpWXO1iido z78Qr%b2(=_t(P;7te+T#3%DV+oWQNY+3-9hVSFUa)39BoCCdHfd`+~jrTZM z_nbspK`f&ffzhAsHPr4#s`o3EM>p9ypY(zkX0;o$itPzizt!^hI+Z6hx$I(&cesT| z99Nsk`D!McjO}LoB&~%<8n=zfjB*b?l^gGp?I+nU_bt&zSCpxFIaZqz{|{O}vBpQV zsd+SZ8I4uiZUD=cVWVr%R0f-miqe{U@a>^Phm!f(a$2#DNs4{6RtMYv5nLX%X67vT zBytCF{g7QAr6%W!c_avoV)#?J-UU0DEY60r*d%VeWBw(wpyl#Zb8_B2x#W{x`NFJm zV^*_0q1&C>{_c80Ug}e8Kl*YW%4_uuSTuVem(BWZu)6J2KGm@(Kd*h&@Zn0+?jWtc zoe~(hDTfp3&KLa6ax3b)?_cF=FV?w-0gTX3tR?8ACHkDKzJ+jk0AMKI)^%dhlWk|{XGg<`j>t(d zTZ=X`oOQ;ps05_3!c0wk$Fr$CiZ`>J6~@6x@wKR4N@S(m8O)r=QAvpwl>M`q`Hql4 zQyZv?>52z-1hI**14HA4n1kV%m7#|eEy6Ji0HNL@p!1Pw`D2J2 zm+Y)K&zRb<)uHSno%x_rBl;q#M!ESoV-mIbGj%(&4xEOVg2c?0oTi+%oW_{UxMIrA zla8B?#Kl{;Nqa?msLDyDa2Bu@Z~`n@ET6b%;|#Dfm^o~`7M|O;GDY;g%(|?f>$ib> zVgoXgCi?7M#-2;JfQ&u20i4hs>}^r)hn79Ofg9KxY<~w&1gdEQxEq{r)7QVZ`FkWq zJh_ z(p$z|OP-l`?gz0^2XX4r9NSi16P~Si_y=G`np(p?(TPznSQI#=gj*TrpY={1cND`P z(FlZ3-m{zwoD-ZIoFkkVR;vop2v{dL7?=d?{DDcAN(aOT#s|m;$_LCv7Bo>b(Xm(> zSOgq3;uS5+fVSzj?Y6$xU?v50WZ?Sb$bBlMhB45>a zk4OfeTOS#TpZgC71N^Rnr!b9-YK`iy_edLow(D%1>#;1Z<3^khhxe}8gx>wcrwvk$=e#v+mX zCevwWXzWSlz9dCqgXt=gU`3YUdu;fFL!j;;Aa|zCNqi|Pm4KJS#Zi6wlE9Vx6X4WA&_i_Ua!N|bj@z!bHcx~ z%k?c0FahW-ur*sB|M9GHTe^tN)&3%|pI?GrlgFErYc;^H z4lYHOSSoVeFDuL4=$(76s6Bq!X8UBHc+cdvhjj^k$IV<;{!aaD??3#TyzkeSwL3K1 zJzsyzwwG`_bHwD_vPt?fHZ#Gn>|e`X_}sBBVWY7KkqnuX=vM8<7oSNI5>HX6Qt@=4)?`-?Gnb=E6oa|4-Wrt+vOqbM5 zJa4V@Rh~HR1b=ybF(7O@-&XYLK->`M@~5#lgW@Vo^4W977?h9H7I~09S9qkw#A;5x zUXN}*&XI6L`7f^8_%*o!0M`4%`i%oeRal_-eR%s|Jp`8AvrdRWNWH;? zU_$0c*mZ%`^$n4AZZK!7T(0M^+ZCU3&x}aZcnoUc*{=u6&=71(4udBB1ppZY6|7NwSF!%iu_gi)W{k{&9v1jP6E zF|sDma&KKu1(2m5$mSn^v34Jwkou=st-t%Y(X>TSmqkv3(6j+dQYAqpOokVrreaGL z!9Zj6LC54JM%fFMXI~cUb!+$nwm;+eQ zvEEJPNFFh$BTU&I2_c%s<62)`$2^7+2Z&n+Z*AJM+w-;O`-nHGnhNOwNDlgo9JPglh@3%tF<`aWqg{j?F>bV;Z1~< zo8AteMRCBb@SUjZ#c#v zhihYQd&8R$8)$iqTZ-5(-s_SQ4heanJ2dtku%jTBq;h@@FnYv{kw}G*-*p|>2F2^T zgj)x1HRwiK%)H$w-5%|X7`Z--d}ZEh;>wZPKK$hmMY}<3+ zIuL!X5GVrJmlb0BkW?L)3yyZ=v#~}yKT?CYfMplmSqNOw&$nhpgflFNW>=<1P9*{Z z@d8T>U{$anOgt(tmWh9HY?l&7FzsJPyQ4Ho2idTG2+tj~&8-g+QYt|BxSsN8!S_*p zhg+^pEhJe6-EpB9e}NL44(yn0iH8jjelInEN+M+mQQ=2|Eft)YJ{WW{l?)f9 z(lUV=B&q=Pd6K!js)R*V-RLXKv3ZFsLqZ}q|Zn>eLN zxHuszdu^Q}4Dw6}gw=gz)8SPb8*}kx<6wQzs`>KMIe6NMh>RsQJWJ`6010iFyo<`E zix{}76P$5yCXypBv5DO(-YQH~kfZ{v)d)34aQg$HADZgddlxZ?b5Ho2g2WVUbyc_& zFx6pH=@t;CdM_x!0>Ty$c#D@nDik++4nF{XY6Mv|6>|-;M!hD2nFpl`sYg^B>`4j{ zK?;%`kO&4{TPUx+=2GUwnjIz zFHW?B^M&bOh;tO>MkgA z_&BH+6`nsZl04v!)$tFBu%;@+`e$EZ#uQ-rLkQ!@=ci7NiUT6pi(t7?ppfBNYFf+1MvL->qEfLsPF+`%vUmar1$ZLi@POAIpPgz)t=5=72 z#2t+LU_V1Nyv##_hc*2n3?a5ZyowAYg=$iWJbP1y zGPl;L*LS`Z`;dPsfn&Kg+3{s}@jC2A4kNH&;E2 zv-*v%x3xL1pmE$Na>>&OExja^v$V5}it48bk_CXOaJ}_YU|if%AmX>M)SmKR1JMv+ zx)^J^6u3tsy0g@rd+v%ZjDxx6c(9$7O&vf^een8yWWRCMiJ$g32lE!z+Zv~l4uhcy zFCtrxqw;gfzC&q*Bg%N;CO;egGq1uj===UVsCK4aNuHY`&c5qJX!## ze=b2gzxHQN$$O|I7-)xhmEyaG?;jv>153AO3({|oe<#L+-2$e2LzNshAet4ofJ~}w z#Q*q1CUb(ytE4o>a5%=C$TAv&sES$!xenBXISr-ENDRq67tvE*@PO&$;xfsLAfNNl zkde+n2;405`3Jb1Y6sgzU;sw|>kTk_*(?AQ&$xgbEryLPDGnkh)E~F!iXp^?C8v-t z`R(iJa)XwOC-3^$J(ufLRX>n6BdpM`D;rDW(3>7VH7pID;gpB6z91I#+W^o=IhG@ zIGiyT)ys{A+`f8(`4$w!42n>5*uUx4m|Y}^fP~<9`B(iG3(=tESp!_nzJdh*;P*ju z0sEwFoWKo43R1)aHP6{uV+6^2u258Pox*vF>4SPKssJU*lON1Hx^mA7dvfH3SHnqj z1j1_02%SagKn3}(4ykjK`pYX-o`FTv8Ij{oHg>#R&a$dVhtr( z@AFEc@$QyAi4q;#IRb`ki+Vs*!NDI8We@OtiyJ$}r|#SxJ*CnYbhyZ!WS!OX@?~ z*+p3of8i;I&D8&(w@Wt+-#@2jH~+-Pe!RyEKYk!UbxIv}^I5#y+?;Qg!U{!cATESs zE4604W%t;wLIH5TaKLR`olU29kp&PiBRoa1EpA&5V*P<0*+H%Xo(*jt*N*f1M3jnq z^e6NoGC|`yHybM6^%F29O4C1No@*m5MsgKX`kC9>4VUkS$coW@j6xO$h>~6fD+3U# zVL`qF7V1sLdBX9h9MSpjVYOzs-*Kmkx1jRY#n#EvK>*^0lX84;@aYRKd0StPy37MN z#S8EJXJ0!Lx4CnO5*)^GPST0>!9$wJx1Lty`Gqqj1Y)aEkRQd%iW&okE;2G*y)|04 zV#^=0dt=FZWJ-~`h{S8q^GRNo9t(1=U)U@f;OG9VP2TyWW7@;t27iDS4GSU{RU3QP zW3?zz9{?daded$x2~+YZE5vkT`RU}ODP^!oSdqABBEUlikQn*xk~!kj-A4AV(z+sQ zHcmx|%Y7yx3RRRX?e2?h0k5*!^XQ0~+|~*MUYytK25Ul__1-b@T}-Y0#Bf=?x#o{> z1}h&7=2wD^`gh4%7-Ul&l8&OK*5+HCZ=!wi)BxmzL1=PiYzA98uI^9cJsV4RNRgm9 z{bH_ydK!82_|<#Ehk|A9M#7LX( zlA%IR#n;49Gu>Lyb7%rRYGs~NyeWpH2%ss@OM-xJ%jQ+*hQRwQVOzkXl-+{tC?@ed~D$iTVm)L^$6}4AH&4(%QEz}6iP37Q&cuC~!UjEEX z2wvb-q$RNb2B_D^3no?0)P{B+ykCu2P>k#3#_3SJ(XhHs@Wdg@SDD-;eP+) zgYc}}Q(CTZJ=1n=T98c7GNA8nV75|XAh6D3)jN)>zj1>52=2FjJj|kSB>;&m$v-BM zQ|)i%?`s4U0h{2iFX%_q2+EaIbzief8Vch$wgun1GL;Z@M{yNHJso4;4iKr6dW)AP zBA_xGkfPCKeDI#FZ>V#06U!&T@v|LY6MO6+BQPVFh^SRDY!=KZ{K3g1=;*To*ln?1%4dTC z#E}PK^HC2ieQ?wHHh|-^5z|@eJ41k|zBnk21dfV#;pD2db@d>ohOR-aCW%%N7=8^) zJjC)|He)i-H2K-gklvP&N2@c)En!@m(+Pr4T3I1Y$WCO(#XmW?D_G$W?-QFU-O`uO#r~@=9#bVtZC=$06TG&cTK63$X@?JOv0NHC*W4IFoNfVZ8qHtCy+Z*U(`I{B@xYUpHUmdB*) zdX^*DU`i~V(DGBNGmO!hgDYO-c9b%TI zW*dGuB2890YV7-4c#UX{RA&&Kq}c8m-#xrGsI|E$X?md!Qwz8s^sSOAUfKJNuJI7nCF0a6&V5>9Y3_j^02!g1NUtCU)MJww7q zLO*#+IH4CsiDnTj_^%fCGdOpmB8y)Q(YPovQn?U{aJ4$AI5S0^WibaxyBLkDx8^oc zJqUCsJYapZPkNN(Jd@6x5|Z6Cf{wF1V@D}9E+zR0r|M#<@)U?AnZM!OrB%2Bhf316Z8n~s<+we568&!y{2E^%f)lDY4_5Ts-csS2qcSPY2j!Lm-G@pT0-S-v^`8{e z*nr|r@@jR57Wzk3FDI|(!WNQ=Q$3yXfC~!6T7YB}@rsNRtfF&vigW`r1@aRRHuWGqpn4T}VQ@m0P0`F9Ye`Id( z(g7&-&|RUh89~s(oU*N?->BDw&U}FudDFF69qL{4ZXHl`LsvpY6g7^~SzPxk$Sjx8 z_8Rxt=x`OO1ZuUFGvyl~yn8NIJr#`9{4n2;PyJ8*HOzdXnD+goU^)(!vyKi6J6fOx@x#c&bgp3LloQ?qTg$w`f; z5BVZ^0TC(8m7X7{2*r^$la%vkPa=Y@YHy^{klt>~ebMYyeJrs0ZnH3gaK9d=2!Q-F z1m9J$_44oEUB!kOJI+$`Icfyx%l!|(uujPL&dvf-bZdBVBp0zM9%01AbFphvG9o<9 zDIQNcS7eDeHD;FY4jyAFEYPKG>Xr&NsM}Jy_U;^N76x3pBg9| zSfimsI0>uAYnXXi_z@hxt1Y*mET6Bn`e2DFRF^HaLU+1lyPf#H~h`vxj>2F?>0t{U9dvk?$Eub1GpcHjX{&EcZntogs(I;*k{Q8nkICdmwqk zCx=`7wcgDgQ!sD!<=||jsObU4DcFP{4)MH6p3ZWvzem)|hQvm~;_S3nIqDpV^V#hCb~P?I2^+wa1}F`jch%U_sY3y2fAq?Q_Th*6Bh z)9kkxAi3o@$PgC6F(Bkl(Nngq4M@Y4Z6dm9xGa8H_dL0%oyaZUivUo|V?FYBsIJ;% zGcY2=zhL!=HABTRqmGJuk||X!kSPouy=k^ins2`Z*$;ylL+J}=7+q2I?uff#;{}aH z@CT{qisVD2;&=xF-yl7=xN_hIxzc~NgV=+gH?2EYI@>z#+PVO~_I7InU;{d2{X&%* z7uW4#^G`RC$>-A|-~k3k?sf1K7w()wGP59GRs^0t3+g1D(IVu?C7V5w%mVINR zNbdv@t#c|tz?=|8B=DbUuTX3bAs|F0jDJ)K;?0m_S$5s%feGeylltAdU6pRo1a4@r zeR^7pl4I6#?>%dQ~DjzW3N&6 zavqYvKkkGR@sy1AvMO<+i;|MWw`Ld4|wX2Rxh{hw!` z1|-+Es2ShW+4ND;`v*-#W+sNmSYRT;Uy{FfFi0?+EuqT5qIFRHDLBoL5MByv?0JA4oEbtZ2@EgE_S2AQAqh^wmXHj_7@a) zn8RXRv_RVa)GoGj`D%ZWt`L_`7)47x=B=__x8eeNo=X=+x00Jh&{e2V-)z8A|Na@{ zB8WT|=pWY^}Dn^fuIrK4&A}>H|9y2_koOHC6s}&-x1JlumYthRo zoj~K?s`VA#sx+Z8%y@URmF@iAxbQ&^8eh82@CMMKmZg#uu&iIt6vKenFTc=y`X0fe z@SZ;0=`WuhYP^juyZtFAy5%Qt&AtU@^&I;g#52zU7^kEV*?P{MP<)eH+C&C1xUljS zPUGk8Y#6W$u3VN@LZ0%0YFy&vDRfD#_}w=GXYj`%0ce~KZkZpZjt){Lb34qP`fxvJ zrvdwwq1mPu+=oVKtJ{tzcfT+QzORA+6Zzt#n1Uy>1TV8}`Q2rYU#1@1m(NR1Q
uq9P>uKg(Bg*P?7mpDUrB&WZ_O8u7~q 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 AnE(I) delta 18515 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 B7_k5V diff --git a/fonts/HTML-CSS/TeX/woff/MathJax_Math-Regular.woff b/fonts/HTML-CSS/TeX/woff/MathJax_Math-Regular.woff index b7d94b0ce27fdce54d3b05935798d8fab286c2b3..29cccfbd266427f5dfd07bc116886a9ee8307d6b 100644 GIT binary patch delta 18462 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 E00OuFCIA2c delta 18511 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�jcJDTSq-rj*3_0p?ES+^Eqc9i-usHX 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 KjRfdlkpBbUv^Sdo delta 15055 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 delta 13779 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 diff --git a/fonts/HTML-CSS/TeX/woff/MathJax_SansSerif-Regular.woff b/fonts/HTML-CSS/TeX/woff/MathJax_SansSerif-Regular.woff index bd8891a3aee1f2618c6013c773022ee692e03042..94f8853491fc496521a6bd604769889cd12d9dc9 100644 GIT binary patch delta 11512 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 Ab^rhX delta 11457 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 diff --git a/fonts/HTML-CSS/TeX/woff/MathJax_Script-Regular.woff b/fonts/HTML-CSS/TeX/woff/MathJax_Script-Regular.woff index e26e10bf71f8ad7b3abe4c1c2e30f944ce8322da..9d65c417a57b079795d1e6ff6b42e6779235ab84 100644 GIT binary patch delta 11126 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 X`Y&yu;I~m^No39Us#$TUCeZ%?dtyj{ delta 11119 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 X;Js?&zkB}^^Jix*2sCv2ee?eSnrDaV diff --git a/fonts/HTML-CSS/TeX/woff/MathJax_Size1-Regular.woff b/fonts/HTML-CSS/TeX/woff/MathJax_Size1-Regular.woff index 91132d2bdb569ede84ba3e102c01703a1c448736..eefec1cc4c6f5fcd292a025dc9bd644f19e26ffa 100644 GIT binary patch delta 4788 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 diff --git a/fonts/HTML-CSS/TeX/woff/MathJax_Size2-Regular.woff b/fonts/HTML-CSS/TeX/woff/MathJax_Size2-Regular.woff index dabf0249d6051526b39455b40f6075eaae105fc1..427c7130e23443253643fdc56a49c17265c671a9 100644 GIT binary patch delta 4475 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 delta 4448 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 delta 2354 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 TK-BdFxh6S&q8CtybO8SYZko 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 diff --git a/fonts/HTML-CSS/TeX/woff/MathJax_Typewriter-Regular.woff b/fonts/HTML-CSS/TeX/woff/MathJax_Typewriter-Regular.woff index b0604897823a60b2a14d39f7fee649b8dd95757e..737e5e7542ce53c809abc4c32e0cb83b500397b0 100644 GIT binary patch delta 16673 zcmZU4V{jl%xOHr8ys>TDwzJvTwmBQy$tD|aY}>YN+qUk$-&gn7?W!|f&zaND%+yTR zOi!O44hNkN2L;>}B_tHp)D%HL#O6WZLH-pz4-oMG>i=6rB_xPIKtN$YKm`6NlwS|U zhIl0;)Z{@x1QGtJ@&1EJ^sI@bn7G70j_O~G{|`hUWgrlWs*EiEIH`ZJ>OUAr)NA$| z+ZqB6|HzDgNumE?^@w@-%fi&q1O!AV|DTBUA2=Xr_=PO~k^i{me=*TNkb&EO^;+1v zc>Lp@|HY60+CHBW!ByEBdi={LeEpAu`hW0K0>XRMpon8K2 za5o4DH3-^2A<x9o%e@qhtoTk~>+apMK&16`vBUf&bBp_FU89VlRjNRv?Cah{ z!*g;^OZ^XgS!5lptn*l%ti5(zM$ z#_b zZ06&VZdrGI+IKC`3OQ#Nhb*gGR7;}tQ`&6yp4B~Qd9faPf6Iy=>mW^e10)!bV{{1o z*vkGAS!=lYc`o*5oZptWXhD`OnbD7AX1~c@wg!}o516*RhzH*}I~}DQOwtbPr4;zs z+>*LS>s&Gn)Avj62@?F__g)-6h>ssTZ?n(7cTje8wY+T2xP|4cY_aUs{dZz57nRcP z3TaHVZFKIsJ3;1)`({{`z(}WSZ$>YB)0cV8*K1}`gbaM`t@^WM1x}HSif;aFaeb+Y zdd#VjdW2Q`se7rcS_##?tU91nP~uWLrsk#AjZylg@}cZnaH?2ZruJ1KBN;5Gq+8J{ z;aYLZv+z)gtA?g5%voZmv60)V?wWq;rnX47kXhQM=3aKG{GsIvR9Ugm*hifDEvPMk zms*yd6c7KQNjxQ9=quGKl~gK;EhSK$Q0A}n5@E-}cu%s*vg$mwTmV~OEj|}79Vj(d zmsOKhA5*%SD$yv`C}ml&Ymg)_(PA%xVz0uS&s{BhEFo{u$5(=0Aa?zMue?-}cbeL& zxAE6bjk6?uf&Nqja7}O3HPxUy!^votU0}Ps%{RqTw?wiQSYlY{OlXf?7qJQtosZwc zGS}lv+9kYt-RMZMV0f{%I=QlMcUdpc)E(7*9Uvrl7A3nN-nbuQVR&m2aCzyc{d5?Z z1};90KM4g}oF1|@^juHWi$32T?qN>|P4O}u&QGVRs5>5k8f&24uNM($-^mN_2^U=V zn2KJHe&BRlZ$6{Ans8rlzrq}=K(q5bdMva1I>P_s&L)pa=?j?O=|*1i_&nu$Q>@or zOnG1G@@a8;?)ehRaeIATmY5=s`~9_9HJ;OuFU!ziy{NF%SLky0I&m@cn!E2~z0A7V zk6MnhH`f5h-;V;*2}V6V#>#ok@O}H4c(04kYAS~w`5q@TXbGb~$fBNP~V?YV zQ5#qMU5y@v(M@^}ghuFDuXpxbB?Kn+;&~&Wm4ky|NO4NW%N>2`yTV8L3YV7&*odt>PN+m?f_aV=6tBd)55E<=q-S~ZcEy}j5Al(W2V`9Au&;F9DmW9)96sSBw0V_EtPg3KXBZy$Vo3dLdNWDBJXTf0F*<9M}k zBC%ZtWlmq5bGTw&=`k}g%Gi)RxpM*ZHE9CoZOk@AdPNdVBZkIw1|*R582l&T6ZE*O zCQAp%{>ifLqRCsAw3W1WfxXlSz` zkhuJ?{I&`@6abA_TDrL$^f(I4m>&~9Ts+XJwAf&7KG1s8`r z&VTX3aM!nYlB5}aQI0&Nom0XrPH+-e}71RI79 zTq08EnAnPMB7E!~e7qz;MOxCD zRdSkerryqWweBW6-%pa#f=6h(18nA_Z1MTLkR^9w7$|MG_@Db48E&9ueS zkq|R={8tI`l7$t*LBZLt9^^W{nM`IV+YgHjek0Lh;roWhNR(3G+_#Y)E8gYoTbe@R zLcKFpxY@wdS(Sox!4op&z!BY|DE?lPtfHOoV{~s$DSu<;HD)`;>Po$2sXaErqU-r` zyQwu+c(7R2@sapuB$_2l@MsUHf#J;? z2uU3IAPTZdgc$%(WJn#Ac|ZVWt)w_#^b>Td~0?LeQ-&27Hexn*?zvKyI}RS zh4H!p**41ea9FN(9a1Pne|wm#jcU`ekPh#yt5@82#ADakIobn9%5Z8O3}y7)ey!xd z8UN|uG8gxXRhp%iC*fp2aX3$BGGw1csP<)*^)qtWpbh~$#xUkEZ3OJUtx%&dspPWL z)K0byx(z1w;e!X2HCQ;Z;}~Yh=FY8jVY8<4?DX5B?@zFXmL7sQjL0(c+s!Ie`*7dV z`9#zMOCY0*m}xljnt8aR{P9XvS`rmgwkOK<68CQ$QR{__!Rzy&NZh(Y8DlXeM`{(K ziQe~qDZ&6RzTXgpF4PgB1{{^T;!5rXDmo^WH4)XftGTRUIUx(>ASb{h945sR zX1GTCB!v{@W^Ps4{GvRtr-*)Fm6Mh@4aU2lK(GV4Vpr0+(J619(PM|D4Qu0rRIJUZug@0vvy?9Q zqh*HL(NL@j#R)3B==8VYtG>_``L*t5%AG##x%N`~Ku5l(C4`5}0LUgd9f8yiXyJpHqReBt((B(LX5; zVbuSY>L7W$p47FRX|C~YZ)fPho>dz!SI9puNy$M|O=X6Qoqq0FLU$H5^tI}m?=}I) zZ)s_7tVD-MJbhx3qlI2 z%|2H`6GTPR4v-B%DB=pF(Wh##GJzVQcmNJWXJe}5mlX;mq9F2VRf!2oZ6 zyY`mPbagYe*El5_yEQCs>bcS*L#_bt7bqfv3oisqjF=*XJ4aNqs)AfW{skVfve4u5 zocc_`@ppd)Y(KLfPwXF}KK`9;9SxM=?-^U9j(Q4eKBD`OIn3)vghBYzwzj2VKYV25 zLKh0o?yO4B5t`OJM*9L(|NMbREbKLpZS|4D-~_Rh$i8W1?wL|O1NXV*wZbEL%iNXI+Qh2G})HBnz9i4Dwq~xwR=r}2^ z>_Q%36sPq(l0t2`_WGF@E$s&gf=NW}X=M+EZd1{?RbvjPbzRNdDMD27z)~(FOjQ2W za)PJJh9pb;EPn7{FE*Ybj%Q!RslHJ-D4`qlDbk?>j5)tmisezsIe5m41+53^^~}(M zT>b!0Yk;*j;X}BCzW~HGUU7FQvKR{NEvDP31jX#JWq7X-_9!h^s5gM`qn#Cuzj6&s z`%lWEb3L!yyWs`8u>Da^Xl-d2=s5Qa0%tT&s!lv#qh0ku z>)33rF~POqJtsxj@~XbarXT#8{&SB!!WO+0VU6_d1?i%L3I2pa1*vE)%R%Ht zBhDTi>k2aym9)hd#tab2fr_Ta-Z(66@9gH?WW9KWBB!I7l4`5)5hGKQ&JUc zv$0zL?YmA?*-=1@t~&0LE!`~wb>@ZokMCvLH{X871Rn~l89|7_&Q5#-%nyB zrX*K1gm|p$Sk1yvE$mrei_!NNOO*P=ULy9x;PdeNiR?kgYsIw98O`AFmM(hbFS=ot z6pbV-Obx9p(J`|ghJ8rc)l%pQ{6#x#vdyN=)msh{;r8E!TmF-5d=4s_a+)jmwkXkF z@d-EB&h7V;f%k`i{Rw$Z;cLj@;cqjSQnO=+um-BFE~|JlNjyF9q=1Eq`D!~du$5?5T!oWp1Mhncn)*C3r03dL+7zo0 zyr;&S0p>+O9`?87NP$uIxI5BVq8cN&}-XM*U1op+0mWnIxsZdzu@F8&3`bu7NEd3ss=p5R4plr=+sQ`dd0P z)eLdLiLS$xv#ivI6v$opVB@E2+5f3ea zvZV&VqXUnK*~wVLu%fu6qT zmquVu+%z#sN=*@OM6ltT#z*uBb^xk7xC@uXt7^LHUtT(k@{mDWb|%>qSzW%6JI>GZ zUe^z6qh(eoeCurzi%;`ehTdXTuWk@UPctPq`9&!4rB}m~koHf$NQ-6!|M+BpUAdy{ ziT1+#<5z%#=lngET#n@G)nIglC(v=Brby86))EglWpB;Ez!Rwy?8<3&J^(IfMXw3` z_cE)l*4e8Kt?w9I{$kG=z%u>2O_s@}?GnR5<-5H{VZ>YQ=o&&LKTa9#J&d-DB^?Vs zW+o>u)^PPhV*T}W50gsogEFo@D{-9?CEL{j&m0-VGH?0`C zJ;+a~D*m_>20^s!BJ{B=t7m5e`MJ#Y&}xDo?aSaIJd7N^-v;aPH2nw8h}6&Snxd@?Rmom~XogRjw?W@) z7MJEUI@@IJrTeNVH9(43p))=k)Hz-k`+JDLN{jXcQvNQ{(gBam*eLh_br+4ecU5a2)JNKG;8*lpb;6h-dB6eD)BY4 zg9)at>yI`xFZ9Z$#FbQP28{@08K-L3)JGy}!s=5?RG-)ID?oeJ`mTzRjd$$Ol>g0y zN22xcUEbPVy&aBnd#;kx{mRPz%6R%|IL!L)FI7Bd<^MF9nz|72g0{ zAg2ANfp2BlgguxFVpLn>crb*Vw8TcPtj<;zhHfNvd7!g{Q|XPyi_8GjLApR<(d-&J z5B3zE3cw|I0Td;0kjat7R1ex zI7!GJi9^#*)-&(-CkwNdX!Yi(Q_&7@YW@+~7kwohY$B?f^Tp`a;Lz+JwABC^FC zboUSAFEjXnihlem-vg*PRaCb)?tAJ?4r8i|J43G^Y+^V-;DNnDIbpHcc2T{E14h;EH^G7NHF?owWJu7VsWMTw z1NSv1_yEg-4t+T&hXrLTpqrA*OI8#;+xqt)R!J3P5jML3IHjfqp(kjJz$=I$KLxwts|mg(NI;a< zIdQ6DmsV#0)-zLs!eMM#ok+LED9jD9gflz;5>S2wsi&T(t*rVhsF!B(m2j*2l+XdH_>{bq z|NGsI-uRHTpo<2(8FU$0pc2D890M%YwQM$#ai+)(taC6fy>f|Db$~XN6@6F*2+J<| z6Y!IuwM%JnxsIPa?22|E!N4us=R}_}8)}?54A^9i#WRB*TI$JiiOrK@k3G z|Cv}pKmzRGw&?d#bJf>9u$O>}vQ?0{$a_0^i;%?sQlxfh;Pq*s8Z)^-tH!pSNlm5t zuI2iZRF~xI2ByP*GV!W_)wQTG2f|K0R~H4X)vRd?)xpq9JABrwD*^RlNN`%MMN0Lu zvF)$HJlTn--Ct%3E^z60$~&Kh@`j^;H=Jv27s z5;$4@o{d>aBZ~UD!MWRgM1=FzD%ZF-3>0;AWklrxyKw|l=r(@h4dHhnnH+0?m6IGf zhP^_$Z|~XKe?4diOfZ?Iv&w>2Xk%`4D|0ox*Aw ztONJ)&d*+YBcbv81N>T1I0Iliz8Dn{8T_t1v-D~BF_v#zY}eJ4=-!JOcSTX#lT^+d zM%r!@VLn*jI^`W?00Oj5VK67jEU8j`FC!t1g8coiRf_=!8@ZS{dDCnJdTO=F@RomQ zFrXYeMam3Xv_w(EMEINXJ$9bP%$!IG+vTzPsJ!Zr0K-(y)QBd24kraeYaj142xTVt z33jN<7-@@7RB>t!D8^eMaigI#5fa_8T7oL z>stvv#5{QICb7uZ{b!pL{MfS_=2;=SPO|eL3nHpw!#;BZQ z(DknVD%tEz=HdW69($>0;}8h%ig>-(R$GHUuEEy!Ea_yr&o5+z87jgxhTRe7Sn_{G zTur_dFy5MSrB{s|Uxe0c|HUHfRJTb^>qGRHV#2vNv&2I<-~aG|up9tY1+)aISDSNz znppp#XYSPP$(bt)FRC@n1AEsvVPIFnqsdiw1QGb+65g_gOMbrGvwlggM!gJblW~eKrhTC6!;CIj!Z7kg4)7x;Nl?LX zsYQZb_P^mdT?(ZMVDJ9c#6dXPp6nlxS~15yzTntqi1m)&d45q*b#-eWf20BL3~3$rf1XK_%gN4#pYY8}s0tv8@To z!ujC}qZi=+agBpzD6%NF(gNqq%Fr{aBQ*kR{M*T~a=YhGdcZXDM#Ob%i(cUhi_&tL zji!fqRg=K_GM*J#E1Y#b`!rno-#_rIi0aTOmp-+fVz)#qLE*5?FZ7Xi-03f4e|1ee zsDpp^w>{8#nHhjqV6%Z^!j>$SNUAy&Qx0CX4K;U#_b zMjkUmty9STDJMIdoLK@Y_}A025#R)ZxX#bIw(N)nafsGsW24rka%S$80mrJ_C3Z{D zD5m5^`v}cURLRC(Y1;-QbRtMK6yFPJ#F?_m_oD#A(nGX&KjE+j<5P&La_+zuTab4? zZVZ9f#;5G*L5`I*t4DKN?e!n%zom^06E`$*9U*O$DIh8!t`M#_TPxDN^@5fRt%Yr< zQK4pbDpWY&rYN!KxA#6kl~Fpvc;IdUIi?c%Y3jBvC}+8%9%borKY1-*Ln=k5YYZ56 zlU?Bc?JFb4V7nP2=i)OzoP##WZN1tKdBJ`$JF?ug%b<*xAl!V`@o40hIsXsuJ|4Z* zr5QpBN9^2A?YB#5#Bo(ODalfQk2NV_hkOETH4dO@_XoJk`pWpq2q{SFwEU$~nmL4m zoxF}q)zARf!kBZt1n;Jr6ER5p7Q@u6(=EX2gRg3+`=`mSBH9q2>DDNyA*VfhQCE)E z{_vPJXp%=#236Px0k&DT4WTya{f?6eDw|2PY#t|jJCj)JZe_kI>G;?d7Vlye;Bts~ z>eCiVgvoUDyIzunqRh)H8hndi!JtC777Jpn*Mgm7dgZDEdjm~8z66_vupcI#AOJj- zKk#}ETp{p5$`EUq!u-Np2|+*#ipU#q5bFJd%&0@fE6i>+A>- zsq?$9j^$%5H-1OpR{WV7bN_B<1TVCbr1B`xK~%#ZVxLvyuKkGpxr3CL+Q^A=JfTDp zW%x<_QkwTBh$g_gr??k$`q=;V%Mj=ssCd90JCOWSWSh8AwgC_Gqgev6EqX=Qd%1CI zX6p6)!AzezDPYBvvzB4VYb{}QWgO0peW#Q-*OAc0z7CPK>i3)^|3m*;Lbg;G%z=WOS=)#pY`(1R^oJ^`z8U3QP05J+DY@V zq=lIPif0yd@HGlmq=I!y;`^C6yv)LPDJk_|6k_NVWHNf$*f3tD95c}-aS~us1sU`r zOnkrnrh;3Hx!6XKd7vd!Z|d#H5EbW+TCZ6G1&ZE$^aJ?%-~9-Yrfr{6A`zM$Nr>7d zulD1Me2BLEO%MzNg`3SUG?IXYmeKJW=j88#EL$2)`ku{_Id})}X!k1elWpSA{*+(2 z)@u$4L(rlsz@TR#2mY{2#mJ?@-Y=>Kj^7Z5ClH83^sk&qW06z|n8YalkIJ-vV&Y7-#gc;wORL zv%N2NH}E^%{mCw^Kq7!tJWLFcB+_Iw#)KzYCe8k2qHR?oaHr=%-m@51TJ;~H@O_opM(QEId7`v^V%rj(5<$i2D`=;$ z*tFON!o2y8UW={KW3wL#k32!5Sk{__Suo*5fYkn1;(49aWEc=R?KGhCF)bm{w5b2# zm`h;0*w+S0$$v99u9R#7yJlQGWDz*4J+Kp*ypJY0ST+LFV48)mz{+&;-&tXC0=5m%TG$Gxswh zOC}f9OuDHce-n7kdfnzL;QaL|m1z0;jXje+No*^2tDuXYJo$T?Z`9{W;NH-j9(Lhb zsH?Xn&PQY?ERJXol>IMcxNjtu9qqMAc5y_*7mdj1LIjR22^Vo=i%yzr`?O9wW~pu# zk6Q+e?dTixG9n2Q_b{nyD48V_)1#dT;Nhqf#}d~3XU+gr257%dXWUT`j=z#COQAs< zSN6kkp10W|_w&PXN~A$_M{e%oIU8{VdVTU!{v7HH9DfQl0jA`pwWpuw2;UE=GA{#M zv3vtMwrQ{W&mbYNpE`?9;QYMzQ#ovmnH-*}KNU~irZ=KK->N^R<#X-C#**F`3guC@Z|Ct-E*26obmq2Zb3E&ukv8$cfR33kpj8mvKDYl z!)(0yTPG#b)%fG)WE>YXqlB&ROHgOr74} zJp5gf=aL~UL%;|k9mDbgaZVfE|K#z0#)n^S{cC&Y!FJJ26FR~}(xy5R;=^F+*Ni=U zn*(q&skGwr?@I>pM8WusU zWR6VD%7?5KMHx?jq@h+G^k#4guU_>{F>Dj+-c1h;{+V29xFq{-t;Foo@x^E+f_Nh^ zVqpyV%(RVTn!wV^!ou>zYCU2uCLl;l&DqaHndIw?Fn4cy!yJ+FBFvnMUCG<1D**8R zK0N01<#RE2lv}6@djJcQN0>ot7Y)Vr8^9U%S^bK6oc?kB+R|l;6gT8mUktn7>mL(S z2pS)>{<9``VmahQMRhxa9T8^$Te1lxVxhj*l=Z5UaIv5&UtH+-ODBTdadwiHaUM zKr}$ZORZoWJtyHJ_%qrx2DLG4EE@fv??LCmZ$**`;mXx+YjNiL$>93Ye1`2@UjFjg zua?vu^*cKQPpm7Et=Ar_>iPzgUt~o3#KI|s6N`iQeeMn>FrRQ6jfjV4gs8x;U$tf6 zaQ@$z{t)@E^1vSoZphnauGOZqvO4{pR{0s}XY*(+bBZv_L&Q1Z^E`>5GhQ-gconiq z4_Z}Q0RwFy%McI~-@w{Xm|Hu#AcT2@Krs9ldF9ax*Yl#Aboje<&m?AZ))e*Na#YM89s{yO9im_yPDvnWbtvHlrB&YmV zzpHe9Qgr|Iotj4+{$5~PE1P%!nupA(%#GQEBJ1NKle%^4N=7=lEM`djAfEAENvdEb z)K4LARFqc++N+hP)jI-Mo#elt5-d1#-P+2`<@HsJxO@{VijsQ{C4O+1Joac62zOI0 zwTF5^`@xhPh1G`zdg2J<} zKfomPiww`(coVJxIM~dxd*zHCZ>{3Jbz?`i3{`>ZTe6Ln3Gab#|9T%`#zYdOm1~j2 z$-(jD?9~)Tu7p(HWwj6KW+0QmsCeZZ!>@y`jS(V;qwm||>Q3^g}Q}%;~ zEEHB8u4zckJvxbVq*5};<@jT9kuk1yqNgPbYX^z&fSLvWx>B&ftx_rb0FsWl1dT_o z_m|${fn0Ek3`NlikD1Kd!7ptsrDg<)NpQ(wCKInQ-=b=MN?76}dp2=U^ zbwmq|zaMRnTO^omj`Q}$BGd83t=S*5c7Yhe+<|7b<9eEUZ{Z^P`r9o-y6WI#RpX8M z?1g{s9(w@*C?C?F;4>%Ki#YoQ(HQ!o(&|z%R4kYMc6 zi;@uFEFuc!YNlqO|CDK}Y+$Zrpg;A|_DIEcbMi2)jqb|MB7bS-fs16f?6SQ?7Kv`J zx7-FZ(A>%~^%sRU8>%-ZY~pP!c*s7%{4Ab4S^+Q`a(w8P#=%y=`Fr*d9?W}ckJp-B zYKVMpgMEGxzuwyfJ#9gx!TZT?2`r5>QS?zLw&w&# zPxr}wEn=&Qcgd-wQeOx(LT1HU~D~Lq?Zv6MHmTOyJC>B77iV zlja>JyWL~!K8}sa5?=>)T%K5{exxUB~z2v~3OG$RfM@0<>0B!*YlDM-S^}`SEMx?P7$$oEuTL z-~HnezuVSplv;|&*qi{NK<4&-(H^4I_sQVf8C>C{l4N$pK?s~3PE3fqI@Jj$hzUgbPFt_oZAxt!r2n_ z(vN@Nuv$Q*3tXf&6r7*tGV(o2jINO1OX*7HOLi1mt`t_E?ke{n7Y5(z=g?eJ#K59@ zW~%1>c$yWsh!kh;*H@Tzub*wcY4?+g1gUa}lkk0#Nr-gD5xL=Ay#(O>RprT1g-tV7 z()y$QlYavD-QoL0;+KP(`zyH#00G)H>wCma1&p%_c*nuENbweZ4~oOKx_vcfe0%fN z-GvgvQDoV#mqWtvtT6QMr?1JK9ZXC0>82%a^#Es_Q%nkx5hRpa!oP$KX=R=4K^#&H z88Ie#e8E5VGmUH`PvFAYDRD~C9HTiCwISf*-gmP&mQgNUsM&aqC{wlsOeq+;RGq>q z#U4dU>p2F`UDmW>*UmYX7;35v5i`Dri-Vk2NYb2Kg?*?a5(W<5e{QX}W(2tXU{#T> zCk4ZTwB})26c1!Iot5QRfack> z03W*ln)Z(#v0>=CE;joB9&7y$k|eF|mn3d`*KmbcS$g0{S)MG5qA*sZGUsSX4ty__ z8NjK3b=4*&Az3AfBA!HxNR>#&Oy^OrCdYj^x6KD{sPHv`4uklRex*P)*S7bvo6Lwh zqf5Hh%J}P6;zW3d&hl7Rw%_x5;ZMxq7is7rXWfQ=uVZejw&@rGVpy-C!ndu(9xPhN z(jwt$5ng0DD>o7eg1u@co7()=vSK*J1v_Z`vgf11BUF-c>ja#Tgb2EqkJQ>9k9u|B zsfuWlTp~)$5UdZ9BK}kw?baC0yIeM>V1iGAWor(>Cod z)+$}S}vU-{YtTve<-e`9+SA^!)~K}S5cG@jeI@11mw&L2AIsxQ;$ zXUQR?4r-Ww!r5&)4~rl@N^>|g&rS{Zcb@0F)ZI-d#PVm;uRAG6#$SJET~IbEFcYLB`Bpk?86=jaym#eiBd9=BLw&76$6jJ8{K++^ZfG? zJvs1zr0XrKURzvn!rTTA&#qa|iu+cMYJsAy?+$mtGFkcgPnvC*81s|l>kkfrp)<<} zkcS0Pfx4A(Lcbk7Q~Udwp29KiNFEk0?ekDEkDK{V`K)n zZmc{eAPIs)+P)a&_=}Y$me8ES!L0YhX zYg$n@=TC~FqB4?ttdh5!II{?WKD-|oriB8N?2;_<heB-iY5_lzOIvf7< zD_yXYrq+=-F02gD=Xr3q$~KlZE>JY9)!n=yBRPAl zcl{+UsWN>6CbRwaZzjHe;JLklgn*B5DqsA_JvLT9C3lUyYGHH?6|PU(2X#xQq_B{1 z=){&Fa>Mkg`JlvHzyAifAdYeXbBFTlUiyx}m4KZ<6ebs_ut8-U6?Y_!R`IzeGlR z__tzEVmfe{TtnAdt!qr)1jhZ(JN&TJ%M*kwYLO2e_&!8|@WKGdeNa%yF8H}~-l7$R zTw?fwcCS+?@9s6bTtDOKDRvX@zUA4bZjr5>YUzVUF}XJl9e^P3NIVWbyP)WTa=sRY zRvpTApSo#KzW#C3D14YzzeNNJg3L}72)7^Zvt}kTowd>Jn69aw#AI8K31f+`?rJm0gt09JmXlb9YtmWzX z5$1Vyr*>*1wDnG?>;94M)&J~t@y{&&e8Yl-4zQd29LHit`*)(L+vead)A0xzprn7D z=A;5IQf-^$As!u~aKO%wXv*=H7Q)n^a$QrS~)P%iBQU3PyxKSIzqdcvt&_pmq$ zlC2Ihf+RmB=1%SFcgQ%@V~5mXpTqPy%h&1wc0aXP@Mh20V9J-Wa6V7R+RO1M^o^y+V-tEsO3~#u zWv>pqYId@4KEG1v_X3f|A4JT!Om;LCaAYLpDn0JmzP226!S6bAc(K6^HAqJMIybBL z{Wt53v2&5J0C!U3g-MjtZPHGa!l@sS`<)a+F&OIJ;Fb1ibI?i|9Htw2mEfoP2ZFWY zybE(BY|J3!Rn=>EVTRK#H_3X4+5=@GxPQw%UhHstHELPnkuSAHyi;H-Ab9^7GZ-iW zVvZ}1#}2E}^*%irDl!U77DIWS(y^+im-luO07_wn)$42wSHkmR+@jS5GeHStiqh<$ z-;zO$q{^-+2w6seju6J2Tb_ZDSajVSb24>|D$^GI&1iS@z>Au*($drWXSmstWz3yt zQF_l1oT+_TkaU?-TBS%kmn*)WuD%?<@rV~7%y4VOjsTm)47pZ_-iG3}N7Z4YV7bPwrzv{pYw zalCBNH6?|*5-!6xN3NgO0jc3|LQpNEV6T^+H|2~n;>9o3UsG4;c`^kIH54HgJP`ij zl{3$_z{~O$YcjNcm*|+i@8<0oJ6*JCZMx7JL8p31D{zv++hi_0Yg7+uXuWmQ&S&dD zjk`=ki)o6vp0Y-X%P{1eLF}yJPb(&j;kH0=?$T^&I_|g)jBzu^n!B_NHUl#hAcHv5 z+iJV=9p4Jb=%Rotr zHk|@}90%=zvH^P+$Z5qBH+J18T~u8x!Kmr}lxG6iVd{)2dt_i$_@t=^8x!F*FoRY| zwcQ?;KWtuU2$o<(&%Ts4RHT?m2$X`2v6s{8`7qr+VLR8p^G|WXl>9vH(tI=J&ERp> z-ct1EYkEzWd~}l@l$SQwr&8P`jOBrq05?B5HQ$~)R^OG%W5GFYc2@3(V3%y0jBA|& zyYS0vNt>E_X)0h9cp7$!`#`wRRBB$Ft&&pKRE8YWW}M-OCs+xrZ#vpjkW+qW&h|;K zNXL*dTZ+!=Gq%3xo-wAmDsPHgXo_^&y9p^AfDyNCogAEg3rk`gf`#Ok{8jk6iRQ&D z^O(eeft9S8lpi~F!f+-36fhhqWRJA)V0Ul(Qc9K*jHFvM{w9K zuRepd%WWIHOu90+Szw(DIVA@Idy=ujv#du7vN0J2NmCiTvfO^>j>-r17O&4=4%Y|j zKCpsC9D67AU+by-0yVaVJWDOlT^r#u*I1z(gI_%5(J_(|(0Ka8tN2PmHPd=2#a)B} zO=ySws{r_{EiyV>bFH&)PwgP>SyL4Ookx!|UQ8eSuEEu#tzM~SCy_yYS?YUhMQRiw zH@%pIzfpT1>6azPtspX#5i}Q*eg$HxSnO=lj&U*pjq*z^j`DHDBU@aGmp;w({k+RU zM0pAZcY)(*XbCN<0y7G{nCHQ{M>mFBco2pYF0k0h$8x;$UGIeXw%X*~Kv`S3^>%_E z#$v|gs?4{osi{8z=AIeGtG%(Bd>7R=ye+v^-LhdsOrwHE7slC8cx^Pg@GoySr2qY6 zz0ElG*Vtg#P2!QjgT-s2Qf-$RC+MqpmHr%8bA>r_99o$d~n-LZBkwz`mkU%h@aryufxR^@9iC& zpJ4mGghQV~dIgXz5MXlT6yMnu(hC-CI9oG@<;Q;Q=OhWw-ea%c%?&O2R0e-kXQudg zuRdKU;}Gd2&?|x4#Z{3x)v|i}U|2T^j{q$qyU#PetuwZ*H^yWR!r$IfaQF8jbs<9* ztZ8WZ2`1q<{9&~v6eQ8AID&X$2E2IIa77|IH;7fcRrCYzEqzj9oxUAoyr#Qf+1X)= z3m_0{)EeQOV9wxf{G_#-GohiQE~}y58rg3c81`^Z%xORgO9*M>V)65}z6f#YYBXvp zXki6kje39@8PJ}dm-6rV5y#wFKQJ9>|I{S;#`?F4PNSQa(t!J*EoWK*;nIrCl4`ex zx9a{6yu04e7vNfZ`RCsXa1hY{Hsk!cQ~%Y2FD(BS#Djp$Xncr!WF)4E5~^ny8<-gx zWpsCsc6ZMY)Q9@}=Rk|F3K%e%m>3CxAtE4LL1J&V2j76t>ZoGlVWV$;nXf)BMG{9? z;?8kELWO*Cnf<+dkQ+gO6B>pALG(j~2Kkpc0OA(NZ^i;oB6UU$UrGrw00a4bE!*^O zm$89~fq{XUL28Xht~+1XgeHaEA(qg$kVr#7*YI92{cBb(LT>Gs4iXd-2#94CLi_)= z`Ts`^f6AWt;*^U(5c-C$1Pv0;2F2`=!9G1D1E!2Vbd%Sd;m-z3iAP`5-w*T))?t(X zM4->Nm5SsL78VdiMz=Lty$9(KO7Et;{-y()wq@OgNm%*xobG(Z-`MD1F>%}JyN6+p zO)7%%ebXTpmyLM{Mt`*NCI}lp=+(ERL%VI%{I#*<;pcaEjc@dL+bEKwEgxbps9+vc zq{^r5D>l>5D=x8rZva{ zadB0-f4PA;5m(POSGjmZx7&MyB3 z5(WYSfS~>p5`Be$uz0MQ7@8Uyf*1#tePQpu*mkoxvi5*PFlD~yzha4hHM}rR7LGO| zj2;+*fP>ilLLmH?_Yq!XWTi> z6%ddd5KtCrg#->Rf)s4-)5~W#Iy&eNfrEv$1;^Cs3AYDb*jCKM#YENlHC=hV9Y`Eu zg*%`E2^I3mWuANaAUg*CO>h(jL;?4^^}mldyb6tgfvzQH3*3sqC;2;>%9Gr@CLqg# zq+H9i{9k$IAVFV~@Z#{AARttt|E9rXt;h$~15ItojkAttITxFf@8S=a{BBG~D+x_t zA|)s(Kt)3e_8pBpY63oHs+D=$wx|E=O~Ew~BK7Je=cpw4+sUcUQ}zMh75CGIdIdwP zV3B&o*S)H`=M<`zTKZjiWCN{?^F)J;efsaNb`pUK)gpotFl) z5Gu|P%bTL67{|`X)5B|{FYo5LR9P8_UQv&6I5p! zS~I20&v7!#BhKKCv5&D^a6=e7mB#G5e|tP?HcTouv{=+u;XGc`>UV&kvBB)PyRUPZ z=J7U2TWpbfP|eV}yPDj#`ir)~zT4Ow*csOW^mYY+qm%r(z)BzVPo;|CvIJGkQZ||@ z8m;7lcE#j;oSJq?*E$;X1K;q|mU6aa`3Ih40<$mgMM70TRj>Fp@ziNCNA09El2%ot zyjoeWs$JZ*>h#AV#KI&(Ij$OKnVtG(emnXDo04nCDdJ*Qd55Zd#if#*aF-mQzFE?4 z@ZfJ9aVoU1!D`fH1LBc|1hDuO|2As9hh1%Of!deYtY0zohkII*Aj=R;|E?hYqG<%LUrj>!*mYf|))1b)d zXdN6YBc3#Dl)C}jiSfk{VM)rzVTeou!^<7H!`L>!bI{^y6?bHCjCa*SLk959Vbq;OiP=~^|x3+vn-gywWxWB4t zFV}pYro1s^=j62Aue=kHwp;c->!Hng6*&%Ws3%HP<;&7POn`{vQ;C(o|uS!!4CKuyPJAeGGyzB6)J<&zXr-vZwou(#J z*ae#0vzg?EAI45s5Sr)b?%l)8h>< z$|J=SJ9z5N-5W5~V=Hm%hAjA}CD87>%pb6EpqTkvb}EsQIU zchu(e-PO-B1WIOb*9-zf+W)w_tuT1NJCETJ+ok@YSd%@iZ`ZJr0E+i9{StHI1;jMZ z4drc5FLU%olM%J?_V_%Z}6Vk=k zWdM@P*&gE{=1Jbx{C;`OR)^1r3Ulc3ZiVRX$(%4D<&Qx5p5L6e=zkq}Y_vE>gixqu ztM8L|XfFV}sS_tJmPmEeepDulj|TgrWoG=xw9sI!xCXvXigk@Gt4q@MOu-ex0IK_x z7W6=rpA5e@t=&45f>m1hd$k_R#If@Vn%KbVXXWT=hq014^5D|x;b|g;K8&ek+ z#V>#hWZ}DSVZZbBym#bQlsd{fyEx3@Rquj9Lk3VV(`9l(xcBd}yn4hcLvWZ{X)Z99 zz>NubthGKi^NkEV!prMejJ$>+QO~VoG4rD|HE4K5kB73IHVJ6e2B&42n>ced_o*yIktnTL=Z#%3;U4YtI+=_ zN-9^49H$Ux@Fp$!)*sHy-lLNi4RW%!cLoY6~ z50Uy8g_rjlk7{Q3hDjcLtV70xmh}kWp&z8L`jP9n#BH2SRAxWp;=a5%vZnn;ieHQW zsol=mF-Di()g)M4?e$y@|ARPRVz!mLrJ}Q)2|%b@XO9tbM}ilGz7}Sh!MCv#74zgK zz`6LuqoN?c?YZBsujMU$g`|~m$w6GhF*%d% zZ3_Aj+cpX}3IdOWlo>QM)n+i4_!?nH&xX@Zx5H*RzPe{%J3#*qqDz**Jut0b4MmJt zK2wbw3m?X|Y(f6(Uc4wHg+L*{$gzN6vMrb~ShySQVTfAV#BeDk5Gx319r6b)x5;nN7^cM{k@u0?8RLU{;F{AVVX8wB>A7G%a(VmgjxL!?2*=p%~bI6T0&! z$!v%>WsAAJ294WGYoW`$XTJd-TXbUeoQ`js(N;!Y0C4$FLW4x2eIuGyNK zG!^xq7-!K<{J=_0Zh^%j5nigDyg~%I35-n*?rH9Rh4PX9Oz8668sE*Y{F9wfbrSw^ zRRGKyBqxl|!<+3#k^T76`>dtNBQF`(Qu0^L}teetav)qwsovvkJ_4BH8dp$Ey(L zYUIIcsFLRY9AE=di1FIdNt9h1i_s;^FDyHKB)iPg+~6r^%WkIcRWKMjzwd7kG}+j{ zOq_4M_l>*Chr^M!|B7Rk3hm|e%$fG=sV53rP16>(X5!`hf^PFfPV>m?IU=j8AbUW`p<=rPcq7LyppG6#28M!$lCTJk|l-v#`M z<+M&uBUKG3cj7)@ESf&3)-t;D4{~-QuN;UmYT;NlAZ5mH^~o+CFO%478<~6bld%bP zRV&%!Jb42$GTvB;4iSG0h+bRabm-u=3{W~aF!RC`Rny4)V(#hmc%dONaOpDdC#%@p zGuE>tqM%An^9ng`9vQI-((l%;wnbb=dCo^nEvepXGZMy`7V z#s>-p0BU;nj&b$$vVN~Ei*fW*Sl%>p{f-Q|@;v~45D{G9L|LK7lpr`ed?%|Z$`{~U z{2^KqdVHVPXuB=<7BhwK=cf5Y{$cA=-QCgEL<#<$xlQV*FRz*@vJaWZym3SrTs32B zTOOwABdr*UUSxA?U49PVGT5~-5U7%#4o6?yZxP$>Gm5?pW+h&7?b=)QmlR&BHFJyxejuau2Zs1 zLsqtqK=U#BS|5x!+1IY6y~W%Zu~1QUYn$F-p5&5xtotmdy7%Nw(bn(L`AmHWVi+h+ zsIT5Jp9FuKlXJC_nIwh>m;`1&p%ioVYcHyhP$%4?SbE?hFZO)<}=&w7e+;a0;fy1(A|)a$bUdz3rV z&buG(;I~jWq;98+d^TZ-mV&bqR1ei?{cS zpN1T>i&(7-DwEJrrmw{VHjGUw-6)OMAcp;Xe7^J$+V(c4CDf3X?}d0?pqj2jkog@g;| zlJ|y64yydujyo>DP)%g+@+_HF4>JlexxOgF(}7GhqrC(l9&mi2V~p7S{ROw}wb{zu zV#cKMb2Yu~?r0j%!}ZGMY|H2EAX#SaAaY8#ItP;03ts2iQ8tS*0(SJQrppIjVx{Xx zvt}c#+rr3s+caO8F(9hi{zw&#SaiX~e8iLSpPBI8Xm56jPw?s9|*N>OZz5*++;iXxemkP>t~d@tJR=@I%U3^;`i z8`|2G!_l$t51n^XKmBhsw%kCWjM}rz3wP|R+pa`5Wy0O-+ap?jUY=}qy2@#&zn=C7 zCS%u(THLo|)BvgArs8(8w3X=W?C484E>iHS>V5dkp;i0}$QOkTc}>a3`r4c;w{{^1?QyMvbHAnoik-Dev}B$beVpHgm# zaLXOy+JM;dUY2O0oIBldY~f@F!nZx~0?a(&n#@Frp0v3u;Hlb&m7L_! z{ETdqe3!Oez=Yi^%#b5ajLmG5wQ)(mFeKu;{ptJ8V*4kQtru-qf@%N@3XGM<+wyP=~|$ns(+dWv4s?oNn%v=C2O7e;ZrE0ZP}eCIP$o zqbBwHM^1OQVv!kCCllizM7ANmwaedW(RHQuKn&>4oQ$?i%|<_HG3c524mg|;M=2r4 zcC2UTp?!(M^UUXdMvyPcFn zE_+U{rg)2|Z5eb*7HsDv&N#yBWzETz2ycZAVW8{jPiV*y3f4K`@b>!l&R2VJ`NBR zF8$t_sv8B?R@=;E_Gqt(XJ{i&hU)*hDqeDdutWQUWIEj&F415YiBdirMNBQ{Z9h@P z1+YBZel5C^Gv>J%*lqHyP=$jM5U+-|-vf1Lf3n~VtNX7$f1verE8`pR7S=G1@q1HoImZ~5zRFNsw)U{tA#zvPVs9EsR$!KC&-<~6yqC?e?j(adGcOmVA!@ngY zh%OolUkz3MD>drdEQ%m9N>g}GtUmasPjriR<&bV1WN@bP(!dYduqnC>owmZXL*Q-g zi5c_yo6;DrKgOI5(tgpz^soi(VtonjC1T~z_N*u5C2%+l4?)SJq2g(<-#Gk;T`|Z3 z8w~N6UcFgFwG*MoCL&e?18m+N7~;dxqw@N}wYi>r_0GE*rvOBW?EF~#nacr(zazDduPQIzQDj3l z`b-);5TBqivLzEp)-6J@{SVE|XDmaI(hovoh#Uy>1f~bz>U?s6u>!Zga)6iZC;KmR zi`DbWqipFB$>q!*zs1Lh<-c4$8xMyu7Z(>F^g4$4_c$3EP!%FYSaZDxO>Y~1p-7lB zu%Jri3J!Y;@fvWI)97_Ca)RXnj>{=+asJe+r8+L*Hfs&}6-=S74v6yd>|1mO#Vff! z1C+NP_ZYtrhgm}xu8>sT#(+WuDtlPrKyw=h6N~NPD(?<~;OW1Sa|IKh%8mRT?oulZ zwL}K})BYBU?fVie`-2)q%h--Yu)7)Ym)T>L3+lV{3`@HXd)|t~t23&{UwMpqE&8p0 zW8Nypz%IG{Jq{ytSHlcx9Y?GUx)Ar1g7HleePv5z@ulBf()6E|-hgYBfp%268}|pr z9oI$f8NW6+q6-U_iAFP6M6I*y)?Bc0GRjki&wa~7K^H=D2p13oDx%n&8y>M=9qP0P zr0;3-16+La{WONnfu>`0lZBW#iFpz3ka(b>{@no^kaFvc(tfi!Sm*dYJBFs`mZY%Z z1AWBB-wS+*eR;J)WdU{#INAV&weZXB<-%k6QQD?@3_J1fQc(=Upl0F8Q@F1h#zj@C zaV1Fek&aF6dsRnO=!tZjibv^xzS~+EH;KBxcS6q7+4A-Cx(KGKFzwWb5)|DX4~buV zT?sQ3PtT2S>^D?AgK0SG>Q^PhZm_wbOKSKDh<1c5;L0mL{hR;Ravee@n3$$xXnlj) zfEfvrF??Yv7`>UpYm!*-BHzDS$5H$Gy#I{8pWlR20rqztBJt`L$@5Cv2BVhus_5F`1mGqWdVodobdB9sF<6} zVG7H|$DdZY6DMGvZJ?lH%$}mCsnA-FCCf#}{Mm8&Z>rZM#lzxFqzc>}9*HdI@i%Q` zvAdjM((OR=XzUo=u?hVehOD(uAla)=zNm{q4(DLk8bB@W8^cbW?gOd%nu&6F4pUOC zFzf3pGG3}Pzq?ZiA#XZ~AG+<2O$Xb|V8P{| z-|g%;!Tmdh6Y+3JfUVDs=^Zk>m8IAA1%KiUb(HpczBWGMc*))p)z&rqZtWzq`bQ~E z|7J^B*`%n-A64-TNnaje`VtlsPcv5SiNBS=IB91Y!eI3p*6m?inYyY(t?3k~%IJsIb_jUU|r=)$>gvWu!Nd7J17K57v*h_iI_T0YTP$;(Q*rt)ya`l2}zO ztWf3b9jrnT^3Zj&Ks-Xk(qj4W|{Bm7vC9v_(Kah7biF}`BA!vD-%;K^0f zdcdrKN2Q*DlFd0%G^px?(YP_W@py?1t-9Od9r8g0C5dZ@Y20Kmi=}~IYa|-tVguRa zm_w|~lt?k`RZ0VU&lLe1{ySg-$utB?jp%u?9Gya^NBvkq1rOCKE`82 zJnH^^)lhorVgN;-d5G0Sdo!MZ7{KzsY!HJlT6kcS9xfk+F$o|C+JF8M?$38EaptYo z^l#5-ncy#9)o@(dyOWgdJ!z7n`x8J8`$gImv5F0Y29?Eku61TptT4)Ya(8- z4L`9giH}SsaKq@KQFMMv?4e66)*z}(JIrz3B)rb}jI5aM$=Kwh z-`Wl|!c*t&cCZ4ckv`Z{hZ8JbXP_72$B^On=sHD*4kAR~qr~65aG=50Jp>4awCk1^ z43-okmgp}G{+j%C^rN6?W#z_5ijEe2{t>Hu+>IwfbDi>Ag(`Zx0tj85P^W9;;^v{- zzs_E5e09AbV1V(ni}if_=0O4KCwZ%n|M`5s_0PdG<`#=ZQ>5FF`1YB95;KS+>^oU= zEwN)?$cJ4zEC-}Ewbkd5HTGNVq~>-Az{=o@6=~6K++GPT^)@-^J@J00KP_F|wRBr{ zW^^>=yyqg+h_&E*t_wA=Y7jR5q;|IaNuIRekjy$IHfa@mZoO{L z&^}x1ItJSZ+aNl5@n^Nvw7$y3^!KZTK|2=%)9}y&3u;;tKz?4Ib?#lW>w+(_z;UH-Zy0v})PJ4h!yxc6UIhW_Bn@OEePLv!80SLZI-2D98+jn$g#2z`6s);jJ5Nf-1bOPgHuB@tFkbDZ)=`n5+@-|&5* zdRWx&4tFvbz@`($U5QY~xR=N``f&F%S9cwEuI7E>gfy-YW}S$oq^`e>CWj3Xq!T9% zI!(CTj1a3RfdHHB)pg-sqnF2LXgjI*UgU$r^rr=)8Z__y?ympH^e~>EhK`&Fwdp|l zY5i>mP2y@+%YG47F1YV3__M20@nGH--_@#E7zqSaPKWhZB`Xl zPM0M1(p@&V>wVCy4%N9OA~QNr28t&4Tv~qydrN~iB-78uTN7<@C?n&QK|>{PZp(2k zf#ADSIE&xHfKa$3@+2K%2PFRfw*cZgGRr^Q0NWMumEhv~QMEKlEmQ4TRtJ;+4j5)mETp7J!eWU*-7PUiQWAhqu))8m#n#E%dx@Q_ zWH$V5UvT66e%ytt)YCON)UBN{xum(lV1s}3|E&573&KNng7#?uhLl+fTZMVz zGcEzg2!jwc-#>B(PSiY>stSmIp*`bwoiJCeD?4_v-$A}04j}vlrRq=~KP1ps*PF+V^i|3H&W-{m3`fSJuwUpOTI(UwAGKfqzjzRd)O^d^*L0a>_#lyPsU}0=G#|`|EL0#6Ou}o+>vZ>VN2@bGtRO>`5H1pFYwe zJy9hUWC98L`D30XmW0>)+b(Lj^0zC7lBd&LBMSr&x4BEE?yZi3N!qwFfwjlq5Jo1y zkPs&#sS+@Vkpmu;Xg!h3t{98RZKW4K4=UI@?2)mjME23r8KLD~EaN`zfx}r-@@RQk z2s8pr--Ibih(r^pA7V0$1v)xH^IrU4sY#+vyIPbCh+J#D{C^P9MO?Hpn`CNey}$h# zJwO|ugga5xa56mMlwHABme$qJ^sWe_wmK?R;0t4D#JT!7ND!xuQ_oEu(-F!x2AO<8 z+1r9l28@C1boAmN4}Wc!0+()r+PGlh)Bi4L=i|LO~+$QfBcfps5yyV z-03m1mU9^bbfkE*>L-qNc#EvkxXzUhEYfhJPyY-yeCm&93MK)K|iP~y? zzhK)2S?)HjS(RZvr(pOAwC&1!GIR||=~UmS(b3F>l}^eVp+7IO37}O`2o{aoro8CG!F*BH_F3)e z*Gy0g5av|IeeOJQBGs%Y>J_&s3%>W2DJxe*KZMrqlBz0BeC^D- zHA^Fn;wQ)2JlML-x$eEgL!Kkd!^+Xga&4Gtl$ThS4SY6k-$57-s<~6#VoqwX`HS;{ z7q7J1qr4!SwaSZXM6{cw6+=we*S>1df^7`9o!#W3OXzyQK*~4?Y)}#b-q%xOBj+5k zJ<#n+(=nRjlT^x=u%xeKG}Y!JfuhFD3=5Lc;Jz2Vp2OtdcC>EuZ43U*gK(S#!ib?4 zab+nbD(Ro^tadWsUjdPEP`0k0*RWH7g{TdGM@fOU6n4#+h{3Ltp-&g zYzypOT^|+hnOt$SEaz^$%zTOYMR+!Xcrz$saU%BEtb=2Qz{=Xv((1%|BX~Y0Fjz~~ z+0WFEM1;*69ntyI{2_C{}?zfQ2cz%A&W6hT=*A zphof5zBDcZ>i#~M1Wm{i#Xeaop^p9n$H$igCxLBiG8X$?hw#zT1o;)g%xp8bqIofm zO3}ABL7U^6&PBN&2j;0;4@-)uBd&aKT5vyH@H=)+VoT5poeD2yy_vgCYle4xn(ml`K*MePhO`ApVdt6Oi zuFSl-jmhf{E*BdF5M;Nm?c9I_D=4_S2>J`?g-Mf*6SU2Oyvw;PZl0Q4olM8(RPc+iEvV6j)f=+^!|S zugzQfJ=uYLLqK^8i9VJru)fRPF~Isn`6;Q=g!jRBWv*>wpv8Vor97-%+W=XO=@h}t zwpS<+0%U725k@+Ei3Y!UZ>Rq$X`}!siHuLu zo&J1%MB6NJFDx8a8`;gj9mVXSEu1?R5hzkR$ipuJ=hMUACAoO}dI`INFTilC} zK!p}owe1&DQSv%>6Ng@Nf5(k$bGbaQ!P>HGnq*RF+NE5w*G|eW} zmri7(a3McySjUlz@4%_s(vTs{Qmrn!j>#4R#Ez33~&@NnLy)Yd8_n#29%o1YY6 zi(H&y6J(>$i}8d;`JT7ZWjzDc-JO#3V(jQX4u9fX2eY0cjxX==h3yuo?&DnOYThP( zWFbh*)48Nn^00|sz1-MuqP&g}fACSab5ax?>kpjKdib`4oHlMyYmNX?)k5ACb=}Qd zSahO7HOwg~--nBsAF*&)b|9%LsB0dA(`H)(2wK4`n2p^P$+`PuL}|Zk5BEW}^@!^P zu}UvQRv~7pp<}(Pi+O2K&B0M?nZ*v|Fh*(r?Efl;S3zLk6LX)#{c8B!Lfh>7_a{p2 zGro_u8UIDu!zcf`PK0=F2|i{{^90g%_vOgyo6ID@dB7gMnZmQs-ZmUGS+Q+0u#J$M6Cb&@wBo?UlJQMA@~@ZV}~t%%OURyqarJl>%^LkOhi zj>(z{RFE=r19pHy(01`0&DMg?*F2sw9Jl`FkUsgEV|34=idJjw;YrW2p7S)-qW7nY zYHUF4?5C3ysa~s$O+V!hsziP- zgB_;-1^{k3^~Ub|_LFfS4dOR%n*rQeZfNRz4btW6`Yete+L~Cu_e_s(k=!uialoP5 zaUc<{1GEj#H=NXgfot8_@#I2g>{o0iaq&soi)*F!=YoSP;^5`3iX2+BMjZE65(2_v zJ$`rNbya|Rb@gJ@oG^e}x+x|q=?tg$3V}T=;dmeuRn&CEck%3^V+W2*bMh@53ngwS zL6GHidjjeYkH#aNZQ26&X8NK@>V{p&Y&wDn`mV%ZzE^Wh%Hn7{bSfj@A z%4?>XHe=#;Jn6?(-7ovub$fy4eQr4zVJ4~0+fKh zSR;QVKftwMBlg*8;-1?R3FU}4N@3Jg%-T~t2 z=W`*7eUghzb7W!T(y_DHuHCCA*KivYE8elVc@}Eb{icu$l$OB=X-pgAThN-|<6VSK zVFBe=>JJ|xJ@;BltkWqjI8HnPSc>TIl_QSaw`Baw6v_h>LVC?71iQJiRrEH@?*s9-+?i>vbi;^hIv~HKD&l>-Hw^=1a=2=G7Qkt7J~9Z zOq4ep9DbuZ);w268XjLp@)w%mKoKae^Qx}jmeFJez1hb&b?nksHQ>5G)Uq6C zZW?%`W_GzKPe5BA&r+fxI{x--!<1bK!;>_Xxic^lk%acfKnjm@`u`9d# zUF2a$9|!s@{TT$+THo29Z2CFCiZ0<=FYT*WjT7M=I`_k>y7L&<3t@5=zd&6dDf?Ce ztAV+r_Gk1+4C^&i_+J~*2f(s@A|n!x7XBr2scJ2q;Fnk3R7-*1-Bb*xm_Qe=U(G_4 zXM}PRZUes)h9E)j%8_d4<4C(M990QT($9!8bNGt=qzJ2O;CSg?GD zdC&Et62CdwI(YSuh2K1F3^SD-H!`c!-robLQ}wwKR(B=Xcq`XGX@Hto1McSb7HGZ? z%EhjDEGaxUS>HRUI^A?SDf@S`=M`uPq)uv>LBhGebRL$$`ji&mP(5SR-Oq7ay=86f z!=X|>8$Ub?n=yL_(SL;5dBf=?XQoqIOx&f?oA42EPEa^y;(-0qcP~gR+~N`SMw;D< z7mwS{iV`?qPzb;TYld>`_bmz-NIYi71JbSyZ2E1_z^)3KJUn~mJgOSoIcoV!wy_=V zeo1E+nm%c?A7U;{k!&`-P1%n?R7mq1O=$=|BX67H0Hj}ev5!pq;Y0KT31}Ph zQ&~}u4O6F-avh}Yduq$Liy_F;`|@u6Oq7D|0d!-zsn6Va@G|F^f1+V6qzz2C_IlUO z5|mSr%wZz%_G4ZX074>Ksk4!R8i;#sS}i3jnkt8MgN@A~1jI~zdvh!08molDsgBN5 zqI83h#&!e_5Eo#TBW#5+_UL0f!1ZDEu{=pIL`E5`tJ`uH-OGz!phg@7?1j?x&3In` zM=*bmjwT(KCyN11WrI5k##KvaXTG;}p>E@~r%!yn%t*q*GaRLiLh(uQ?D;cr|5S8b z`BZXT%omq{Q}Y%2%2WOlWu4d^d9|z{m6x8%pO%kTPLTJQ7GWIB>)|l~d}Z5y+P57_ z{b5J?OtXnG&5&OBu+Aq?84F62&hA(JzPosZ*_q>Zh>=mE<9C?y4BF+CDdrN6*dwyq zZiAxf^)N@J?d+k*EphQ})km~tgLM2v#|9F!H3{JrCv`08SUyH$o~?;j_AX(6^Tyg2 z?Rb#~B5w-UQh05_*qROGMY3^j`)NqdzLVMP@?NQY#CM0xmrmv$h32(W zdA}cYB!je@ZQ^0GQBVS?j4y}tPG73{Thyy}BUEA;M>Dh_j0Zars$8j>4+ArLWhsnN zD!vzzSplxbEPuSXrv9jR*cftjTj#FXh%;G;?Upx0stLoUWm&QUi~KTr7wv&n8%9Lq zRv?qaD^p01;-`f$v4@5Tm_fHN3n%Ggq|$t>o>A(=mzUmE3iLqR%kv@G%fvISSFPky zExWaKo$G-3%31^a)JQg)L5JR!t!%rlV*9{Y6?gGH{27o&J$mYU?#$C>npnnxwq zc_SDUW-X9BZNa@-gjr}NqOBU2Uq9a^x$1UC)UhYt?>g919A)A~3~Y6r*(=4LnS#Z& znMP|K4M*Jp!&6RTt@6i?j`$oZa+jK8IFLh*@Na}8ML{D+*IreH{^ z41?P`_!yu)U^wgfhD(BuzqQT^@cFPCfT_1M{Ft3;tYWE3Wk{`g!zE{vakplyDRGa! zyvW?la|jBMXrufwC-&vQi=Yp66>GamkoM8SntDwKQ1KlbDsn90i8_7{9(U>yF%oe9 zsO*rSW+Oc`7EE9alh^=-x&dWZ^3Pz(qo^eKJz!=*SAQC{e?vt|dLDC0k*(~8Y88>` z6vi)HlW$$_x$m&HW^_oJ@rlA(`MWg2qM+rpT4PM6$?5w>NQHYXV##{^Ge-dLr~sxT z>=qw~*s1aHok-eW3vid2czAVCkzA*F$)Jlg+m;6iH>aq)?BiZgLUvYuGRs0M&U$$PHX^emF1==v#8;9bF`Dwl2n-shB^PNcH9!< zmBhgdZ;{Fr>KhUCSnT@QHLDO(_%?q^_5DDx0gqhUxOH+%NMhdlA>-d^x5ljP2QR0> z>7y`EKKs6DT+6Li2C)`<;fTwX7dfjUZEnh)gr1qkS2$a)aJfYjM>Q~k-DUW*C3_%( zaA^<3Zj1ECv0ObEFX9V@);^cpK9jVoa3(99x|O&`Dr+tn|aOO10)OsqCleMjUe8Cqml+#K^WXNE1oDvpSPvFV@d5O5fxBF0XNt(l{xR5(#h=egeQJv8X+1 zcypoe4BDPB)FW{OA^b)kuWwH+w7m06BLn0d*rxdE-}!z!jfWqFIlwtB63QZq9?mt0 zlH9#3SITF9wB?FTA@F}n9*-^!`wD|t;L72#!>ae(UN?t|jKh+}P@W%kt?BC*yzO*? zQdl1K-I>so{df^+(-I(@qy(}=73Fd1ai-mR|SPUf$Pv#Pbto zx;0}(fK6e9T+2uQh2pXQp7J7n2B)23OSfW@qA3s>UhOasR&|MXdJbIO_4Klv@YBM2 zpK?4l|E#%saD`ca!O%w=5MrkCVz!Zp7ljq31dF=Wqey-?F0FPk1sfpYeEj2DIacA& zUPWqfQ@0lh@1>^UgeiTr;Q8xFr*WG6dBw74S`uS5T$*>2+@PonHpS_LpjKMmUjKK& zbOX|=7oX%{T~)E?Y#VU5<|$(J5o(Swk3E7LYJop@U>{*nqtQ;_QR42nIsWj}$VZtD zR;1sciWol6Gwh=0X{K4RzF`-cRICB^UEjI?P960V5`iRv^_-%;pLA^?{M&9?A{6se zM{-BR7X9{-rMnyRMYg&n1@fVYaP4KZUPr7U6y`qJrQF2jks*Mi>P3^rVo_I6>BB(n z*ZC9iHSTs2%Oc?XeJ8xy`TWKqsnifm*|;Ia{J6eKZH%4Z;J2M<*`yBUah$QO_gn0O zZ5+og+YprOy@?=uqCjiaSXgBxR9L3hyzA{R?4I{7jGh?`L4jhO1(yd-DHqpwB4bp8 zU2is`5(oYsK1%?)Xa}l5lj#`AsTxG?rknhpNL2)%(u2&qtE?LDTV6j1WZGOOghAO( zMNPMKAYAvWbzlm=fKZJt@DW|}y@&9_*1Ge-J-6l89uoA)LY#W_VdA_>Lca=QJ2Hdx zYF53sk5|Maz#!eB>slc1`s)^5)xES_m3dKnk$6$#Q~)TqS65IIsAABtSGvM=U+3E6 z^3(ll)!W;Wm6m@MnIn~2m5L!_wz8euW@x<+v|&v16WW5b)E4fx7Z;R203+_$J~=o= ziA-V~g@xpn@GpMdLib`;d`#j%$4u5pDvX^zVYrfe3LK3Tv`*Zd-e;U-Njr~1rOvHu z=#06e-3G{Z?5k{SA~>ox7oJHvg$)f}nirWnEHTdoost`XJqZQjxp@mD*%-W%B!wJ4 zd2YY+aHWG@%hzWE?zdZHgw9tAQ2@MePQRzMN|XxV^M%og06J!=+4ORIL* zilepX^C9dXY^B1n@v-YQk(`-{$)9B18ofpos=yC|Dd}_b6FB_RBQg555u!#Pi|FMM zq5-T$@zP-nXfCM7Rr`1&8EdnxzG-jA(9_ou8T-Nq64cQD3~v?H*|jTjQ`5F(i9eW- zIqIWJTW|iEMSYCuAVk!~M}NjL{ME>5{9dS~AdvEjmULdWD&+q;e74MnXm_~^yZ;<> zGS4y`iwB3j$>@W7B|!8vfxQ;LA~t-amJA%2U1J2?Xz4U?YHynw1b+S%91+wxDjrog zfXgRF4_E@J9u#jPWYC(y3J*$$|2 z`b9xZ(VBj_B>MQ&RrJ;xo0%1j3~2RHFd0pZf?Dk^hA58IX)0KFi%8D4@R)wnJhh1v zibi4;VgTzB2JT|;CnxhqLx~5a)n&;yNxTYlY{YCcWPg#Hv2z@Fr*}4EVcXlWG-7}$ zDLZ0H4A)py>HWT3er#rQHy8X}wY+T{_9q zCH+vnta17@sQ2g<`J{-*Yz*Xs#{#P zG(CIzepzGi+1vNO*IqCv{+9HO`#y{DNub|>8~Z`T@qZfx?}He}ei{K!GGJgh`9<|H E0Q)3&SO5S3 diff --git a/unpacked/jax/output/CommonHTML/config.js b/unpacked/jax/output/CommonHTML/config.js index d9cb893d7..f38f4f737 100644 --- a/unpacked/jax/output/CommonHTML/config.js +++ b/unpacked/jax/output/CommonHTML/config.js @@ -32,7 +32,7 @@ MathJax.OutputJax.CommonHTML = MathJax.OutputJax({ extensionDir: MathJax.OutputJax.extensionDir + "/CommonHTML", autoloadDir: MathJax.OutputJax.directory + "/CommonHTML/autoload", fontDir: MathJax.OutputJax.directory + "/CommonHTML/fonts", // fontname added later - webfontDir: MathJax.OutputJax.fontDir + "/CommonHTML", // fontname added later + webfontDir: MathJax.OutputJax.fontDir + "/HTML-CSS", // fontname added later config: { matchFontHeight: true, // try to match math font height to surrounding font? diff --git a/unpacked/jax/output/CommonHTML/fonts/TeX/fontdata.js b/unpacked/jax/output/CommonHTML/fonts/TeX/fontdata.js index 0feb58383..11f74e7e4 100644 --- a/unpacked/jax/output/CommonHTML/fonts/TeX/fontdata.js +++ b/unpacked/jax/output/CommonHTML/fonts/TeX/fontdata.js @@ -1632,7 +1632,9 @@ }; (function () { var STYLES = CHTML.config.styles, FONTS = CHTML.FONTDATA.FONTS; - var DIR = AJAX.fileURL(CHTML.webfontDir+"/TeX/otf"); + var OTFDIR = AJAX.fileURL(CHTML.webfontDir+"/TeX/otf"), + EOTDIR = AJAX.fileURL(CHTML.webfontDir+"/TeX/eot"), + WOFFDIR = AJAX.fileURL(CHTML.webfontDir+"/TeX/woff"); var faces = []; for (var name in FONTS) {if (FONTS.hasOwnProperty(name)) { var family = CHTML.FONTDATA.familyName(name), FAMILY = family; @@ -1661,9 +1663,15 @@ } // // The web font, if no local font found - // ### FIXME: add more formats to src // - font = {"font-family":family+"w", src:"url('"+DIR+"/"+name+"-"+variant+".otf')"}; + font = {"font-family":family+"w", + src: [ +// "url('"+EOTDIR+"/"+name+"-"+variant+".eot?#iefix') format('embedded-opentype')", + "url('"+EOTDIR+"/"+name+"-"+variant+".eot') format('embedded-opentype')", + "url('"+WOFFDIR+"/"+name+"-"+variant+".woff') format('woff')", + "url('"+OTFDIR+"/"+name+"-"+variant+".otf') format('opentype')" + ].join(", ") + }; faces.push(font); // // A class that looks for the local and web fonts From 64ed60ac51150061ae5d745b72ba19f766869c20 Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Fri, 17 Apr 2015 17:22:48 -0400 Subject: [PATCH 140/186] Change how combining characters are handled so that they show up in IE but are still placed properly in Chrome (putting them over a non-breaking space got the baseline wrong in Chrome for some reason, and over a space got the width wrong). --- unpacked/jax/output/CommonHTML/jax.js | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index 8dcd112ca..fd6cb815e 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -113,6 +113,7 @@ "mjx-box": {display:"inline-block"}, "mjx-block": {display:"block"}, + "mjx-span": {display:"span"}, "mjx-char": {display:"block"}, "mjx-itable": {display:"inline-table"}, "mjx-row": {display:"table-row"}, @@ -1758,12 +1759,10 @@ // IE doesn't display combining chararacters unless they combine with // something, so put them over a space and remove the space's width // - var char = node.firstChild.textContent; - node.firstChild.innerHTML = "\u00A0" + char; - var font = this.CHTMLvariant.cache[char.charCodeAt(0)][0].font; - var space = font[0xA0] || font[0x20]; - var w = space[2] / (space.c ? 1 : 1000); - node.firstChild.style.marginLeft = CHTML.Em(-w); + node = node.firstChild; + var char = node.textContent; + var space = HTML.Element("mjx-span",{style:{width:".25em","margin-left":"-.25em"}}); + node.insertBefore(space,node.firstChild); }, CHTMLcenterOp: function (node) { var bbox = this.CHTML; From c2c33b634e63efcd75ae554a2b711fae6be3882e Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Sat, 18 Apr 2015 06:57:27 -0400 Subject: [PATCH 141/186] Fix @font-face to work with IE8. --- unpacked/jax/output/CommonHTML/fonts/TeX/fontdata.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/unpacked/jax/output/CommonHTML/fonts/TeX/fontdata.js b/unpacked/jax/output/CommonHTML/fonts/TeX/fontdata.js index 11f74e7e4..9fdcf3c98 100644 --- a/unpacked/jax/output/CommonHTML/fonts/TeX/fontdata.js +++ b/unpacked/jax/output/CommonHTML/fonts/TeX/fontdata.js @@ -1664,10 +1664,10 @@ // // The web font, if no local font found // - font = {"font-family":family+"w", - src: [ -// "url('"+EOTDIR+"/"+name+"-"+variant+".eot?#iefix') format('embedded-opentype')", - "url('"+EOTDIR+"/"+name+"-"+variant+".eot') format('embedded-opentype')", + font = { + "font-family": family+"w", + "src /*1*/": "url('"+EOTDIR+"/"+name+"-"+variant+".eot')", // for IE8 + "src /*2*/": [ "url('"+WOFFDIR+"/"+name+"-"+variant+".woff') format('woff')", "url('"+OTFDIR+"/"+name+"-"+variant+".otf') format('opentype')" ].join(", ") From d3ccf6fe89e99019d6a14abf6cc70416609daa12 Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Sat, 18 Apr 2015 10:42:21 -0400 Subject: [PATCH 142/186] Fix transforms so they work for IE9. --- unpacked/jax/output/CommonHTML/jax.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index fd6cb815e..03639fd5a 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -1168,9 +1168,10 @@ Transform: function (node,trans,origin) { var style = node.style; - style.transform = style.WebkitTransform = style.MozTransform = trans; + style.transform = style.WebkitTransform = style.MozTransform = style["-ms-transform"] = trans; if (origin) - style.transformOrigin = style.WebkitTransformOrigin = style.MozTransformOrigin = origin; + style.transformOrigin = style.WebkitTransformOrigin = + style.MozTransformOrigin = style["-ms-transform-origin"] = origin; }, /********************************************************/ From a33c5d14371b1332ea06759ef71d1174ef505560 Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Mon, 13 Jul 2015 14:10:56 -0400 Subject: [PATCH 143/186] Don't allow labels to overlap equations in CommonHTML mode. Because CommonHTML allows tables that fill 100% of the width, making this work for centered equations is sub-optimal as we have to leave space on both sides of the equation to balance the label width. Issue #596. --- .../jax/output/CommonHTML/autoload/mtable.js | 43 ++++++++++++------- unpacked/jax/output/CommonHTML/jax.js | 2 +- 2 files changed, 29 insertions(+), 16 deletions(-) diff --git a/unpacked/jax/output/CommonHTML/autoload/mtable.js b/unpacked/jax/output/CommonHTML/autoload/mtable.js index 606f0866e..dd1362e99 100644 --- a/unpacked/jax/output/CommonHTML/autoload/mtable.js +++ b/unpacked/jax/output/CommonHTML/autoload/mtable.js @@ -435,13 +435,21 @@ MathJax.Hub.Register.StartupHook("CommonHTML Jax Ready",function () { if (indent.indentshiftfirst !== MML.INDENTSHIFT.INDENTSHIFT) indent.indentshift = indent.indentshiftfirst; if (indent.indentshift === "auto") indent.indentshift = "0"; var shift = CHTML.length2em(indent.indentshift,CHTML.cwidth); - var labelshift = CHTML.length2em(values.minlabelspacing,CHTML.cwidth); - if (this.displayIndent !== "0") { - var dIndent = CHTML.length2em(CONFIG.displayIndent,CHTML.cwidth); - shift += (indent.indentAlign === MML.INDENTALIGN.RIGHT ? -dIndent: dIndent); + var labelspace = CHTML.length2em(values.minlabelspacing,this.defaults.minlabelspacing); + var labelW = labelspace + state.W[LABEL], labelshift = 0, tw = state.R; + var dIndent = CHTML.length2em(CONFIG.displayIndent,CHTML.cwidth); + var s = (state.CALIGN[LABEL] === MML.INDENTALIGN.RIGHT ? -1 : 1); + if (indent.indentalign === MML.INDENTALIGN.CENTER) { + tw += 2 * (labelW - s*(shift + dIndent)); + shift += dIndent; + } else if (state.CALIGN[LABEL] === indent.indentalign) { + if (dIndent < 0) {labelshift = s*dIndent; dIndent = 0} + shift += s*dIndent; if (labelW > s*shift) shift = s*labelW; shift += labelshift; + shift *= s; tw += shift; + } else { + tw += labelW - s*shift + dIndent; + shift -= s*dIndent; shift *= -s; } - if (indent.indentalign === MML.INDENTALIGN.CENTER) shift *= 2; - var margin = "margin"+(indent.indentalign === MML.INDENTALIGN.RIGHT ? "Right" : "Left"); // // Create boxes for table and labels // @@ -452,16 +460,25 @@ MathJax.Hub.Register.StartupHook("CommonHTML Jax Ready",function () { table.style.display = "inline-table"; if (!table.style.width) table.style.width = "auto"; labels.style.verticalAlign = "top"; node.style.verticalAlign = ""; - if (shift) table.style[margin] = CHTML.Em(shift); + if (shift) { + if (indent.indentalign === MML.INDENTALIGN.CENTER) { + table.style.marginLeft = CHTML.Em(shift); + table.style.marginRight = CHTML.Em(-shift); + } else { + var margin = "margin" + (indent.indentalign === MML.INDENTALIGN.RIGHT ? "Right" : "Left"); + table.style[margin] = CHTML.Em(shift); + } + } // // Add labels on correct side // if (state.CALIGN[LABEL] === "left") { node.insertBefore(labels,box); - labels.style.marginRight = CHTML.Em(-state.W[LABEL]); + labels.style.marginRight = CHTML.Em(-state.W[LABEL]-labelshift); + if (labelshift) labels.style.marginLeft = CHTML.Em(labelshift); } else { node.appendChild(labels); - labels.style.marginLeft = CHTML.Em(-state.W[LABEL]); + labels.style.marginLeft = CHTML.Em(-state.W[LABEL]+labelshift); } // // Vertically align the labels with their rows @@ -483,14 +500,10 @@ MathJax.Hub.Register.StartupHook("CommonHTML Jax Ready",function () { T += RSPACE[i]; } // - // Propagage full-width equations, and reserve - // room for equation plus label and minlabelspacing + // Propagate full-width equations, and reserve room for equation plus label // node.style.width = this.CHTML.pwidth = "100%"; - var min = CHTML.length2em(values.minlabelspacing,this.defaults.minlabelspacing); - var w = state.R + state.W[LABEL] + min; - if (indent.indentalign === MML.INDENTALIGN.CENTER) w += state.W[LABEL] + min; - this.CHTML.mwidth = CHTML.Em(w); + this.CHTML.mwidth = CHTML.Em(tw); } }); diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index 03639fd5a..49448536d 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -1637,7 +1637,7 @@ shift *= CHTML.em/CHTML.outerEm; HUB.Insert(styles,({ left: {marginLeft: CHTML.Em(shift)}, - right: {marginLeft: CHTML.Em(Math.max(0,this.CHTML.w+shift)), marginRight: CHTML.Em(-shift)}, + right: {marginRight: CHTML.Em(-shift)}, center: {marginLeft: CHTML.Em(shift), marginRight: CHTML.Em(-shift)} })[values.indentalign]); } From 26ebc33c37762f625d07c11f6c2260d0043f7ed6 Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Mon, 20 Jul 2015 15:10:41 -0400 Subject: [PATCH 144/186] Treat missing super- or subscript as when not properly paired in multiscripts. (Issue 1188) --- unpacked/jax/output/CommonHTML/autoload/mmultiscripts.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/unpacked/jax/output/CommonHTML/autoload/mmultiscripts.js b/unpacked/jax/output/CommonHTML/autoload/mmultiscripts.js index c49710e38..fcfda3b6f 100644 --- a/unpacked/jax/output/CommonHTML/autoload/mmultiscripts.js +++ b/unpacked/jax/output/CommonHTML/autoload/mmultiscripts.js @@ -175,7 +175,7 @@ MathJax.Hub.Register.StartupHook("CommonHTML Jax Ready",function () { // CHTMLaddScript: function (type,state) { var BOX, BBOX, data = this.data[state.i]; - if (data && data.type !== "none") { + if (data && data.type !== "none" && data.type !== "mprescripts") { BOX = state.BOX[type]; if (!BOX) { BOX = state.BOX[type] = HTML.Element("mjx-"+type); @@ -188,7 +188,7 @@ MathJax.Hub.Register.StartupHook("CommonHTML Jax Ready",function () { data.toCommonHTML(BOX); BBOX = data.CHTML; } - state.i++; + if (data && data.type !== "mprescripts") state.i++; return BBOX; }, // From ead271e0e6dfae6940d309d8521e08e31278858b Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Sun, 2 Aug 2015 15:14:14 -0400 Subject: [PATCH 145/186] Change fonts from having ascent=descent to having midpoint at .25em, and adjust font handling to do offsets from that. --- .../HTML-CSS/TeX/eot/MathJax_AMS-Regular.eot | Bin 60348 -> 60348 bytes .../TeX/eot/MathJax_Caligraphic-Bold.eot | Bin 12468 -> 12468 bytes .../TeX/eot/MathJax_Caligraphic-Regular.eot | Bin 12332 -> 12332 bytes .../HTML-CSS/TeX/eot/MathJax_Fraktur-Bold.eot | Bin 26108 -> 26108 bytes .../TeX/eot/MathJax_Fraktur-Regular.eot | Bin 25500 -> 25500 bytes fonts/HTML-CSS/TeX/eot/MathJax_Main-Bold.eot | Bin 48564 -> 48564 bytes .../HTML-CSS/TeX/eot/MathJax_Main-Italic.eot | Bin 28828 -> 28828 bytes .../HTML-CSS/TeX/eot/MathJax_Main-Regular.eot | Bin 49676 -> 49676 bytes .../TeX/eot/MathJax_Math-BoldItalic.eot | Bin 26322 -> 26322 bytes .../HTML-CSS/TeX/eot/MathJax_Math-Italic.eot | Bin 26768 -> 26768 bytes .../HTML-CSS/TeX/eot/MathJax_Math-Regular.eot | Bin 26704 -> 26704 bytes .../TeX/eot/MathJax_SansSerif-Bold.eot | Bin 21928 -> 21928 bytes .../TeX/eot/MathJax_SansSerif-Italic.eot | Bin 19420 -> 19420 bytes .../TeX/eot/MathJax_SansSerif-Regular.eot | Bin 16652 -> 16652 bytes .../TeX/eot/MathJax_Script-Regular.eot | Bin 14596 -> 14596 bytes .../TeX/eot/MathJax_Size1-Regular.eot | Bin 10364 -> 10364 bytes .../TeX/eot/MathJax_Size2-Regular.eot | Bin 9668 -> 9668 bytes .../TeX/eot/MathJax_Size3-Regular.eot | Bin 5720 -> 5720 bytes .../TeX/eot/MathJax_Size4-Regular.eot | Bin 8476 -> 8476 bytes .../TeX/eot/MathJax_Typewriter-Regular.eot | Bin 24652 -> 24652 bytes .../HTML-CSS/TeX/otf/MathJax_AMS-Regular.otf | Bin 58656 -> 58528 bytes .../TeX/otf/MathJax_Caligraphic-Bold.otf | Bin 12348 -> 12348 bytes .../TeX/otf/MathJax_Caligraphic-Regular.otf | Bin 12024 -> 12024 bytes .../HTML-CSS/TeX/otf/MathJax_Fraktur-Bold.otf | Bin 26900 -> 26900 bytes .../TeX/otf/MathJax_Fraktur-Regular.otf | Bin 25876 -> 25876 bytes fonts/HTML-CSS/TeX/otf/MathJax_Main-Bold.otf | Bin 46804 -> 46800 bytes .../HTML-CSS/TeX/otf/MathJax_Main-Italic.otf | Bin 28156 -> 28224 bytes .../HTML-CSS/TeX/otf/MathJax_Main-Regular.otf | Bin 47640 -> 47636 bytes .../TeX/otf/MathJax_Math-BoldItalic.otf | Bin 27096 -> 27096 bytes .../HTML-CSS/TeX/otf/MathJax_Math-Italic.otf | Bin 26388 -> 26384 bytes .../HTML-CSS/TeX/otf/MathJax_Math-Regular.otf | Bin 26332 -> 26328 bytes .../TeX/otf/MathJax_SansSerif-Bold.otf | Bin 22160 -> 22156 bytes .../TeX/otf/MathJax_SansSerif-Italic.otf | Bin 18576 -> 18572 bytes .../TeX/otf/MathJax_SansSerif-Regular.otf | Bin 15924 -> 15920 bytes .../TeX/otf/MathJax_Script-Regular.otf | Bin 14616 -> 14616 bytes .../TeX/otf/MathJax_Size1-Regular.otf | Bin 8252 -> 8252 bytes .../TeX/otf/MathJax_Size2-Regular.otf | Bin 7608 -> 7608 bytes .../TeX/otf/MathJax_Size3-Regular.otf | Bin 4712 -> 4712 bytes .../TeX/otf/MathJax_Size4-Regular.otf | Bin 7364 -> 7364 bytes .../TeX/otf/MathJax_Typewriter-Regular.otf | Bin 24184 -> 24184 bytes .../TeX/woff/MathJax_AMS-Regular.woff | Bin 40824 -> 40816 bytes .../TeX/woff/MathJax_Caligraphic-Bold.woff | Bin 9908 -> 9908 bytes .../TeX/woff/MathJax_Caligraphic-Regular.woff | Bin 9624 -> 9624 bytes .../TeX/woff/MathJax_Fraktur-Bold.woff | Bin 22344 -> 22340 bytes .../TeX/woff/MathJax_Fraktur-Regular.woff | Bin 21492 -> 21492 bytes .../HTML-CSS/TeX/woff/MathJax_Main-Bold.woff | Bin 34460 -> 34456 bytes .../TeX/woff/MathJax_Main-Italic.woff | Bin 20836 -> 20812 bytes .../TeX/woff/MathJax_Main-Regular.woff | Bin 34168 -> 34164 bytes .../TeX/woff/MathJax_Math-BoldItalic.woff | Bin 19780 -> 19776 bytes .../TeX/woff/MathJax_Math-Italic.woff | Bin 19364 -> 19356 bytes .../TeX/woff/MathJax_Math-Regular.woff | Bin 19304 -> 19296 bytes .../TeX/woff/MathJax_SansSerif-Bold.woff | Bin 15940 -> 15932 bytes .../TeX/woff/MathJax_SansSerif-Italic.woff | Bin 14624 -> 14624 bytes .../TeX/woff/MathJax_SansSerif-Regular.woff | Bin 12672 -> 12668 bytes .../TeX/woff/MathJax_Script-Regular.woff | Bin 11864 -> 11864 bytes .../TeX/woff/MathJax_Size1-Regular.woff | Bin 5796 -> 5792 bytes .../TeX/woff/MathJax_Size2-Regular.woff | Bin 5476 -> 5476 bytes .../TeX/woff/MathJax_Size3-Regular.woff | Bin 3260 -> 3256 bytes .../TeX/woff/MathJax_Size4-Regular.woff | Bin 5164 -> 5160 bytes .../TeX/woff/MathJax_Typewriter-Regular.woff | Bin 17620 -> 17620 bytes unpacked/jax/output/CommonHTML/jax.js | 24 ++++++++++-------- 61 files changed, 13 insertions(+), 11 deletions(-) diff --git a/fonts/HTML-CSS/TeX/eot/MathJax_AMS-Regular.eot b/fonts/HTML-CSS/TeX/eot/MathJax_AMS-Regular.eot index 4d6c2be82d768540ead3aea5cc81551713abc565..20d10b78b6e7cdb2ef2b6ee27a3818c743ece645 100644 GIT binary patch delta 134 zcmdmUoq5l7<_R{;em7rEw4ch7D)pgb;td%V_o9e96Mw{rFuka}%)r3N!@$5`mXVQ~ z$l}iadU6J1q4~?3e)0S^Um3WWUjXG8Ejfr0t; cKhDVlOidjBI2odtUo(E+Jc~*GB{NVb0PXlKH2?qr delta 134 zcmdmUoq5l7<_R{;BGUpU+D~Ok>Ae&`@rDeGXIj{ci9cdQ7|+=@GB7amFfcHfWn`o# zvbeK;pPa#1XdW<4B%a^qD+4$43!ogs#jw8)F#6loe}fsu!Sfx#>zBQ=rZ zGBeNQ8pcBN#X)@W{5D@1xS3x7=)Wq>;2SXII2eZfKbxh29%s`z03P~qy diff --git a/fonts/HTML-CSS/TeX/eot/MathJax_Caligraphic-Regular.eot b/fonts/HTML-CSS/TeX/eot/MathJax_Caligraphic-Regular.eot index 3bd2636aed234fbf0779510ca1a6f7229447d1a6..1c396b14fc233a1acbf01be1d47cd65cbc756860 100644 GIT binary patch delta 135 zcmZ3JuqI)G4a-Em1edwI{Lx#omXoT-%3C0)^cALs?3=E7s3=9lr85yaG z>_?gAPVQhVu(+4TIx(K#<|_j?^9!IP!^J1kSupzlqyHK#h0LNrJ_iF6NE8Sd85o#F c|J|Q#z|_R??><8mvnZqD=3Pwry39bG0L=y|ApigX delta 135 zcmZ3JuqI)G4NL5yGj}ICY+*_1y%az3hYXAR&alYI5{xk-Y)ZC^7#J9N7#JALGBQ#V z*^e@;oZP`!U~%`%q1bqSo39Mq%rAhF3>U-xI>6}vkN#`06f%nf`5X*PAWoNm%0swGfD-Hkv diff --git a/fonts/HTML-CSS/TeX/eot/MathJax_Fraktur-Bold.eot b/fonts/HTML-CSS/TeX/eot/MathJax_Fraktur-Bold.eot index 07e77dcbf8e5749c30e7d3bb64b4321d76886ba6..c527603538c21426d7f9741611424b72865adda1 100644 GIT binary patch delta 134 zcmex!n(@zR#tAme6}=ZG+RtQ3mHN;*@s13OTW6BK}2?5ivHF)%RlFfcHfWn`o# zaxk%&P0nE~G{4YW5zlY)m4Tc21yGLR;uGmC82$g{e?^uXOivgX88{f2K%zjv$iTq# cq=?T-5&GVR|lbL}!0e2lKqW}N^ diff --git a/fonts/HTML-CSS/TeX/eot/MathJax_Fraktur-Regular.eot b/fonts/HTML-CSS/TeX/eot/MathJax_Fraktur-Regular.eot index 5512f3bc08af91300b76391abc118787534528a2..da1e43999d5242273cf9b688a9a7e4c8394341dc 100644 GIT binary patch delta 137 zcmbPpoN>-^#tAkox_=WRCps))NtOE0Iq`)Ii|eGw%ab`6V?@~ARqkbAVB}$7U@*(b zNKIsSW3HZD!B}7snfO;Xp5Nvx12^*vpd`b^C(>Ck`v3F)3M_I=Pk?+51}2aw5HK<@ dFg^J%Fj;}AiQ~TjLljW@!{${??-Q7TIssH4E2;nh delta 137 zcmbPpoN>-^#tAkopLd>!nCP&CC8hUL!o(LcEbeXL_a}2O#)z<9vCU>+VB}$7U@*(b zNKIsSV{D&X!B}7saboA^cz&C&4BX5wfRYRs!~QzL=>O0EE3n8hJpuAL7??n!K)}er f!1Uy=%wz?oCXT-{3{gx^n4WB2#q>Ub8K@Hg^i?g9 diff --git a/fonts/HTML-CSS/TeX/eot/MathJax_Main-Bold.eot b/fonts/HTML-CSS/TeX/eot/MathJax_Main-Bold.eot index 75977a39c881138180454b172ed80db8f22969bf..c60ab057ee05efa7e1953738dc19d8da25136235 100644 GIT binary patch delta 115 zcmdn;n`z5$rU^DI3v@%)OmygBNtOE0Iq`xFi-%=W(ZmliA{>%c=?n~vJPZsBW*Hf& ziJZ>t9+MLo3uM-W=q`xoxB1Gz&HMr=$#C(BbT*8h{Dx7A>7VUn4yGoKf3^%!%-b0c OZ=S>?znl4qbQS>ies3}fzs*+$Zsr$2NrsDIe;r};~&TlG1xAVd4!L7Wd5XITL@xh_FiA#xgK4@-Q$km}O+7 zCbCUsWSE@6SYYw!x3_mZzs*+$Zsr$2NrsDIf1P0Tzi0p1SW=kYF)%T305JqGGB7Z` e`zthAfT@Y&uMk5N(>tbjn`bfo&t(q#>j(gd1T3!r diff --git a/fonts/HTML-CSS/TeX/eot/MathJax_Main-Regular.eot b/fonts/HTML-CSS/TeX/eot/MathJax_Main-Regular.eot index cfc5f0b74a7e2ab817049cda647ffa93ff2140cb..db956f222b7ceb69956c981a4675cd32a583073d 100644 GIT binary patch delta 136 zcmeBaVeV;Ro?yfB+e0;VqQeZ9RH+YL6Yt2dxGjv*nfND0guS#%pMimqhk=2?EF&W| zkt3IF`s5tO0*h2tkKgh9HeVUInO^`U87@AN&W6!{8~=S^=VopJ@;MloK%zjv$iTqd d@~>dB2vZZszXFCR<`%{Yo98iQ?`H<;1OTB@DYF0o delta 136 zcmeBaVeV;Ro?ydrkhLdeqQeZ9l-^5;6Yt2dcubA3nD{3~ge}_kE&~H24+8^(Sw==` zB1bOE;>kIT1r{kitOw)yZN4&aGrs^zGF%M%>jb0!Hvap-&duBcrY${^_ delta 137 zcmca~mhsYA#tAkoUY}k#PjpzulG1xAapEf(7LUvbhsj)wF(PbrwrLCuj64hs3}zV_ zsfq0O7%e7OF&0=jzxd=8&u{aUft&dSP?F(d*k30Y{r}~E4VJ@9R~eWYI2f2fqCmjN gz`%6%ul8gmrY4TR+6+-lSDCJEUc;oE!VJ_20HwGrPyhe` diff --git a/fonts/HTML-CSS/TeX/eot/MathJax_Math-Italic.eot b/fonts/HTML-CSS/TeX/eot/MathJax_Math-Italic.eot index 65971d0ccabe3b1ea8ed0a48271bb5398b28147f..4e62617264fe7a8b31f253b02328b7c8644cb4ad 100644 GIT binary patch delta 137 zcmbPmk#PbL*|6+C)a5_XVG2vC)Q9egH)L2`O(WM${1GFfyU4{)iD_J!%`rz`)4Ez`$UZk&&9n zF2}HHat338h2Qu3)_8uKuMFJGFMyH^7sLKK!|4Av|EsY`Go58%V&DK`2w-GjU^@HP bc(MRfBPWn%h+;a+bawMBrq8L&VSk+fvB)hW diff --git a/fonts/HTML-CSS/TeX/eot/MathJax_Math-Regular.eot b/fonts/HTML-CSS/TeX/eot/MathJax_Math-Regular.eot index d8f07dd8178e755951c9bb81fad176d82cc1ad0b..c09d4bef737db3ea972f5eeb55f05059b3185edd 100644 GIT binary patch delta 135 zcmca`f$_ox#tAme91gc9+RtQ3mHN;<@s13Ot7+u(iGN~5*zQ(tU|?Y6VPIe|%g9Jg zWS3`}GdYK`(EPRoM?AmHR|an87eG0Ni%+C;VD$f+|J7Kena%?F91Kh#Q6OMsU|>4; bUv07oQzIvkW{6@s$8c-&Jf`)j%s{OGCKoG9 delta 135 zcmca`f$_ox#tAmeXa2ZPw4ce6(t9as;vE?lclGek6aU1BupYLJV_;z9VPIe|%g9Jg zWS3)DIXQ>1(A@pcnRtGiuMFJGFMx6k7sLKK!|4Av|EsY`Go1zUIT)BgqCmjNz`%6& bukmCNrbbR6%@D diff --git a/fonts/HTML-CSS/TeX/eot/MathJax_SansSerif-Bold.eot b/fonts/HTML-CSS/TeX/eot/MathJax_SansSerif-Bold.eot index 03022bfcfd831abb84c39eabfcacfdf9fa59590f..ad6c7a04f56ecc1ce240d256e006cbc6f920c849 100644 GIT binary patch delta 137 zcmZ3nnsLQy#tAme&--Uhv|p%_D)pg!uizi7Z{)Tn z@y28p#uyRS=*rCu42(QL3A2oh)I`=j%!?VF>3Z}XLboB0J$j^W}H>0B5+ giAjp-Kigy(rY4U6Yz$FM?-+hAjT1z!0*Bfq_BB-Nn_7VHE=#kUs~=SMU$kH}Y5z z|70=?V~hxkqis9`10xSm!Ym^rHIa1>kOkO gF-bA~6`Cx=)Wq>uh#`vU9n-tb%b5NLF$2{A0EDb56aWAK diff --git a/fonts/HTML-CSS/TeX/eot/MathJax_SansSerif-Italic.eot b/fonts/HTML-CSS/TeX/eot/MathJax_SansSerif-Italic.eot index 74fd4d916358a4fb72b7a6096d5878012a0f863d..c4bfefbcc741b6c772266a89b1a708de426cedde 100644 GIT binary patch delta 137 zcmcaJo$=0e#tAko@3%^)OmtYmk}CC~XW|&8F(Rx_D>pMRF!C@kFqmaz zq$aYtGHsY#!&qREBE9u}JipCX25#mTKuLy+Po#5U^uJ^O*;q`N-Z3ySZ~!p`FfuSO cz5CBLS%s;I<3Afi6j1ut=5tr6r7!j7!w($%Mj64hs3}zV_ zsflc^40|TmFcw%OHx=!U=ePOFz|H&uD9La!?5{J7{&(y@8;c3kI|e2O4j_gAMg|6^ dcYlQ@t1vZj{1sw|VtU8)Zu2@OZBJ&PP5?@JD4Ke>UiP+H&hMm)dGR|an87eG0Ni(!9VVDw}jCMl-BLX$O^nmGOnF+?%FV|urF M6H~YybJ$;J00w^~0{{R3 diff --git a/fonts/HTML-CSS/TeX/eot/MathJax_Script-Regular.eot b/fonts/HTML-CSS/TeX/eot/MathJax_Script-Regular.eot index 0fea4171f8cb068487930e141b4e44f726744c8d..4f5c7042fd068bfc650646f1aa56a156682eec42 100644 GIT binary patch delta 141 zcmZoEYAKpv!_scDdE!Ke1uCghA9@%VEF>5h7-ZaCT-_M_8Q2&Y%zps+3jV?RMs89O zXD72T#)z;Vs7zyEVB`Txm}O+7CUPV(zMoveSRgZTvq^hAzs*+$Zsr$2NrsD0r1N0( jBqj+KX1#yMCd)82aDf;MQOtUbR-2bGMVm1{k(Mfdq7|(C>m4Tc21yGXV;uGmS7(Mw9qZHG>MUy3%nmGO~Vu)f6VvO6o Li0Qg2Gf)u#0wO1H delta 113 zcmewp@F!q`4a;7}6WS9U=CGvnUP_+$K!(M&Gpu?NV~hyPX4^yt21XtR1_rZ?jMPN7 z$qdgX7cdscXrEx*8_#d^m4Tc21yGXVV%T377(Mw9qZHGhb(1BSnmGQfV~Ao7Vh-B8 Li0Qg2Gf)u#;JPPY diff --git a/fonts/HTML-CSS/TeX/eot/MathJax_Size2-Regular.eot b/fonts/HTML-CSS/TeX/eot/MathJax_Size2-Regular.eot index 97a4615650a20f106eb592f5d75b6e569bf89240..8b375ab00d94acb648330ae5dc9007ed28e93cf9 100644 GIT binary patch delta 113 zcmX@&eZ+f$4f8|Gl@smfvZP9V=$rUJhQ)nqq|PM97!kG|m0KAY73kSH`46KcbI_kflO>oMIe|1o6l)N3+~!40 J^2*FWWdO$fCMW;^ delta 113 zcmX@&eZ+f$4fFbM(i83HvZVB0N}l*YhQ+fr++q@Aj0o#I+js^BMji$R2D6Ne)I`qe z{}Uz`FcwNne_J2VZ}XLboB0J$j^Se1Ul$lX`46KcbHJ|+lO>oMIe|1o6l(x$z~)6v J^2*FWWdQ7LCnNv> diff --git a/fonts/HTML-CSS/TeX/eot/MathJax_Size3-Regular.eot b/fonts/HTML-CSS/TeX/eot/MathJax_Size3-Regular.eot index 532852c51f7c1854b3344f47c3dbbb9596759792..4a8c9640eba7838453b27ca5dc4866bc0982cbfd 100644 GIT binary patch delta 113 zcmcbib34a>@2=bVWSb68TPKJ-m|Aj9I}8ZmnkV~hyXi^}Z`42(Ps3=C!&8L5eE zY>eL~7cdsc4NJM#s_cmlb68S(FC|ZWAj9Hi8Mb^9V~hynIoo6g21XtR1_rZ?jMPLn zHU_521&jqU*{i(DWGq MF>MxR4*Tl@08?ruZvX%Q diff --git a/fonts/HTML-CSS/TeX/eot/MathJax_Size4-Regular.eot b/fonts/HTML-CSS/TeX/eot/MathJax_Size4-Regular.eot index c895cb1e700566a537d787f7d5707d3935d2c434..44ae188b40c69dcfcdf6e0348c7d6fc04289e43d 100644 GIT binary patch delta 113 zcmbQ^G{32V5^9M5m_m4Tc21yGXV;uGn77(Mw9qZHF`xycetO&q`F7^2v&u{_$m Lh^btT8K?*Vq24AZ delta 113 zcmbQ^G{9WTYmt z8!@b!T)TkB7r^Mr i0!)(3H~&jd)?sSo1kwyqOg9;xZr;W;IhOf}bUpyA7Uo3}Adj%5Za0|5CJDn$SQ diff --git a/fonts/HTML-CSS/TeX/otf/MathJax_AMS-Regular.otf b/fonts/HTML-CSS/TeX/otf/MathJax_AMS-Regular.otf index 88b390027dbda45acd7996c7c24094ddd9f3a22f..ac9a2cdc8eadabcf8da5956bc562d3e772f8eae8 100644 GIT binary patch delta 559 zcmZ2*ih03F=6e5-5Pt@4h6V;^1_Ng|Hw6yX$G;dDcp?}WE`N1%3-OKLSQEs+@T7%- zfkDRI#np|`h=GNH;Xwe9uizi7Z{%JS@rQwdQ31$LNX|_xI2NTP#=yXShJk@4DX?_bJyR_sK`vnipp-y zIh}hbZ$~~`zF+>0f-{9`h53cEiwuh5igp#V7sr>#mvWTeE;~_nzwCXvK)H7L*$VlJ zWtB3OkyZ6oFRR0G&zXF0iu4qnDc)0prgTl2FlEM+ z(^D=@<(;~Fn(cJO=~~klOn*JYV#b!4dNZfb{5C6T*45cd=B%9SKlj7DY4dFsL@q2_ zoV_$*Y2(r*%S@IXTCTGE?D9LyU$0$#)y= r)YQ%K=i^^@QERTvI!#OCm>3u~UwB}{B694C-b_%iANy(K4-0+(M@#M# delta 582 zcmZ2*l6k=?=6e5-5Pt@4h6V;^1_Ng|H-&)3AxR7jJP`~GS1R1xLVQztFU2!3JY`{E zV32Wladl%fVgRxqTmbSF{Dbw4Jk!EC7#J88fc%8y+{A)oQCeaQ4D4qZ7+A70QWH}c z&)GHt<@NxvSq4ym#hvvlko^USRWfo*I4k~4S2+hX@WaFo8yU{TsP=e%o39Mq%rAfn z7%qnWb%4nZ{&7FB9i z&ab>v%~YLJeX}N}=1%Q|I?cMB_4f6L8&)??ZSrq=*j&}z+cLd1woRt(L%T=EgwAbU zqFvS9*LqTW&HBXpO(!JRPq;MEc+#H9l9P)jpO_*)C2`8UDeI@4n{st3?^NNb(o_AW zhEAO@&2HL(=}V@souND*?%>IqGwD=3bgtJYRDD{sngy{#^WS z>EmTA%hZ=`U+%hm`HFxQ@hkFHw5^!8if6Uz8mG0}*Bfj|+jwKM$`d{hNWKnZ2&BZmQhom5oc|HU~biW)V4KyXZV9 MHje!?@`uF=0PW25Z~y=R diff --git a/fonts/HTML-CSS/TeX/otf/MathJax_Caligraphic-Bold.otf b/fonts/HTML-CSS/TeX/otf/MathJax_Caligraphic-Bold.otf index 64ef72b3ab55c50acc0e5c9610603c273ff788af..c12bd6f69a469a6b2e9a98d655f0e2ddfe665ad6 100644 GIT binary patch delta 167 zcmdm!uqR=HLP-3^nji)S0|f>K1{rr3S2u=m1{MYe{Rkjm!9Q5v$UQn?6$1mK0+64O zoSRti=+InW1_llTpjc8yYGMk9M3oLuZVwQfWdH>@E;DmYED4aAqUsP3&u{aUft&dS zP>$i^6X{GCJ@J7Q)4w$n|73CeTf-2=?7K1{rr3S2u=m1{MYe{Rkjm!9Q5v$kRV=8v_HQ0+64O zoSRti=+InW1_llTpjc8yYGMl8KigYCxjjH^mH`ytxXdUvu_QpIW2eZfcz&C&4BX5w zfN~5M!~QzJ=!p-cnEvdT_$Q0w&klwtW)EhM&3TNw^hD0sE;Y?5+Kt!v5zmF-{va=H}eai y9K*#Y(pfNi;sYtBfA=T;$>R8TpCO7_lu>bW9%GrV$gwMWGeK&O{WS82sRaO$H!`~b delta 167 zcmewn`y+OOLP$#QrFaGgy*msH3^ML6u5JwB3@kvt2#~MfAFOZWzB8@R>~vocZ>Q`lEm?gPs00b;WZpa2IGi^;^20GWk${7d8cZN4&a zGXvE!FkE~hodu&OK9FMiFEH^>me79zhA5^d3?CF282aOwfo7_1u3+p)7dduCZzf3f Kv7bi%FkJw?&@_wy delta 179 zcmbPoiE+v$#t8}`DZQ5x7#K2sFfcI4xVyNzG4wL9FfgP?0Qn03!TLrXwF#aK42%ju zenN6?V!;&W!qW^4>@R>~vocZ>Q`jcj<^bjP0I^vHP=JGp$zftifXvj3k5c3LZN4&a zGXvE!FkB4#>jLy=me5}rhA5^dOivUT82aOwfo6W%T*26pE^@|p(Rq;S KV?T}jVY&bm$2N)p diff --git a/fonts/HTML-CSS/TeX/otf/MathJax_Fraktur-Regular.otf b/fonts/HTML-CSS/TeX/otf/MathJax_Fraktur-Regular.otf index cc33bd99c2262e84e1b80bcbd4c16b2dcbed9016..e3eac91721e6b1ebcd991b994cfca2553449cfc8 100644 GIT binary patch delta 179 zcmbPoigC&*#t8}`@f&M`85mN2FfcI4xVyNzG4wI8Ffb&C0Qn03!TLt7lOpFZFfb|r z`3cFni3L}f{iZT7aEJiKCS{~1rm(%M+zXW31H@(-Kmm3)=E{jB0WzA)EM4RIZN4&a zGrs`JFme79zhA5^d3?CF282aOwfo4wLT*26pEOP9M-b|3{ KV?T}jVY&c!H#AiM delta 179 zcmbPoigC&*#t8}`DZQ5x7#LE1FfcI4xVyNzG4wI8Ffb&C0Qn03!TLt-ZQ=hJ7#J0R z{DkD(#DXi#ep4A3I7EPAlQL2hQ&_LqW&`E+0I^vHP=MWyv2|iefQ+0K&&POvo39Mq z%rAg)3>U-xI>P9Q52Tp>%1r!|CG=N@A&Th<(-Q>-hWL(MQ31$LNX|_x@Zg%ZlYxPK0|Nt#RYq!J z3WsD>I#6y85SwKH1vs7A-GJ;bK&+CHTf$kP6soZRXrRT!4jY-y%*p)m{5D@1xS3x7 z6);?UBApGRCq9s3`e!@wPZq~NTZSm+?Tm*v=P`cbVw(MTa}v)-j`~-ux~yibOW1_j zzOq-cKVtvM!O0=Wv5J$C^BC76ZW$gPo;SR$eDVBd{Qms=1mp#b1ttkP3AG3-3f~tw zA?hu9S1d$4Q2d63ti*iDK*<$S;Zl#Jdu3!~z2*GnqvbCu#4DUvT%;7DbY8hcd5-d8 z<&(;{m7gpBR5_#?r}|25YrT5B`ZLWmEnclOt^3-I+Glk-biV7>>FMe1(sws7G+1Yt zX?WMD$ynNWhe@QVr)jvEn^}-qs9CPrQL`&%@6Bt>`z$OhmRiPG@mVQY8Cf}61zV+B zRax~|Ew|cgb<*mt)kkYaYhi0`YkTV`>vHSo*1v5mZKm3Mv)yK=WB0_q-pYZ&;jrUM zr|r(~oj*B$b^hV}+xedhqYI0Rkc)~-jZ3S`5|>S`i`=c;LjA2~LNBoUE8l@d&8RZtWGU`C|6$XLvfbqp<(cJ= zDr_sBRHj!RsgkcMs5(0R1P$N`xqSmrDy0)=)OYPq}kGhV!Q}tf;TN+H|8qyl> zG-@?IZE9<7Y>8}@Y2Dfu+rGAgvm>J8eP>r!S$B4iSMU73lzy%LJrmp}Bupru(6+fn zoP(L4@yvJ5?{cTUhkz;O$#bRlZH|-PKW($jrX?&Q$FAtj1SP^_KaKpMi7^WRQcEul delta 835 zcmcccmg&k{rh5O75Pt@4h6V;^1_Ng|HwD)vWv3Vzcz75XmI=7Ih4`lQUP@qK*tUa# zfkDRI#np|`hk=EGVUrAyuizi7Z{($$Fpq(OQ31$LNX|_x@Zg%ZlYxPK0|Nt#RYq!J z3fq4>VW8X|AU4YY3UE5J1_9Y$fLJ9Xw}i7oDO6(t&_J7s9X2x7vVRid`E9;3a5KLE zDqy%6_SX?cPkbQ7^v84JpDd0)o(xgU+nKj-&SU(<#WaU$a}v)-j{5hkMy%GXE7>I2 zezDiFKWG2P!N(!Sv7VES^EB6TZbcqJo{zj;d@20a{2}~@1ylqq1f~nR3v~*s2|p1z zD;gmBNGwu3O#H5dlEf0pFv+!2F;dT^C&?(v2FQiTC&*t@NKv?=xLhex>56it@ip4d)-%@IukT}EX0X{X z&+w5^yRm}tUXwUeKhqd9Z?kZ-D6=B7Q)V~KzL+v0<>WvzcY{+jh5|q1{XSdV2>}hZBzL zoc1_>asKZ7%lWShgA20@n+vClxQnJsqf3{|N|)`f%iZnWligQ&@OkQa{rCRiYvnH* zur|;%@K8`t(EZ>YAswNvVPavI!e>SJL^4I5iZY0@i}H?I7j-mxMof2Xc${;5SVD8c zx5Q6LS;;lYcT#4iu1qURt527zPghFU%n-@2%kauLoOvYcO?GB>dG^PgsGL)|fw{?f zVtLwm>++rQ(+jc+eG3bVG>fJbGZd#57Z*2{2$xJOSyZyMBchavIFI^<$2}L zE1W7`R_0WmtWv2et-4q(S3RkQwMM+=Y^_~wLTy{^&N`+#-@4wq^Y#AqI~z=u8?qZ7 zHtILNYU*xoYl&-BY~9tC)V`^MuOqhOOJ{#qb$3CJfA5mM%zpj;gA=?bq)w=r(7m}u zoP$|V=*)M{?{cTUhkz;J{SA|6OYLJ8zTdDpQhNWi&61lIvxuCrU34Cl6p#Hh@`oi! E02^X58vpTkBXT#`;52Tp>vrYVy#qpnwA&Ti8!>`SGj1M`O;?y<=a$R7mue6Y~xM#&@waiAq zR^N7$-3j|r2TezI$Bj;9PG6lbxIA*5?Y7MAl-pSkCXZ%MZO;tP4W5TRUwY|zb$HG3 zdgdMFUF?0>XSOe+??J!$0h)pOLGr=IAv?o-!z;p@!;eSEMHofgjQAQA6IB}36E*u! zV)x!3u6r5x0s-@0vG1D~@ZL0=d@M6+a<$7jR!uJ9A6lFJT&FVeGJfZ|{@nwJE_dH# zp8U~$_2hXT!IM9G1j=-`_I37kaPa-sY~1jJZv#l-#LJ&9b>CdDn|X4QXEE5c+n#2d zg}fHAFltZU>bH_nXL7v1FQe|{wf=qnOc}GGks@lk@`pto0HkHqzW@LL delta 640 zcmX?bhw;yC#(Mvd5Pt@4h6V;^1_Ng|H-*ctA#)fQxL6n%5>L9hh4`lQUP@qK$bG=T zz#!x9;_Ak*k^v}}eF4Z<@DJ8Ea?cFk!@$6(0OThm=Oz}!JLEbrFt7vVnS?S@6H{2F zZKHv5Ks5|z89)KHsSN*s>@Ps9l95}&S@G3MAsuMohlw3FGP&lGn(_QLUm3WWUjP*_ zTnzi`2%{%HkYf5PH1SUs$6q0aD5iHz?>6T#KICAEZQ2~jb%Ci~(fpuAo8>kuKkI!q z-L`yoDs~s`TOE=ec^xk~1v=}v*tvXnV{%h-({zt>zwgoRam16yQ{L0nv&-{|=MOI@ zuWerEz2&{X`^5Un`u_HB4d@Q64(bmP4P6;_CG38 z-uuIKFXLVyVBRbCee(j|n`TU!T$3-moMYAE68@pRd70}}CO)C>JlDT_0MX^{o5Eiv zdw8s768TcEu zmSYsu=Mr9Ez$Khu2&9dGwDIQfkS&ZL*L~35ED#ooO+{IF3nQBe*LPhplTDEk{Cc8H z42%ro3~>xg84faBVU%RdWn9eol*xgqhN+Wj2h)9KJ!U`VY~~8)9_H1|Z#K7NJYk$% j=@PX$J!>5!69dC$ksJvoku$c7&V%Cd*iR#WSbPEia|PLe diff --git a/fonts/HTML-CSS/TeX/otf/MathJax_Main-Regular.otf b/fonts/HTML-CSS/TeX/otf/MathJax_Main-Regular.otf index 36e52b6cb55072d6ba2b6ab3e2555c68b1f51c09..2059ff6c8dc8a9e1a6fd6b7a985797f87fac57fc 100644 GIT binary patch delta 841 zcmbR7g=xwcrh5O75Pt@4h6V;^1_Ng|H-)V?-W+9M;PGK#Sjph#7UCPfu_lCpVdoD9 z1_l{-7gsmN00tHYhOIz(1_l3MeIvJpQ9w4M0+64OoSRsX*R{`%fr0%20|Sd!MrvXT zduf$EP;L(pn`Hn6IC9yh0@+`HSS2I3gtOw1hpH6Nz?_L4HZmvsr9a2>+k9oIJt6xqC#M}f0Gmvues9yW2dVs>lx z>Fm$h|8Ved2y<-ZRN*|&b&lJM$ADLWcRAkz{s#V8{NDt81QG;x2^I*Q6)q7;5;YTj zBDPaJRia(eL-K-DgLIP&m&{w)F4;G7^X1=X0IJy7rZz4I{BvgF834lj}15;xGv~v$fYp5 zu$|!!;Rho8A|)b!MQx5QkFkwqh+P}!9``ifB;GMTIDTIIu7vbNwZyYYZOL0w&ZWAh zIi;;kzmTDtu|IQTR(e)(*8BRbZ&`n{Pvi*YDCNw~t;ws-yPfwkKP`V#{@;R{g1$n_ zLZ8ADMbSld#al`WOQx1uluj;VEz2*fE$c29DxX)rzWiYMo$?u)yjG=w$GZFtdW)HtPysmZpq>0fhf z^Qso+mcUlI)-7#|+haPkI@Wg@b_I5=>t^mQ@BYzK(DS+XKwo9Q(FE5CUnhQ_G-0yZ zWc$e>lan|96BlRZWjuWSyUFJ7HaET-Z)TpXB0ZVC`*_`&?rx6Bd!?f{OUt~RD{}0L P-b_$}JoeMbAC@oy;b}vR delta 846 zcmbR8g=xkYrh5O75Pt@4h6V;^1_Ng|H-$e(-n?O8;PGK#Sjpn%7UG-Idnu8DVdozP z1_l{-7gsmN00tHYhOGfWzJhZeecOoX2R!%_y;XDUSkYeIe^+)&p$PY~}3s z?6cWlb1-lSaENp4^pgm*RH68;wcdHlZw0t8Y7_6e2kM}rMHoFWK4j8wYHwz0w%R=1 z{E5YW%Nt}aX z4}H%Z&s@&}&tlIq&q~i4&w9^Z&$*tzyx6_=cwO<{;_K#{<-6KX(myfabl|3-mm$}} zoWk~oyM!N!2#S=6{1>%7x;n-&mL+y$oOj&Ic#C+~`0)5e@%s|86SWdACUqt6NV$~i zndX+ZHvLM5X2#*nty$SwRnl$OjawJDum##vTe)>zhGE>^y%d~^BH@(1OADoQKfRmNAYsr+Bn zR`s^Js`^DuOU=nzf!dJTX?0w6C3S7}QuR~ox7Xio5NL>MSlIBU(X4Ss6I+vQWiwNA zV)MEd_Lk6ArPdv7%i9w=^g1?ons$YDZR%$4uI~QRQ_}Oj_efuDzu5%O2|p+Po-}2$ z)@0|&5tGw5{}UHy<`+7A{kzHL?>0BS8*dig-!NH8dNLcw@wzqLa+CK+M>7lGZ`dp@ W^K!1p8QVqYL8I4A4K}CfC diff --git a/fonts/HTML-CSS/TeX/otf/MathJax_Math-BoldItalic.otf b/fonts/HTML-CSS/TeX/otf/MathJax_Math-BoldItalic.otf index 3162d4a1516977196973688d3cd53b960285195e..546495921e036f593a68cc37ac44e83baf506212 100644 GIT binary patch delta 169 zcmca{neoPD#t8}`@f&MG85lD6FfcI4xVyNzF-&A&VPMGM0rD06gY}KvN~1y;7#J0R z{DkD(#Ddq|IVB7X90EYGOBtz&DeN;UcLC)<`pq(c0_^vgwI-GX$h4%UH^lSXd}ZKf zegTwYxcEdm2S!hPAjR}we&U}jj{ouuQA}4E9&XNK49gHXc13R{NX@aIM*c9h00)IL Aga7~l delta 169 zcmca{neoPD#t8}`DZQ5x85lD6FfcI4xVyNzF-&A&VPMGM0rD06gY}I(G9wZg7#I~8 z7#I?ga}x_*cjuHaFmMO}#V%!}CZ@2}*`@*IK>E!xfCB9I7|kY@1jtnUw0;oJZ}XLb zoB0J$j^Se1Undwn@qrZ6U+sy1vN--~Gej|6WxBdKk1;Gm diff --git a/fonts/HTML-CSS/TeX/otf/MathJax_Math-Italic.otf b/fonts/HTML-CSS/TeX/otf/MathJax_Math-Italic.otf index 68762a60bc3663c9740e74ce2ad524bef2bf1830..d05aca489d76172e0d63f8982120598b87f26fcd 100644 GIT binary patch delta 317 zcmbPoj&Z^{#(Mvd5Pt@4h6V;^1_Ng|H-)UKzby<5oJSZKqU+q;LVV*l)`T)Jq^DEBFWN8@ZZBo?~EOQ~>f5l5-OaUU%n|Ffg!R0E%78NKH&( zyI;8hD7OcQ%`$)j?D9;rfoza@DjB&YoE1;b@_Yjtm@=`$MyBuOX@Pito39Mq%rAfn z7%o1M&VkVrA4oEv`>!_fPbMdjVu)fo$8c+N9^*m|MyJgJTtAt#8$I|v9X(^cWW9EH z=lF2=^!sM`Mf-aNv;|HGIvV^klqd9c*p#q!VMoF)Z#LoG?8eUcgX?Pd4d%)3gR>{c tgamMPU;ln&=Dg~umGYZ+hD;D(WZ3MHx`R>V*cH8*AV(bgY2*)c3;;u~Yc2o) delta 322 zcmbPmj&aI4#(Mvd5Pt@4h6V;^1_Ng|H-*A4$F?#sa2{b`h;DIn3-L|qy_CqnkoJRt zfkDRI#np{rA_EHpL#hXmuizi7Z{)5Xev5&DQ31$LNX|_xc-@^-!oa|O0VsAUBQ-IF z^{8zOP;L(pn`Hn6*yR{j0NG!FSS2I3gtOwwS)Ok|12ZOe*vOPj;Q1BLZ}XLboB0J$ z0mH?xzfLfE;sZ(Mvww{z{>kJ7QVdZ{XPM4!&SPB2!RWDBfa@odcDskDr@Lpem$KJB z?;;;QpQ*lieu@480X>1!f=&m&4;2di7&a?xOW3Kfo10B|H@k5N{ouOVeM9)dy3-OKLSQE;?khX_` zfkDRI#np{r0s{*JL#hCfuizi7Z{%tk#m>OMr~u?AB02Diwk(!vo zcDHf^P!6QuECVROF3&Uz$o>MvDjB&YoD~m@d9r~98cgi4k-6$LTOgj_<|_j?^9!H? zhKo<6b71tu2a?R^{;N&=lgSCB7^0ZYG2Ggm$GD1vk#(~q*Ec3@clWEF?4HV=kG<-= zjl9qKg!=0FDf$Zp_ymRpbqB8xxfHrFEGn!xtTSxJW-H!GH+IG!TvxkqFi+kcoIP11 qB!H{?`u8I<=T%Rwl;7MMGC^RoaOze@kz-f%W`dk>?5B}G%qak)YGt_q delta 322 zcmca{mhsM6#(Mvd5Pt@4h6V;^1_Ng|Hw8`eGA#xM&NB=Q(e7?;A-*ZSmy#G5(he{% zFvz&OxVkY+U|?ZjNEHF{75szsjoj5Egc%qZ6@dJNU-xI>YFR4P=lo2_^&-8h7Pa9!=bA$(!-uHbAY y;RlmdLjrh(FLYo3eq^Tnyy~fya+~WzCJ1a6Ox?^Va>jPid5}wv{WS82xd;GoF=(9t diff --git a/fonts/HTML-CSS/TeX/otf/MathJax_SansSerif-Bold.otf b/fonts/HTML-CSS/TeX/otf/MathJax_SansSerif-Bold.otf index f21f4ad9a1df2348e2efefb34805ffcdacb62d30..972603a0e4fc148727d2915c0d0ff9c0c32f303b 100644 GIT binary patch delta 525 zcmbQRma%6oW4(V!h(7~2LjwadgMqV~o5I|#mS6@3E)50-FH1MK5a0NXHDL@4VFe5f z3^ML6u5Jt~7+4q>LQ;Ty1^-}uBeyk)KNuJo6@dJNgwY?;_$BV%}G)7f}_o39Mq%rAfn z7%o1M&V|tvA4oC%XPfvZi{n2VLlo0HhF_cW7&$o^A8xMT3S_EJWZlkslFgKDC3`Ce z4~HyA0!IO#pq7xK&`aTkB8DOxL<_}4 z#P*4oh#!-%miQ_eFBL7VEWJy{RaQavp4@VIEBR{*35xDY%u1`3!;~+o_^4#56szj0 zUQvrxms8)Wk)=6XE397YgZ3ev8l7{xoAs*op6Jgp2sgNF*lXl&%xGM15@^a}y3fqp ztkSH;?3{VH`D*k37V;K;7Ht-{u~Ue1 zsdK&ae&>tMkDdR!NVpiec)CRV;pyJ{!*ws?ULauJEB0OM$I9PYn~(F_F!M8>_%8kW zyV!T1?=r8xi!x6Z7F1;a&VTsocVW57HiA8yPYG^v5jl26Zzd>EkNq_AhXpPGJm#v9 delta 558 zcmeBK%Q#^zW4(V!h(7~2LjwadgMqV~n?eG^ykiUuTpA1vUbb#-A-*ZSmy#G5!b%tz z7-ZaCT-_K}Ft9K%gk%8u3jV?RMji_ifP6*;AU`2FH?cs};E){y0|yUK>{mu=VhW3+ zZ9GtJ4-lJW00mh0Fs=o%zW}jHMs5jb#Xn^hFQ9=P6FY2V7M28=$Mf5KW#DFh0aU81jGp*Fis`S=#6MXae}x#LnBFnH+nmS9$;tS1a|Kr*Q++DyZq~DGmTYU;J2?b6 z6gg5j$~d-j#&KTen#&!>!^U%(cQT(G-$(wV{15nl2}BF(37HDL6<#W0DzZhiR7^tb zka&goDG7UtpOVQ^@zUzj`(!+2Rb(H@t(Lcwzon3(=&i)Av|c$%`Kn5QN}fu&s-fx) zwM2C#^_?1dn)9`y>b1UTAJb{jxum;YuU_wk{sMz&gX@M9jl7LnjhjtEO$AI3nfaU5 znl+eRGLJT2Z^3M#Y!PJ9W%16^%<_blmX({;T5DPB**0M|Pi%kLHQGBlC^(usML1VF zH#;A8zUutkh1o^M#mvRmCFT!L_ue0_dl~lv0rOt5?^-`r{?^)joY#igQs~5Y>DS-I zzWaQadG%dXc>fQpA3H?9iw0l$EhyLA-O$zE{hOg7%C-A9H^*<`BM#pM<-YSDzWQBQ gezKKd50miy&Bp{cxrm&xU34B4>c@T>`NKjV05!b2DF6Tf diff --git a/fonts/HTML-CSS/TeX/otf/MathJax_SansSerif-Italic.otf b/fonts/HTML-CSS/TeX/otf/MathJax_SansSerif-Italic.otf index 16b111fc96c0e383a77f13f55270781cad3336e3..c6014fe707e646b0425542f6790f729b30905770 100644 GIT binary patch delta 515 zcmbO*k+EkYW4(V!h(7~2LjwadgMqV~n?lS7tq2ANE*Ay{8+kXk5a0NXHDL@49t8{x z3^ML6u5Jt~7+4q>+){vi1^-}uBiDw=nG6h!3P65Ba&BUQsKFsS1_lldpxCdB)Wj6l zrMvDjB&YoE0w|BzS=awoL4>kP<|_j?^9!H? zhKo<6b7Azv2U1M`*(UzU;`qsuYS&y+Pu>E3h zU|-FCo&6n$CdWliJJeCEB#*T%Ps?*)Gl|6_rJf`&qhLVJbXg^!5H zi`*1-5-kutEM_E@E6yceD1=>FE@)w9#<(_5*}tRJsmqCZ#vmVu=qt6`4eb0b}&#l}u1R;ET~ zqGk$aer8E#WoDgbOU(9~T{3(4hp~I_57)hndx3y?uh@63A1i-rZGO&sh>4f+yXE8W q-1pBt{?7G~dGdAvo5^1U?rpvzxWY{2*cClsJTWjF`)TA43sL}nwxg~9 delta 521 zcmeB~$T(plW4(V!h(7~2LjwadgMqV~n}XuoU_}N7E*Ay{8)Y}Q5Z{#EOGyk29wiJ6 z3^ML6u5Jt~7+4q>+%kZC1^-}uBlnWCXMZ2#C> z*w?e)X8**Y%W;*{i1RMj9&RP>Q#_M+zVlw?>*8C-_l7@=|GB_XK~o`Bp@YKS!Y4$O zMed5aiI#{S7c&zp6z3Cfl#r5GB3UXWD0M_yRCIM6;##lLqsp#Yq`F8gS?!X#r}_ttdX49r6SNGq)@n0ouhC)FnWghp zmsOWT*Ftxu?g`xwy8rbA^_=u3>8;gg*H6~3&|j#3&%oA@)3CtswUMFGa$`3WJ5w_= zNi!9*AhR^HDzjd*6=ny`u9-dk!`Qv|hwEO(y+FXcSM0mikCnf*Hb3V*#Kb4`-SY8w v?)&E+f9HBAynpgG0UJh+$)5!7F$v$_d_i!9naCO2Mdv{QdhDl>KP+GYY|Evq diff --git a/fonts/HTML-CSS/TeX/otf/MathJax_SansSerif-Regular.otf b/fonts/HTML-CSS/TeX/otf/MathJax_SansSerif-Regular.otf index c933aa8ce4f77b2fed89724465f0f22bef528a6a..75cf6ebe9b0b04e3c6b96f5064384731f2c57792 100644 GIT binary patch delta 512 zcmdl|v!SNmKP1GTft#U$ftkU;+09MCcjGT71_rJW1_r~;Zf+sI@f&Nx7#QqC7#J92 z++AGV7*;T_FfiC~0Qn03!TLt74UtzE7#J0R{DkD(!~#)+Lv{=d92P*aUm2;1DXfZ> zn}KqBfY>YpD8Smx>KzCw_~EyWPUUL{whRmyD2p30|HWL1``Tvqw7 z%A_i)nxr~O^^odCHAXdIwQ#j;wNACy>MZK6>PhN*G^#c3YO-l6Yo=*_*E+0StYfR= ztrM-2qf@IhQ)j)-37xw-Z~icL@BQJrmvJu;Fz*%nuJvQ(Z>`Ngd7GKI84o}CbpN{z kkYJwNA&|cLqky#bW?ma%CXr)T^k#xW^4L!!e^`hD0AHJ+KL7v# delta 516 zcmdl`v!$lqKP1GTft#U$ftkU;+09LX!Ay&nfq^T8fx&Q_n_Gx)O7Ep41_nC`1_lNh zcNbSTh7}Af3=B3rK)!;1u)dLdN%#W>21W%228M*>+{6M=gF|)<3>+3fv0oXfi771X zwuwNwJwR-h0Tf_uX7mNJzW}jHMs5jb#k2LSi-88}Ozg0ciTS`ZJD%U>D+4$43!nmq zi(!9VVD!WXQcQn^CjQCd_$$N^#q^Hp-R3+-3r@zm&C9t$nCe|vYFK(%&aw)y-efal zb7hNS%Ve9*uFIaw{)uBdCqL&}u6nM6+%-JGJb65=Ja>4L_%itJ@-G+A7g#26OOR1; zg5Wm6lS0x${zADz_k?AIPly8W&S{+oI`985cJKY+x|eY;5HRl*`>yq4ug q4UiDtKe=5Xok{rq=63?p+M79SM3_X**e*H`3e96bjr^gZ>I?u9IiElP diff --git a/fonts/HTML-CSS/TeX/otf/MathJax_Script-Regular.otf b/fonts/HTML-CSS/TeX/otf/MathJax_Script-Regular.otf index c7a2c97c4bacb8fb2918eef6b8ef63fa0e91b180..3f55b8812744c18a946e423253179941823133e8 100644 GIT binary patch delta 171 zcmbPHG^1#OLP-3^nlJ_ii$4qu3^ML6u5Jvz3@ku?43MwjAFOZWCKd6Pfq_v0$WKVl zO)N-_%b&-<~+t}<|4K!9Q5v$a!i+KLZ1!0+64O zoSRr6syeHWfr0%40|S#(MrvXT>)Fb!K)F3YY?c8OV4KWzV`52wj91vYxXpQtyW~WUUD2BfQgiI5kv~i=0B`;= A4*&oF delta 167 zcmdnvu*YG7LP$#QrDO&M1qB8M1{rr3S2u<@1{MYec^e>K!9Q5v$h9+UHUk5r0+64O zoSRr6syeHWfr0%40|S#(MrvXT%Vyg|pxhoHHp>7CuuW!oGO;8;#_m{dokJ7QVdb7LCkTR^BB!!M2=n2n+Z~N?5B}GOf>+6molCJ delta 169 zcmdmCy~BEfLP$#QrDO&M**Odh3^ML6u5Jur3@kwA4Ip2^KUm+$vo$<|fq_v0$WKVl zO)O~H&X>x-!2SU!b}J(_F@<%WZ9GtJ4-lJW00lU!|MyKS36RMWPv0HSZ}XLboB0J$ yj^Se1Ul$lX@qr|Bz^@Gx|73CkDTXN40M>xbd5mTBp_S488rWydi7c-pz diff --git a/fonts/HTML-CSS/TeX/otf/MathJax_Size3-Regular.otf b/fonts/HTML-CSS/TeX/otf/MathJax_Size3-Regular.otf index 23ae511676e6db2a1c24522da8f5b7fd5b37a813..f9d857b2093f6c4a0e5a10c0430bd2f7580533d6 100644 GIT binary patch delta 167 zcmaE%@nhe&oAVf-35cArU34C#=Gadof2dj)09oTR A2><{9 diff --git a/fonts/HTML-CSS/TeX/otf/MathJax_Size4-Regular.otf b/fonts/HTML-CSS/TeX/otf/MathJax_Size4-Regular.otf index 9b1d34ce53fd4803ca231016a47c27d115cbb487..feabb4449332f0553ae3bf4068bbb90b5e80827a 100644 GIT binary patch delta 167 zcmX?NdBk#pLP-3^ng|94nH3B`!rjHyjUkbNg@HkO2avDeAFOZWH8)a#fq_v0$WKVl zO)U6(f7*No2KEm?u~QkTi78AkDz^jW_5iV222g_({7#J0R z{DkD(#DeFBH~up)aQFblZe^qo>)0%R83?lp|(xB1G% z&HMr=$8hn9bUuup_&}2R=6~sle=<3N6hjo#O@^nN^BBLyh#b43Hxs1l*iR#Wm}&sV C6E-gZ delta 171 zcmeydhw;ZA#t8}`DZQ6c7#QMW7#J92++AGV7*;c|Ffhcp0Qn03!TLsSTf&bpFfb|r z`3cFni3QIMZ~SLq;P3&8-O5N!OkvTobpXok0b;WZpa66J|3ec?0%T?^p6DIVZ}XLj zoB0J$j^Se1Uso7C@qr}sw!dBz|73CkDTXMfZA{xX=P`bZ5jkVK=sZZ(v7bi%Fx3Em CA~-Do diff --git a/fonts/HTML-CSS/TeX/woff/MathJax_AMS-Regular.woff b/fonts/HTML-CSS/TeX/woff/MathJax_AMS-Regular.woff index 5a069e4abec4315698af291e1d77c480c86b0eba..bc641a75a5fd35f4db96dca9adadcae6d83e7ac9 100644 GIT binary patch delta 40393 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 delta 40383 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 PVEU(#KZw5gL^=}yc-@8$ delta 496 zcmdnuyTx~cQ9UCE1B1dT1_sq7uU9>0b#n{xWnfUe!oa{F1Hvi2m*U-BT-|_TAAo#W zAXZ=qXJGLU);D5cP!a(0Lx4EJ(?4!oa&BS)P%H(=uV-LjOnP)^u5U(aB9O221Sn<- z#Aa;&Y;R=%1sNEWLFOwkL^3d_a9m~-%g8OM01Daw1*Ze?iXuPOirmBspn=LD$FPC1 zRscg@Vs0u>><$A1(?Ou{y3Ctdp9=DeOBfi`768=<1F^#YHU^`LIh(~;Pbt^|`HVo! zaK?7gc@TZg*3*`5)5p-3^7186>}zM zF`CPs=WEkQ<4@yfWo!Fqkv2i+veg6`W@QHNbisK*6-_J!^+E%jWH{n*^B*k$_i|K)n|NL$GUB@G8|h85@8-T}@1aWvt`hwjG4lk*(;JD3}8NObTv rL@-X4RBPl2U|`S!IeGIw#=}g)KqsUzH2*)#4j442VAP^_G9*xLN&P^;}U|?wh^6P+dNskWA_03341gc@=0E(Fa zu^GEf<+lu=AW+N($X8&f2b#=&lxcQGZb=1@`2;994Tx7Hhp`;ZO{@SK$QT3Uvw^Wz z07G74ZYof02Ll7sNucm;(Zv-@3-XIg7#LVtfNF$+SmA#ggHgq;PYWXs9N!zvc54yHX$j zcmFT9LBxo`HK0L^VbcM2pv3_U3|b5f6}KjTQZP{fsfwHu7}(gj(7sPn<@A;=M@9}w zMqvqoLqKO#+}gZL=`<7Lt;ueR1u8}t#8*sQ%FSSFCfWd!OHN2*X#Rhe$Bid~fkDFs z=pmqbF2+^zN>E2UU{2y>6G%u(U~%$QNMrmg!NA7L0167A$E>lqjrlO7$K>zk39m;w|#0u(a= zVly@++eH~bL7>E`Aw=o!1%-Jl(x=LOS$Y%s% zhBLN{&V%S2hS` zkYp4N5jX@?4piF4Qjj8KF!Po}uTCt3t(j;8P%t?mB_SapEkPsL_f+@u?LSW)IQxf5 z<4}R&oAt~+|Ng(&&*rVTS!2TKg9liISQ&yfd2*n7#QuWpOMU#`{lDA>5hDiIfCe#! u%@5e~ffhYenZXgjz@P=Pb@ML9(@erZd(s%1|DWY?ZZYW1u+3=9ED3=FZG-%AArxVeS+0%bH97#L(g zIDTVIu)B+^8v{e=1t4D*h!q%m8Cd*-^^F)97&CzUP#{il>r5<2&P^;}U|^{M^6voU zW=(M}Je`r6m;z*T0L4s!*o=L3<-QD{AW+N!$X8&fXJAm_U}7=J$StV=n)LxF0aVD? z@Wg=cL~ddQ&_Konph7kgw~`Z55)u;95+X8=?>Cuu|Cu(k`DgA09EXppUy3yN_5bw$E*vc&O&>C8$TBh&)>o`4tH1icsmsF^e{N93QYu?wz(=~HxuKn$xK0~)Ff7LH$7Z4A>dId zBg1kn!w(?4(iocmpXG7m0lHqpg>eVa+|68!NdZhi^Sc7&8EAYXwYl7T^mgNex@Be$diC};uHXbQv) zPYn1@V8`)LI9Is?PSu)mHKbCMHM5)vLTCvma~BqSxU9I8-A zWBe?^z!A?d38JbGcZiO_$W1=-{va=H}eaSFvxNk{r}~EMV1>( zPk?GU7??n!AdA5ctNIk)rr7oL*Z=AN?{B!1z|ggzfra7F0S>o{Il2>KwV4w{j{ko? wXJYv=4U_84%wg(`909rj0@W~b z0L4sz*o^I6<=zaSAW+N($X8&fXJAlacVn*1$SnbC3|az|04ii`Irx|NWNu;w&_Ko* zph7k8UR!y48#im+Zc>0ZY3wABqSuH zC0vL}dnt83|MS$w**{qWS{^Shjl?99R*A`IRYJVj7VRiEM; z6uVqs{r~(wKk|u0gOY}VAj3jewxbLTKs$hLuedci&Cf&ur0ON-VRlxwwtp6B3*Mdd zF_#o+m>|d?&LgxJsA#iN;C?2?Ta$PB9nnZypvTd+*~zK%IxEB9yZSRgh9oDXF*N@_ z%j3oq!N8#50`wG64;Q1HFB8xLH$QpCTbrNxn=nc-FamwWaO{fSOfdb^$R9*sd?K9% E0G!x};{X5v delta 476 zcmeyeobk(Y#tBCCj2sLMzH$rPtHv&0E+DZ@~<;6FiyI{>^C(dH4&)Be*#d< z1c=R8uh?d100n_!M}T|F&Y7IXXrd6_rr7n8^Rh52TiZX2v<2_Neat0A z8YT!bNQDcFFaVWSu^g#aN-$ojAaRb1Q#DSU;qP7j89<5Tgp`DYgtUYSn;-p@IG_J{ zYUAvmtN|?#lWxSjOZ@%+vz}GVa+$h=9y_zJhX_N^2c8R1JyoATcDla$|M`D@Ke;Pyc|Fb-9JP`~G8ZL}G7yu)vlFtAD diff --git a/fonts/HTML-CSS/TeX/woff/MathJax_Main-Bold.woff b/fonts/HTML-CSS/TeX/woff/MathJax_Main-Bold.woff index 9576a44a80a9c1147979cecd60383e884334b4a1..cdf78a377445a3107b20ec3af606f02ba30cff51 100644 GIT binary patch delta 18170 zcmZTvb8z2Jv<=$Wwr$&X8r!y=^b^}=8>6vp+g77*jK)cW*WbMN-`klpJNL{vclPe= zA3L*mbK@W~;~)SpWhp6Tb#-Mhu<%SUc(8w?WeyDTzxn?UaVaShFfeF!FfjibFtAei zVvc?VDJgZue_sE8YJ&e@RPV1QEg>ld1{V6|UrhWDB;X2QUzF9D*}%ZS?f=D^|6nY` zYnp84U;;RUfqn4?1A`d*H}lEBrMFvKn3(?)!u%6){sR{buCJB#Kk^?Z@-HU+2MSnm zXenz4_kX@niho}1e_nqw4Vruh6Yqcd!2kKdp#B3m@i#C>69DK{fBAK?aM>`kMYv z0|xdD4E*0-{HL|_oo$K;N(&0AfR|xUfÐDy$by1Gm>`<2dk>+%g`m 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 MPXGV_0MXLW?o!;LxVsg1io3hJLy=52o@= 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 a0kZ-VoMT{S0E7R{3`PuC001aN0k{C8QZ^C* diff --git a/fonts/HTML-CSS/TeX/woff/MathJax_Main-Italic.woff b/fonts/HTML-CSS/TeX/woff/MathJax_Main-Italic.woff index d2ee10a67f66e198cfc859613e51717aa9ea3dda..edef021b032f80d2dd8f3af6561b9eebb04ad356 100644 GIT binary patch delta 19584 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 delta 19585 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 diff --git a/fonts/HTML-CSS/TeX/woff/MathJax_Main-Regular.woff b/fonts/HTML-CSS/TeX/woff/MathJax_Main-Regular.woff index b4520298f63b942b7c155cef62cc6884786fe5eb..c5dfb0964653866b2722d47908bbdb0c4170f422 100644 GIT binary patch delta 32283 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 z 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 Uir!2x{nH2-dkhR0pGfBb0FF0`)Bpeg delta 472 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 delta 17428 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 LSO5ShL;<(}u3P~H diff --git a/fonts/HTML-CSS/TeX/woff/MathJax_Math-Regular.woff b/fonts/HTML-CSS/TeX/woff/MathJax_Math-Regular.woff index 29cccfbd266427f5dfd07bc116886a9ee8307d6b..b62fb19a2436aeb913e1594af53a10ad9605a964 100644 GIT binary patch delta 17741 zcmZU4RZt~5ur2P+;O-3W?(PgQIBeYAosGM@>)<+YaCdiicZZGJoqOy3y;QAA^~&m` z`X@=HJEv*jyJ_G+4`nGS<=?-R!NBAV!4SdzHS<+4$p7vC|0XUaMG6K6Z3qS?;SL6- zE86~!+%6^cTk)T-#6LCR|H9y}ue!8^q!bvK?CL+8=pRVI62PF8)tK49z`#xa*=qk_ zD9Nb# z0+D5D=j!=yk(YnG>_5cpvLo5p8F~Jj3taD?2Il`@@(aw~$jn-+_3eWLzgsf=a?Rn`vI{4ZeWOJo|onA zd+OVoVP3%^P!9!$I)N6gKhKJ$=J|j;3x|*;R-X1dkt+(bh)k@7^^(2 znj|+iCUY{^)&Tz{X>{on3-lC z=G$s{4+1BGb&HjaGa403)>lPAZ~LLpZ^+{_`NFDNi@yNBs#Nn!RI6&`cFN>->Xd{X zHN1^9-ufC_MpJ<#yy^vQGN0KG%&HaLeskKnIC_8D&x@9_+A3{QnbDTKD%&b=D*el| z%GxC!O_pZVSITQOw}92{ikt>bB98^<=<40)Dofr=)ar?qV(KN8Drf3asoF=sS?PX3 z|29%rSgMw*@cs>1sj{TBB(!9-#JUt+iFw|*h*Qa|ZZP*t+j)xfp{}j2pr~j!umAon z=x8YP5gHZix9z%WeWj`FSVK}#R1nsZ8`Y6|s(h4u+F~k0Ep4(M1RQKgK7(p^t7Nhb z1Sz;nats76_*8NU1P8F&_(7Su`#Q_U{`J*uMbBqy==sO~6dg05x$RHAv&-HLlYfEp z19SJZwng`|qq?1>XdA+}N)?m(r;JTk5&RX|h3ityGU*RXd8G zOYphWl47MnQM|p%r<_~WIn&ZsrO)r@qLyp5tvYX!CbX`n1Z!a8xzUpG62_7$XqRot zc?kh@Ah$#ZIRRo&3U)F0oa~Y7vEExku##9UzKV-p)a~y%#-p~y z=WaD>BlXOe-xDx?<`s+g)?t}f_(kJ#bN->!S!%jxcViv#I=@5s`Nab;OWaw1)Y0?3 zopn?9Eqaam`Mx$(8Ew#gxLOiOBIu0g@%rq4`4I_9E~L+Ut#}`|sT=P) zKg#cVefTmU?0KuPnd!NPUD0>lx~Ve&4qS2P`CvXzECaJ`9Ok~yLk;RWYmVG+h?@Bw zGQYcCNwy#Nwl;38T2H>W-%p?)pSL`ACQx%8dgF;b9SV>7E{J`P3$dd8?{2B0d%6w_ zOJ3u98xoJ0t8pg`at+dFjz;QHZR!{yHMs=K7)p6d3OiV(-MyW4r zqGQjwRJeJzN$W>vj-43-rcKr`l4(?$_E~FGK_d; z!!1COvIJ$Hgav?H1O<5DKI09n3#Zj>YHI+=J#L``hZaqauRz7;kMX_z%3Y(@tP?QG-TY$6&cO%ezJq!q zsot4H{o2H-dR$}|g8@**L)r25r|x>U38wmqzpFK%T{QcBB>Lpge^GoUZC!*sN#60O zt*}D&z!e{)csvXfpDsC)!MF8wem#F!8j!srifJ3dW>JwldR}C6qvw5f{>sUH0Bq!j zLr$vww=0fuf-poHBZ&OH0XGKUTrwxSm=E0wa8LrB@G)S!tjk-DGc_%#>g(2<>h&3NY_S#6@UowX_&2 zyMDpH<-<;UYy`kXIm85CaO?U^Kp6s0Z>iaB{DC|THWywQu>C6MKYW8IqmoGP$awm` z@z&b_&j1@2XaNXn4{(m8oS9k6+y&sT7%uKEw-6zg?jz4@t9BXStPl*W5x;!Wn!oUf z%#>=>ksi2eb{D)HRGIRabFWMciM>}I(){L#=mQi~TS(aursJ-OwsvyaT=7X;!8_ss z;=GzA0f})cs-4M{2Jv=r3l1N?qIvezW$iN`4?*?8sB^EnwGKdraL-FGfTc0u#LJtj zwqSj{YIW7 zzrS*wjz49-cRsa`DZ8`6&sEJ&Qr@cFLKwQl&_a^zH)o+pYRo_e2=eqX^>R^tL)W7_ zwpO}w)(Gg}4b+Nuy*z z4|o`2Mc493NU_ko5rcs9b@Vh zz8kqUkbCq}G`uy)#bwi38YD$HrX}gQ^Ok)~Grao8tQW*O-OgCQ#Uuw8_u(LMu)`s? z1X=n(TwI!v+G_gsMtg;i4wJ>!p5H^)$w9!n^t`TEe}@SFp7gw-=r66P8!(JkV z$M<5g^efSN#&t^E8Xdo4MH~MBa_05(8^6nrNY4<@#ymZG+>4-0cx6>YADE5qDZl`w z@k)hsa>leaxhC)i))@CYSR!J~5-yBn4=28sjaalLe0qt|x?1MKn|<}(=xzm+SLQAx zJ|YhnTl@?)om*t~1BgdP?>!9lBsL9qFZFme5iSa~XkieKu`j3?4r)hm-Jv_lB3#f> zS9`DA)~@WIt(pYlmXHC3%JSev5*I*wA!stZJj&s%+5!D zM&;4I&2cFAtTO z-KJB%S7}64eG;7j8L_+UN8~dl%bcN&Zr4$dr+*|bQ3n zpNXDOb0J(H4#;2@lX)P)ER~@; zAZ17Zgp2EC;g16aeV6songJaxZji1okHc9kB`8h(KX{_>QC32jU!W7JdZ($s}A!I@(m_%z?7p-3reFj`0{%#5+quo{7ZSlAK9*@Vob9GOl$L_T}0C&a!3PU zk?uW|X*!wY)&Kfo+CU+>%-9aH7D*q%2~q!fp%f09>xO+>6)hoenF4CLWUZj=L5vs@ zww;2>8|TxA5sX;G=pva#Iei-M%Z?|Qa7eiveP#)dZP%7S3?sysDw;+>g-t5YJHUN; z-u&`Zl`+2$nxvMRjSek^pj&H-z&kSjNgcNPc*^Q%fe<&^B!bF+9;#E%hrm7Rk&NXW z85TJ{WQ8-2;`>M5NGQ1<1s{kPUs5~Xkj81s(C1XE^B>8+nS{2x$-tA^4vFT?Cxia? zNi`@;ZK5fCvXFb+o3Xl)d4-uS>D%t^v89I2Vbf46zNn8f>kl-ME+8O25Ky20wR<~3 znRa>=EiLut{$DI~k#S7C7!*YKW!^g)GQd=0 zr@Om(Xqp|>$t_7!Z`R4Jt!*CsZ`4=$~^|( zh*yV~_GFmQ<5rA8@r0#HA2y9p843HcZXOaYM+-rbEUqD_`!P$!o#DoykPJ9+t zvjPhG3iS@_yLHLxUGtN_h7r6$y3#QnyJkoiP$X8xJ^sl6#TnstM&2KUy^a@u-Ok2- zTS*IjApFvFev*1Um%M*w?#k98#9vt`p|A-^85dsE&@H-pFf6EQq(8+OL?S`snS@H< z5nkDgIUQmQX#v_;*GR_6QL$XO7MEJB3(LK$=x3bra{FzHEiLgoU-YnsbO(kj-pkRL z;=s%b9~ngqM$+g2Bt)I}TnfBWOLX2EX2Ccmp3L{IUiA&v4NO47*M4|)MU^`R@`Gtk&qA& z911H+KU}>fq(r!2#OE?V>$ib^kprVeEK=}DIxy$$6Jg6Of`n{{fCS*wgx9b8)M^@o zGwV)3ajX^Gw2%jdhCFSh{l#u&y1=AdGMWlE2aRqIvwM z=<)-PkSwy>e$T5eUN?#-2HecBSh8=i`Yvh5{Z}KMsACCZcmaCOhkGm$B^-)e33@JXyWyo$=?k1z{JGWgtG}D1AEXyp zjVe>Oh24voHJCLOo-P*EBl-8?yDSA-z$?i!KGaobuWRhrla>i(s1CafcKhYY%r!9- zwVHFp<}9+H$V;QWpFAjsc%E5;<)-_}_@xVFrAyMlY)POL^Rie-{4KcEiNS*A=M8O@ zP_3ql#v8qI{zb(RVGepp5oAs$|JTCGO)(uQ2dX9Z=Q5l+d|(`E`xl28bL2G!@DDrU zg@Qhnoc@&B`8j@dm6`Ea`uTaL85ZQUiYl#vqQ=+-$C2iaYpz0lfqhO$y6kkV8jeC$ zd``Pa)r<53I8lx%PUqJVq;rutAUolNHcCR}keptGJpuc$2frsni2swn1V2KkFFbSa z`E`AxeZWLaVT?xw4U!1qEOSl-SZfQZiy-;3&X7WTzI?%1Z?A;zt`r$7POxzV1qsd^ zU3<@WIJPiU&iPVe#k}21^4LNe9aT&qb3XB7KCi~aUaEQxBGflEVD03Q51+NgoUeuV zEdQrGe~kRa29s3dUV3U@vlB^P51C z=An6O>>-Zl8{kcF5-LTiDCPXZAroeQhT-=Qh$}paTVBzbw1a_^Ug~aK5NUfCb-!1N zI!1atyhrTn#RE$=dmUB!Hidy>sITU$oI>Pu1IYLEaQ1Hy8eGXAyVhSrQ%R&U`WYAg z%nqU(SdFi^MxmXFb&^?AK-2XQK;4;(1ELy*SQovyM$nGuEASq<9m zP{EHMi4AZ>1}4&|)@c~E;P^a5wvw}Ts_jaaih^2LS2bG6N_T1qW;vbp`nW@4?BE-1 ztTOvkDrHcf!eZV5=tNOkBO??r`HV5(N9kg;QIhQ$_F`tu@_EH)KyQ}RnPPuO^2cUx z#+XocCqhqrVT&yUMDk*meqj_?qW}UanBa&#@dXo!!opWMj(T-RmFmHbj^~NbTpdh>NA#{dVN4zW2u%- zatf5p7R#GuOu~;gSKg*mW)YYHkpolIar5Z1f6IC8b`9~;fkbAQD<7g$&wGhMI@aR@}NU0vdJ zk71F1iP!5EkYWZJ0uoX@60-YPq58qM08yNF6wcjrJ!Ul!U@msC7;K=fk0?O|A?y}3y|JRt>V(RYI5>!jiy*JsOl)b1^uNL%K}zxL4>OEV(N zE3{^P@$lXgmqrsc5BoI4j)vBlgEAH!6OAZ?0j0RMqtt`~J8>#(|2%x*?k%BjetB@5I^YOWv9>Q0%d#U@|dWTD1wL( z_q6F+&Ly}nS|q&rI9a)+dtLeDC577dn!vy1bXuI#B{Fs>3;uqm>DN^aH*?i@sFjT@ z&?~rhx|G9cDv8n9(y683N%4-XB0FMA9MmzMmKuROC(OFZ`9lOHcsMiYSXE2jnQ7qh zD5j#ND?7D2DX&cOkJ)A|3^^75TBHf{u57od!7Q= z_9%bIS^q+gPXEcw9C5-A;i|Sqc6Sk61SYQ^m)72GcVBt2lwZ&*okBhenU&2!+g~GW zsJA%0MwTqr{P!;R>GoG=zRB5OPClx4c>Y=9^l#kQUzye##j`~M-OUVQYN~m2K~@mg zeN$-J^&EDCnaoCRZ#(XVEv!K5*0iLyFgOhi9GXC7mMOe|?i#T|m=R zGrP0nr4oXuoA3_vqAQZ%*bkHcK27Qq75;mb=^e;^_>u+5TYAbyERd8Lgwc)(o_WCM z3Bbr@)*!X1e0~3yK0Vg9!X-ySRFWQFIkHpuan0`6V6+5D<|yPN8c zhYd#Dr5N`h-n}>5_hRYs08SPl4+ktfg2ouZ>beC{a@(5G$C% zvC6wV-B^}dFWwS0ORn2ErKje-I1HKtZChEBs0)ALZ9QpY=ThwaL6*&0{snZQcTEO} zcbeNMz8*got9RVD7qHJ~X5n7&uD@zK>K+=Rc7?dk<^&gbVW8`PW>UmW1L{qwAjR@% zo98zV*;RF`OOQ43&BTzLJUP6>Wl=f*R1R$l&a<in1FSW7L-y}#8-p;Q=|l~51^vAa6;rXDah5nYZo|5i%2~d zDF-5Xi`Z%89zZy&O#XHt&s4^xuKv+9UEJSP^%M;b&h<+@=&Y6`53;*&igaW#4|b$v zB|jHGBSkAK;(LSenb0g!0Pm73#usX*N5O?;pY)6@b1;e}my}|8GZ5Lm3>rNQniP5K z@e2AELesR|LqnyT4IQ!d<|S=!lKba&hcH+JK`Bfz`aK5G!tsP|uDhbXw&)&=7V5BF z#))6|^6J+z=3L-YcXM9evi&y_Sb|^zZKMMwFJ^`&uL-+X(>rJT+n?vhy|GR1g_X6Y zjl!yu8v3O2B4sshWJMJ$M?`+UBmcuH-ANWrHKiiDP9DloR9+xQsS(Dz| z(T-D9@B51f#+5$P+UF5a(`J#X1+%?f68tw-;_B1Dn>Kf5`qzcWjM)sfi@mg-v{p#- zxk@i(ipcPgDWQIHtbS@X#D0;YEg+E)p6y_vAow5tDn?r>Yz4MBDpqf4|MIX{+M;|` zY?-rxLG*I1HZ=gmbut9|f^vE$6%_}ST=RT)9om3ps3pR4%m3l>hr@)uwS&gmJLjXK z?!6w%DxSPn-Pj)g+nwRy?k9%Yh`~}Q#d6c7pJJ+ul}xm~3&VUMr3@LuW$sqK>Wn|k z!)6a6L9r#)g9knuI^r{$A*){~&}-wQpNZ3lW)3#$-raQn@+9Y7Oq1gnfs`c`bDuo1 z%nIM%+;4K+wlOnhs8%H=s&{U66%H!;u=6^Qd3#kc!&{!Q{Hl8XVtlT1b$Fww`L!~? z7&tn+fJ$N8@wbgw#>q_bP9R*bW=ioPlV5yjs0;{`Qvo!57+)HN@7&!>-h)cBoVQb0 zOiR_kswG&s8j~l>SCUnxLcNwH68rh&PqLIC=!(o?W7tw#QZ#hg5(Pt?A7zp-zNq6i z9MwLq`1WYu*!#NG`ri+L0NM=?PlF#NJ_e*OSfuMHf>hE%NI?3Fi!b)FM~`S7kJn7L z-|sFXj%Oe{*5@8j+X{YEnD^7Ui|i<3MqbpWKOgBi^a*+1q3{Y~_8`iepO8_jSLT}J zw@_KYjEwX5Os=8x#jIcSaEk!^6&m93Kv%_d?$|&#Pub)I978_=>rZa?%=FBOSgDS! z^S|J757?HPOwePaP~_h11kOWtSM8?Slc#lXxPHK^8vmU^p6z}v0YZdfiqESG%Y3m4 z0o-{e4Yj?R+E5JD73=e?OWeF|m5mA(+)j_@f^zC!*@Bb**A$lP{{Rh{i; zB2Wf<938prKjy7^&!W=^F@53bfYHr#$|)-rT@Yn}PL?H|_INfx!kWw`ESPFUQ8OkeBs6+gQh#3?>3NK zwfm^e(m{Un1~CHMGEfBb^j~^Hi{BH;D}9p&ng)K5ufui*F$4xODh{CRFpR zO+}To-u>l+qp->+iAcPJxn@;Op59*djUM!8xN{U z%D;!;T{n!nfdLI)R$q@{Pd%0n^;MYh<#}9w4)*zUk=(Ji;6Gd)QQQsXov*+v5Q-?+ zY4v5pkf47pRxJLW?w{mb=1vw6aU=?Cb01pgd;TRb>;s1!?)MT}hqwt5xxjNuf?J;r=+wkJo7jgT!>^Lk;iXeV^`C^c-sKZeER7b@ zLNYWz;(XQK%8Jj^mFM}(=`Q3Gcb242Vis(0bs3h{cedwT-5Q;tqI*tgUK8Qlj_41RP+nHmmv>r^lq0#?oCL^in3S| zq8w633K3FXB=kCWgyeL$&+u}6b{ogjPg?+$+tEv2C|#l*O_iO7#2KC~J4phQi zhz$UgUGP9}rs0)yle7 z6yJ?o!_iB}?{sOa&fKl6Y29zFL()(MF^hO{M=9zkx~~A7qCSYd-As20@FQ_+?)QV? z$?El>k|@RxE-c48?2>I~!UNEHu2f5xxu2C;=0@_KH1e)hXdK?7#EZzsuMug}5Wp9n zrEm8yda(_KDjT5slg@9L2g4jd;E(E(pT>t5eWq@ixGmBSIuf9k<6v{EuzQnV#gqdn z)2?q)wkBr}!wFDI-N!tc?<1gN(3TFO)~0*-*0g-~VK#vS>vs5$!G%8_d~V3G$Hu11 z&7v99ax^KZZzB{Y!8fFt4tYOdPZ{|9?DT@!VYQW-*UkSjYq)QUJY)Q+SyJa%{+;=gTl@PGREgv^tw ztZVilCd!DY@L^wMDs=HKyn~fIgR|Ew+CtaDl+9^a{N?&<5TWur9tuzxzW<=3XmoI5 z$oH&V#}5D&auZ6~9W-0T4{Q@9-~4GFk=hS8euo^T9QZG^nYJ)#>QPaVB3&beR;!D% zS}>+=SF>MUe_aOeMo*hj6Gx}`+%(Td+01qzHZQS#w7s^h!~1O92+Z~5zc#vS+6UT~ zf|Y^qco)5F)`0|hn;$5I0oQrceakgI_;H5QZ*#08CYZ|ZBouRjtERRNmkB-4)P_YB zWqiE>Y^>_=W}F#$8e`Z_3Dd)tg0|}Yc!(K&F9|gb=V>+BD+QShLN@iRd-h?hMF9n9 ziNh%K(uL6lJ;+|X6nNvM+dYDcC}u=?jPXE1W+@C@Rn4Y5cBk;mC^8W(RM{5DjvR>g+McMn=l7krXIs$({Tp?K+F@HQKDr zVtWl5&PIL)*ELXSb9-dKoiqf$izfr(c19;|S4zAYplt{F!Vxp$>xBVq>N(DBzGxC| z`!W;IbOrR^7<5RPB!<3Z=pxMza#CZ07q?zd=cT7ms`Dc%r)}wZpt5Iv>Y$I1HTLly zFeSZr;Kc{dNA-DHIcry&H%eC+!_48=)6i2REsP&a7+CVW9`0@rT#Z250cC&&5zd7} z<)p)c&D>TSmJ8V~E@~Tg>lyvKA_&y&J}t3^xYEBmV7vU4=T}RgeT=W`X$Ga7j56VX zKkr_WYi4eRT=~h<;B2c?U%evi!d9{4B;unP$A zq}j?phGu`Ft7JxCVf9Hdta$@JIu9FiU~urq$(CFbH&d9F7ONFTy%MZy zoa|Rk^>{ldPLf*9Er(m53m?|s_789?rzQ(9ndfd4*!(ADb|)3v!=frbI6W9>e=;&I zu3S`BBLld7q|Q$cJBO7^>hd#Lzt85X1v}l5q+ZJQcx+D+9H;CtUig72G{cVSQcbgo zrVp9o3*@=!+u!-cYoeY>KzP1Zt}wy|8iE9k3vHreB>OuHBxRsk9`DPM)9$x--m47^ z{eD!@2I5Ul) zP6RjREVTd|6@w^3ha_-l-A$)>i`rnG0yB@I8p||YKzSJ~AJ+G6{K!IV4f&ahR!Azd;&#-YDM4V%T=L<=0lK@>&ueIKvo12|)+65Nq9Iosn zC|!$p-rtzv<;Na0{v;Y~ED2|!a<_?QGgqV*=&xd4nag`8`(D7lOSpg(U#8}fm8ilW zhh7xsisk{TXFOW)CTTs0Ssm$M=eRB^$=>jI$20w}=V$?pi zqoq><4W>=Nm}_tNGKAcSvKAYequZHs1lwJP0}H$hnJ8pL)=W`m4ZV?3p;`l~QO0*@ z;Ma=(YM%?z?)L)UONc6H)53{9C>8pj@ScR^V?F@j;ze8?X)SQXiI5tHP}KiDE{0a` zJ|Py2;7~^*^1LQ5xx_i!`C&IYUH?N!`uqTc*zDyyCIX3zy5BC^wl|BSk;RA_it>)Un= zKTQ53nr9F8CcoO()G*!$M|{@pLuEp<`-67}7$_!3H3 zXfZ2BzI~J6^DE&JYOJGHn zn6Y1LyAGbn&Ed3#oy!oCKmMexq_%&N2Tqi>;Y!XmA_Bt@4X2&?mV#HHv?+Meaa^YJSc47>D z(zif@GtPT?B=N(lqi9aYWorFgC zwN4?JUHB41AviPp+p*yDDv|r?>g+)2AAz9w-bOYQ~Jw_ODuJN5D`aC7f;-pw-rF z+@!ek9~R*tnHb^OhsPWe{qPrC&GiStQkRT6aH8l;&BCT{KubS$uo(a;HxZLOH3q|WVhH#*M%MTYCaJm2R*1YGigfr=0NCf zEkxZ^B+%EB)Fp~6*l}<`)7*t-pR78IKmu^St>irafu*tWZCXPzpp#8s(0S+*l*0 zg}HZp!f4Ik=}#_Y&gVXz+-3()^Fll{s<}=dhL-WkT}$mguNTr-Fm?z>Uj-89UlX3; z=ACZiM8ES%z{lo%qSyHiH`ftk_v(D!M-^2jExF0(3{G1+0|L)_;udhEg>&*c-h(^* zTdq9*y~rGa=omdOfUh$_Cp|_*%+T?RU)VDbnZ4-+(ovD1&M$5u+&?Etqfd^~4UEe< zNHi&XJaae)pLiOh^e)aZ`M?9a0zz38nA}!XO}9}0)Q(7}){94vrRwd5w$kQxEo+a1 zWG4}nS>q`q>$@zmuY?|To?F!8CbLOhC{y$-53-(Do5>ACaoZR~3b3D9EaWcr1`*=)kvWhi%e8Vn>D(ej_rP}B_>n6S_x+>{ zw3TTnfa~r33D0W=W29eVB0?8yAIjNit+uyvZ=Z>64%fIPmFHt1$&FM^Z{ zuVKV~zL8!t-={{)0?^E?RVS^rFwjQgxZ)%=i@*w5O6{}a+AkcH$mT`~IdM}sp4iq8 z$-VFIzWD1v)%(hjeK5r8KEvM{d+-0O<=3+MAET>L(d*(G#W{E2nEK9{5tm&Vu045v zQ>hoB;8X_@3xw$VDRCMgA~~oHaWy*=Wk`>|)S4{fic{#YyQ5yEtatU+)wTHDb zHSsEMt}1Q?gWBb0EUod@1VU}fOs@An*gvN_vXR~4-9#gJZa&-Ad0TCgL!+=AJJDrI zo3T$hF|-neP675IaYt_XTF#LKnD@~*6jVa=O|bu++A@0&glbShc^qu_lhfRS1?Qe` zRyY{nW5b<}v_%guFZmxriC$Tu_eb-h5Lv_arQdBXAH?!WrGtIlV(2dX_9R z`5de5t2o;xy46Kv#yoU+73AM6!1;q0Ul7PQ3^!5W`vWC0$KR_vPKZNn z$3Jp?_}D$B?4(Qe&iDFEh*y}R{|B)|Ua5cV%*vZhr79(P2(-67{pa#cAOHo{O%3aF z5M$x+>$76)YDA@|^Y7u`Y<8GCk-ufF6`jMjb#+ad6I?6RY{!`KD&5z@U&wxyNU?>> zg*3`m|4jf3hOHb-Qv-#We_xq~84>D~a~&}l%(noE^6P$hoR3i6Ego9~y+v9LhvQ|u zzMp{BPg?PtCrk4Cr9uPm=;Shlz4bBc?X^kx;YV?DG8;N3XEQSol_I*(==8}i3|Lrfq6}Gx0~&3+_c%V%vm;ULd9C#Kz8fboS$S3=^Y4tatrP6RKIL)Uk zHV4bKKWH!2=bW#a@!E)rZG-GsKD4C;RnhhGay#7@NvZ#032uY?M*mi02#_4jP9%Lx zrV1MfY5}=UCIfxiQ7JfBus1UKSe*_%Vd397x}tTXckNrNKAPuM8`sV%1H%h_VF{^t zpSc7?9sCl_Nz|WhQI$*u<&$sNIU$+bNs?(e$ibJBH|TmZ0xj~LDh6BAv0FGS7&wxc=3k~zZKoH7n|OSCw4aUgvoknHzc z4wFSV>41#v1PuFQ76!Tgf)@tcgZh-wSx3%P_fXspG1@6tb!js7+8}B7%ToHVQx9)T z?3?^GX3BAYqwSR&oV+%#H{talyux?)xvt{#Jx!|-8*R|gzdEn%O@gWx+Z>>LcaA;{ zaHT1=LQK_B+IdgLC|byDtJGAD-dxS+MP_G#23RUg?A3M=yt@%W!k7?ZF%`cOcLsyM zpY3aEejF&kcw$vJsdlP0fjbq=8`o=XKb5s4a0pHUoZMM|^`0rTv?ToRL&v@4(eQW}K1*?w6Z91PJIiHAZX(S(fW|kV7D_R$6Rq#yP3rMlQ>~6T z8#q}sayHXcF3@Y|dRFb7T-a&b=wDS7IjL7*N9_92AK3i0vYvNQycS4I7E#%@M7Ury z#;vVqzQ||p0a=mMcy3?e=V(p}b58Nd>Jt5PZ?lxP$^P{Ac`z&)Qm~>>hHbg-qa6+= z+QeKnq88u(i#c()%|~f|s&4x;do%vb0eBYQ)RrFrU(yUtOuTgug(N1Bqu}n|tT^~Q z!{yGNjc#ggIDAj*j9a{A^hnz?--{VeECUB`Krr^H6@!4@sh@z@0DjOX$>;%n)tM`u zyBnx=IwqKPSNL@NJ0ye(`9yuXDxqD&WX1A%*RX{QkgJKB8Yj2#);<(pP2a>r4^*VB z&B~t}e0oU=Fgt5ve-7!4%g}Vazs|bN$xSms++vg*Iti%w%_b7QJ?Sw4o$`LS%2O8+q?eBa9PD5>t28d0LL3}Yj*1N&~F`!yhK z3GXTr{nK`T>~dfKK3=&8!hAcSp3bhQ{0E98IpK!5`kx0(#dNP;R)oXBKw#OLS1&yA z+^1r2yoJ)**FxI}b8}WoZnzgOv{en;RkDo_p60`lFRIV*<;sc4f83)$ReTw_c+C*n z;v8B;ct(t^*6^<+Kv({@B#WsS8flwHGk)=KryR>gZmRC#gekcJ!#C;9P^*@LG>rR# zGzTUq{c92&GJO~Peu#ET8F&eZ#(#-Kp z7haaVZf$I@;{QU`qD8P&lJiref>NbgPK~6qyqDD+; z47YxVH%pCRsp*nE{?I$_14Z-Kn`0$~F$0xbT(~}d2jwl8{!@zkbmv=iEdxaBUl*T_96V<@psoIz=PZ#7G(vMwPOEgUCF zgb|m3Y_?ByE8mKA=+ZmHnfy?eJ|Y;U&ELxpc?e@wJ-8OLX6m3*vd03wO9SBS8B%u1AKkuCSQcX)b%QZ=Ux58LkYZJ1}TQ#U2 zdzp*rKRat3Gay4AeVn{|OnR zM@m~ly&5O<#On=Caj_t4&I(3Zcb;>x)H9ugd>d~Fs(MR@CJh=59nwAvS;bpJ-#8%&vuCr%XB?|ysH4kI7e84w_#Lw{HyC0S#-%6s_dmvBz8g9yhZnd@Lt zlPGs_!y9Yo41YcSR;+RBs6xSeTJ#ko48|AzqlEtm9Xh#8A(7+X(O=6O*4Tcex^^*) zwx!^}z$50mrJF?(`uGcALwC1|n^HQ6zH98o3(A?yfPUmQeo^W&60#yJLj}fmy74?a zaCuXtg?@{^sL!-udt1xa+8(4}E;F^>ul1wWjB^nu$xL^THH%{RO-TGbqHqzRu2$$`jx}vDc{FWc108Y49BI=_`NM{G581i(4`&)xm9SsW=WZ z(D(C;jh$;mAq8+Xl5xn@WdMtwdt^q$55`fN8{jR~vjiC?+HLI9Q4@6!TX<$Y`*vMk zkdinpBXN_bxtik%;E-eef(5(yzw1#o$bzwW{P&=UByy+=uT=hcW?R#T6e}GNKzff6u>WHs;g8AC4ZSU zOg_i`;5OXg0c%HfLzoVm&Lur8@UDf5iaNRlP4CSdw$2WSO80*D%rR)-t)cbG7Y^o6 z;)CQ{Bjs5#UP&At0VU=EEqr;6B_=N6T?V7dLWpzEDofJ6ptL9>wM|S541~xZMf)<2 zx)wY2hbLZniuSlng1{J=z(ZPUBD<}3&}doYSXz1sywD*1$PNu-v1B999nW$^MQ+;P zG?hw%-1oB!&N}3{1p>gh-|qU(U2qD2m^#1*#OCl$ zu@5E*{I2fZ`%*5!#@m(N40yQ`SB1W&qPn!P0PlK-k&7cUxb7GTs_W!gdI6P=4RwQ51#eDVe9<@!B&Z^!$m``2N?j(my|S zj}|!da^phNLgm+HVa_SPGX)BrRgRmh?pa#2z)!yIHooR1@t z2;98-t2KuCUK4)FC4u5tUO9R%2%+|ON$1Bt(1al+#zlH*AJx!*e*-!Pl3c_ax9l$+ zU)8m=yWE3Nf||GaI7uFlJ+7R9pXsn+Oln;CJdB6P6Q_~Idx(Vu;z%)zRwHc8qbo;v^ovlZ9 zPo7A+45Kdxsm}RPRZlKv7@4vfRF3sNZC+M;{<4vz03QXst+G(MwP4-H6n<=dY5ZHDnaGewO%$KJ`J1@c|m zao8rI1`KC^M-gyY%j|$u408=DXo6SH4n&}Z@jHX&M6q-&+yV7IQ_>mY0*bUr3N5}K zF&P*IWw#UMLwmt+*;9}?AkEY7r9PpT0X>&|6Jwqs%=)F9T=`iCGZ|v2OLQ$Wt<)8JXAJ&$~aK-us4Q!RD#UfI;^r?6~Eu z=AO##TA(FBklB=3hi0u_ykh10Z3{O7J3dQOy90p5eqC2ncgFheqa54-e&4A%004N}lcq%<0ot=lM@#`4009610073+E|~xT0074MGEV>i J007bC8*Cd?{@?%r delta 17820 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 WBTI}K|J%Q?{;QD$f#&z|9R3gS#G_*X delta 14579 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 z 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 z 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 H!?XE6sto2< delta 11425 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 YNQ_Tc3qZifB(emu763pa2GIieA9pwc=Kufz diff --git a/fonts/HTML-CSS/TeX/woff/MathJax_Script-Regular.woff b/fonts/HTML-CSS/TeX/woff/MathJax_Script-Regular.woff index 9d65c417a57b079795d1e6ff6b42e6779235ab84..ed5b3d5db9d2cabb9e1839371acfcb7f8e521588 100644 GIT binary patch delta 448 zcmcZ+b0cPgQ9a8S1_q7g3=Dd=-nDz|adQjt1+r}z7#L(gIDTVIn7fOs8v}#x93Wp7 zh!q%o8Cd*-^^F)97*l}!ARta~lZtqooSRs{z`z2;47otLsMNUpc^RpRKsAgUKrs^_ zHe)|fnU(<*1d4&|P++KMU{K*mVtkvCTT%hEWDiiV0feKTvAX0YRsaoSi~;i5z*r%G zAulmE6)3iYfq`i&P`J_He8Aa){NfUz#SegLgn?M$e;b2Q#jWIol!SzYw1f-XKTk=V z&;LBNarRHvfR=}kgkRc7{QZA_f3lAG%y(wYJ7su$6apDCIQhh(ny&pW?@{bJ`sn}u z`sWdOMhvb24NMH{Z?cClFa&_y%usP_@;glVs@yfxWLD_)i73#(DeOD2YZSAs`@t_0bY#?bu#ERP#c1TYF* sfPMmM;9^{+!2~q_oTl7l7VRb}21cM-hGSRsW`gOTM*blB;uGmy04H#U8~^|S delta 448 zcmcZ+b0cPgQ9UCE1B1qL1_r%b@7g`~xVeS+GB9XvU|?X70pXP1OUdpou5LiFGeEv9 z5GyeFGO+ju>l*>Z-T?VQK%C%S5cV@UH?e?$LCXQi&tqU*CRP9q)NTRt*}zyK zfFUn2Hx($>!@$6_6)4L#%QEe@_)UOv&iMzWxu(2c>WfiQHWf&nTN~a z1P4R%L80#q3_xW?Eb+-LB|(xWCM@M<2zVuU6eOCQkdly)kd_c&S@I~sX8+l6w!CNJ z4uWmniS@AwU;fws@7s7MWf%XGA_Id)7si?T{7FzfyZ(nyRO~wX=>Puu=Mi~E46XqU tObnYM+2bbf(QV=g0EG_F_|3Z*w=)R?ZAoKj{(qLojVA&aUoMP07y#<1hvNVM diff --git a/fonts/HTML-CSS/TeX/woff/MathJax_Size1-Regular.woff b/fonts/HTML-CSS/TeX/woff/MathJax_Size1-Regular.woff index eefec1cc4c6f5fcd292a025dc9bd644f19e26ffa..d785cb976993753b664017b3d8c028366e20204c 100644 GIT binary patch delta 467 zcmZ3YyFizx+~3X3KP1GTfkAA+L>{$z)&d3wffNP?QNBwY3IT3zA-+JF76t|e84!-& zSQGB<;_3#JzXIgT0~H0b(=Ovz1#jfPz3V8z5hSp`L+3g>5p^jf~uq3ZNxlfP(!%e57!ofE!Ybb&i~CYcS}KjG0;+0kUC)?R`}n>U{rA{ zIUyw>At5c{16TBPne+Ldr#8<1$r{k|@R9IK8;QT)&+K;M(B%{hcflVLm>?26t@F#XdA N7<&v17oSMy0RVJjhL8XN delta 483 zcmZ3WyF{0#+~3X3KP1GTfkAA^L>{$zMh*rBffNP?QNBwY3IT3zA-)U@f;kKf3^E{` z(t9b{-Nn@nDAobw%L1_iLmUH(f3Ut0P;3Q|?+3&QuAO1ClXDXbfMP#@{Fe+2Oj4q% zv-&bp6M<$6JpqcD0I?a%X4}LJpdbT-umq5=z!1s6pu#qp;YmhrNd-{Q0w~xI#79ae zaxTeDtNbI8fS1AtXkk8<5W0t!Q9#G$CwyO)jV~8 zrd7;IPDn{eNJvZAP<^$;V&45{+RWykxfgI8KDuGQp24s8GwZt}RA)3d#PG4HP0(Oy zzRSA@s)z3v$mXT*-_QJ?x<-h{K~N-tgJJ$kwkn|fkE01kK6E!WeiS*(GnrYenInLK h!4PEI=537onS_CsrZF`CKg;9B6T!fs;lj9s0RX<>k2C-P diff --git a/fonts/HTML-CSS/TeX/woff/MathJax_Size2-Regular.woff b/fonts/HTML-CSS/TeX/woff/MathJax_Size2-Regular.woff index 427c7130e23443253643fdc56a49c17265c671a9..2dcf7f65616642743fdbbe876234b3be3e4d25c7 100644 GIT binary patch delta 456 zcmaE&^+aoeQ9Y{<0|S2w1B1{jt1Ra@H@6U91_n_N1_lNh5RTti6XEXS>c+qzvH{4K z1!4t;Fa{R?V0|M721cMh20tK9aGx6KlboAaz`(##0^}b8%H3+&&X<~zng~?G$N>~H z0b(<@9hF-%fPz3V8z5hSp`L+3g|m*aAtSe>0%*wvpkO%=FR685V#!Uc02;^`1LU)T zv1R~6USe)4P;3hW1JhohaQ;8$h1&}9i-DH1S^(7u1F^#YHU^`LTgeG22?+^l2^zZd zWhBq%f1cVn`zLEa%fm;)FKZ)Hhom2SJeqoD7p9*jO1D0vH%H85k;VOj5 delta 496 zcmaE&^+aoeQ9UCE0|S2w1B1{jt1Ra@H@6U91_pr~1_lNh5Kig6lIM|+0P`hR+X4BEK+JH) zcF}ndee9=^KZw2<_SdCiPI5v@Lc#;)Bu+Mggro!(Ctig##?KNAY)lN%Ks6O}CZ{nP z%l_EfsMuxNVCvA=xX`{&a+L!kha@8}s{qh#Kow;yE9xgDNNEW?Nf&6_*s35R&UtHR zWr7aFvV7xCpaQTJ326x@g#7Qzp3nb0wQ=@O)_|6WNjKufCH}hqIIr~0b`7J09y_zJ zhX_N=N}fAVJ-lFh&pzt^uwUw%Esuks$O2A=$t7(3K=~g>6OMf7Zfw+?lE^KfJ^7(X kCI`^>nji;l-p06}Nf>Bt8bkB{vpjA*5ey6(E{r=E0AkOOZU6uP diff --git a/fonts/HTML-CSS/TeX/woff/MathJax_Size3-Regular.woff b/fonts/HTML-CSS/TeX/woff/MathJax_Size3-Regular.woff index 1016c680caa1c8e57be74efaa2b68d9bf3bc67e3..b54d80b651d37702cf57fea62fb3ae3d6f3f0d1f 100644 GIT binary patch delta 499 zcmdlZxkHkt+~3X3KP1GTfq`eoL>{$zRuu*Ywm%FE99*I~d@OEmA-+JFISdR8G9Vnk zu_nUZ#nlZcrU2y20XA(!NWCTcXDoG0Rsa|36MVIQKI#-kLm#qsAmrL2kpQjgO~3Pk4~BfbBth zK#WSp!)J{f84fsT$N|+RC!{en|3Ay)#uLH7py9%}1Eime@fVvC)IkrJlQ`J~5|R>F uoH!NI7(Yueum&-B1HB4#NE>I26ayoW&2a3B-b^t4(+CtN3>TkB=K}y|tCIBq delta 509 zcmdlXxkr+x+~3X3KP1GTfq`ewL>{$zMh*rBwm%FE99*I~d@OEmA-+I13j+g#3<#(6 zUP^X%adiWVDFFGhK&-&v#=znqtZxJqa{%&zCNU&E`Aw=o!1 z%-O8Q`ispD$Y%s%hBLN{&V%Sk_oYo9-Oz_TfH2cvz z9wyz05106>{it93bS{Lhb=Zp`2s(4fMw zMuwdoDF5SV!jTW%lRbGtIRY3MBtiCU-p06}Nf>Bd8bkB{vpjA*5ey6(E{r=E0GCmZ AKmY&$ diff --git a/fonts/HTML-CSS/TeX/woff/MathJax_Size4-Regular.woff b/fonts/HTML-CSS/TeX/woff/MathJax_Size4-Regular.woff index 5b0bfe35e1142100bf9d54f79f73740123a4b099..2d090f219b908ba79f1db2f35ec745bd3af66b64 100644 GIT binary patch delta 499 zcmZ3Zu|k8V+~3X3KP1GTfk8xLB9B@xoyV+@eb2F4}<40(yUsX(zU3=B+rfx`JLoGW(~oWyS;15))?>a;Q| zTiZX2v=vOO3MniMysCmu3>CLFM+xp{V!SnZ6aN$wwnvQG($;a6d~AMfSqya?M_rr5 z^5i7A8Mv~H-vHGnC!{en|3Ay)#sdsv4Hw28ApKm7QhZ8K2R&d;;$#y@NJ?OFN>)f? p{4Bx1R?UzG^eWIH`vj&)F)#wz49BkM%>>gwjX-h2aPf(BJ^+9?j(Gq8 delta 483 zcmZ3Xu||WZ+~3X3KP1GTfk8xPB9B@= zrT0>byNjzEP|N|ymjz-4hC~Jy|6qM1pjZNs4>XA(!DnK)Omc2w0Z?oMkiV6If$`Me z`_txUq$Z{?FbHG-#Y}+MjPaapat2TkC^iSkS73-_U{GNQ|bvw^Wm07G74ZYoeLf`Nf)FHkt2g>&Vug8bqVpm!vIYJ`DU;eQ*0 zQN^6icC1o-azH*K5Hp;yU34BqANy$paxlZiu)nSqb0$X#%QMcIoW^J(6Wp!X^;YV( zDJxssKZ~>#OsoniEDXGff=&!TWo0Z=>XXj0F@>3x?fE3bGe>1coAd`~4LzYP1)mQ@ zFmPoVzX6(AF()}8B_SapEx}@Uu({E^`_HtQ%|CN5;5dAA!~S&!zm6ZdU-YIj=Xyg7 zADh|)4Thrgyrob*yT5_#xBYnh$bbDCpCuZUG!C#ZEIY(@w_=X(Sw+4>4g!-Kg?l-G iK>-X#px?GJ?q?DPT9?Mq{QoSE8xJr%G+Y>WFaQ9@X^p@D diff --git a/fonts/HTML-CSS/TeX/woff/MathJax_Typewriter-Regular.woff b/fonts/HTML-CSS/TeX/woff/MathJax_Typewriter-Regular.woff index 737e5e7542ce53c809abc4c32e0cb83b500397b0..35fd9077d9dac11bee675a7643d41cc460fb29fa 100644 GIT binary patch delta 457 zcmcc8$#|ucae`4j>l_9KJ7xxkz+cZ?j$6CAh4?Zsxa?qHV2}af_>DCY?k=uw3=GZ- zfP7gXR$y4oz~UdQZ^XdBm;&Sn195^YTjY-9+{6L~29^e(I4cm}dTw~*e@1E|Pz@so zP>nGVo3Xl7PRRfY0>x~AdIegjJWc%{I#J~y!fXdq(@ zP>cjD_^5_405Vn7En9R&)XEH&CPwIIK^gn@yz1E@wAh!y^~F&I_cN=`^gNJvOa zh{)M}-C*ARXWGK%pSc%s96qXk>8HW3`Dg1h)m)e5nmOpPGfOZqgdX9MXMk$j^)r5! zVpr$)`Dg!|`*iU*2#N%-GfaqLQ)gfZU|^_Y0IHkpWpAVeQTI~qa4;)d+dqr61@FH4 zoaEthIKcsQhmbE&+2&u4$C(&!O`d1}NsDJnLs5#K(#Kzu1bi5#eem86bSlWgG=}E? zXL;OsA{ZDnT!0<}>f&N#vSR{TqGc}+)cnighZF-NP&LD`D|$1*^iLyy5Pk89bUpwI Ce2j1a delta 503 zcmcc8$#|ucae`4jBL@S69Ww(%;IC&c$F1GmLVOt*?0Fa%7-T>=rT0>byNjzEP)q~J zmjz-4hSdx#{=xc2Krs&>KNyG;+_r=tNzP3y0E*3FU|?hi;#89+gx*bN|GfgzHCL4`U0|DlZBk_w>U51`;TpynU16u8#sCRP9qbo>Am zV*}&50EWE8+*F_#P#x1zpzz63qb*Yl@{3Ct7+ekj)d&Nz!v8h~ql!73=dm)`*#Y^C zK+JH)cF}ndee9=^KZw2<_SdyyPI5v@Lc#;)Bu+Mggro$PLs1H8jGrYKI9D=k0II2& zGdYdXNa@zM>)nc7nbMcdSlQbCS)?s^_tobl50}FU4hG&jA$E|mCYDe2OLmAePf;!w z>byR^C4q@y+6V9LKq;^d326y4HdZVux7mL-TrKaJxPxF@cVc~P;urhb|1bG;`P^=Z z;bSvkV91=uvj?UJVr%F3`Dg!|`*iU*2#N%-GfXsLGpv|ndf~hmQ=rK4kBfKAX*A(f vm(g8*z((DF2f=Kp7T+;}1w7&KfMcQ60|jQpVb diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index 49448536d..05c984bf1 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -33,7 +33,7 @@ var EVENT, TOUCH, HOVER; // filled in later - var AXISHEIGHT = .25, + var CENTERLINE = .25, STRUTHEIGHT = 1, AFUZZ = .08, HFUZZ = .025, DFUZZ = .025; // adjustments to bounding box of character boxes @@ -62,7 +62,7 @@ }, "mjx-math": { - "display": "inline-block", + "display": "inline-block", "border-collapse":"collapse" }, "mjx-math *": {display:"inline-block", "text-align":"left"}, @@ -823,7 +823,7 @@ }, // - // Get the height, depth and width of a character + // Get the height, depth, and width of a character // (height and depth are of the font, not the character). // WARNING: causes reflow of the page! // @@ -939,9 +939,10 @@ } if (list.length) this.addCharList(node.firstChild,list,bbox); bbox.clean(); - if (bbox.d < 0) {bbox.D = bbox.d; bbox.d = 0} - if (bbox.h || bbox.a) node.firstChild.style[bbox.h < 0 ? "marginTop" : "paddingTop"] = this.Em(bbox.h-(bbox.a||0)); - if (bbox.d) node.firstChild.style[bbox.d < 0 ? "marginBottom": "paddingBottom"] = this.Em(bbox.d); + if (bbox.a == null) bbox.a = CENTERLINE; + if (bbox.d + bbox.a < 0) {bbox.D = bbox.d; bbox.d = -bbox.a} + if (bbox.h - bbox.a) node.firstChild.style[bbox.h - bbox.a < 0 ? "marginTop" : "paddingTop"] = this.Em(bbox.h-bbox.a); + if (bbox.d + bbox.a) node.firstChild.style[bbox.d + bbox.a < 0 ? "marginBottom": "paddingBottom"] = this.Em(bbox.d+bbox.a); return bbox; }, @@ -996,7 +997,7 @@ var s = 1.1*(H - h)/k + .3; // space to cover by extender s /= (ebox.h+ebox.d); // scale factor; this.Transform(ext, - "translateY("+CHTML.Em(-ebox.d+.25)+") scaleY("+s.toFixed(3).replace(/0+$/,"")+")", + "translateY("+CHTML.Em(-ebox.d+.25-s*CENTERLINE)+") scaleY("+s.toFixed(3).replace(/0+$/,"")+")", "left "+CHTML.Em(ebox.d) ); ext.style.paddingTop=ext.style.paddingBottom = 0; @@ -1073,8 +1074,9 @@ this.adjustHeights([left,ext,mid,ext2,right],hbox); if (ebox.D) ebox.d = ebox.D; hbox.t = hbox.h; hbox.b = hbox.d; - if (hbox.h !== ebox.h) node.style.marginTop = CHTML.Em(ebox.h - hbox.h); - if (hbox.d !== ebox.d) node.style.marginBottom = CHTML.Em(ebox.d - hbox.d); + var mt = ebox.h - hbox.h - CENTERLINE, mb = ebox.d - hbox.d + CENTERLINE; + if (mt) node.style.marginTop = CHTML.Em(mt); + if (mb) node.style.marginBottom = CHTML.Em(mb); hbox.h = ebox.h; hbox.d = ebox.d; if (BBOX) {hbox.scale = BBOX.scale; hbox.rscale = BBOX.rscale} return hbox; @@ -2061,7 +2063,7 @@ stack.appendChild(over); stack.appendChild(base); } if (obox.D) obox.d = obox.D; - if (obox.d < 0) { + if (obox.d + CENTERLINE < 0) { // // For negative depths, set the height and align to top // in order to avoid extra baseline space @@ -2112,7 +2114,7 @@ node.firstChild.lastChild.appendChild(under); } if (ubox.D) ubox.d = ubox.D; - if (ubox.d < 0) { + if (ubox.d + CENTERLINE < 0) { // // For negative depths, set the height and align to top // in order to avoid extra baseline space From 92deaa0993768c650a32a4fd1a1bedf491f63153 Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Sun, 2 Aug 2015 17:01:01 -0400 Subject: [PATCH 146/186] Handle WebKit problems with negative depth (again). --- unpacked/jax/output/CommonHTML/jax.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index 05c984bf1..544d56430 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -940,7 +940,7 @@ if (list.length) this.addCharList(node.firstChild,list,bbox); bbox.clean(); if (bbox.a == null) bbox.a = CENTERLINE; - if (bbox.d + bbox.a < 0) {bbox.D = bbox.d; bbox.d = -bbox.a} + if (bbox.d < 0) {bbox.D = bbox.d; bbox.d = 0} if (bbox.h - bbox.a) node.firstChild.style[bbox.h - bbox.a < 0 ? "marginTop" : "paddingTop"] = this.Em(bbox.h-bbox.a); if (bbox.d + bbox.a) node.firstChild.style[bbox.d + bbox.a < 0 ? "marginBottom": "paddingBottom"] = this.Em(bbox.d+bbox.a); return bbox; @@ -2063,7 +2063,7 @@ stack.appendChild(over); stack.appendChild(base); } if (obox.D) obox.d = obox.D; - if (obox.d + CENTERLINE < 0) { + if (obox.d < 0) { // // For negative depths, set the height and align to top // in order to avoid extra baseline space @@ -2114,7 +2114,7 @@ node.firstChild.lastChild.appendChild(under); } if (ubox.D) ubox.d = ubox.D; - if (ubox.d + CENTERLINE < 0) { + if (ubox.d < 0) { // // For negative depths, set the height and align to top // in order to avoid extra baseline space From 5c333a8b4777dff5dbb55d77e72b2a85406c558d Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Sun, 2 Aug 2015 17:16:15 -0400 Subject: [PATCH 147/186] Fix depth of horizontal stretchy characters to match HTML-CSS (should be based on extender as originally done, but font metrics don't really work for that with minus sign for arrows, for example). --- unpacked/jax/output/CommonHTML/jax.js | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index 49448536d..0cecd445c 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -1075,7 +1075,7 @@ hbox.t = hbox.h; hbox.b = hbox.d; if (hbox.h !== ebox.h) node.style.marginTop = CHTML.Em(ebox.h - hbox.h); if (hbox.d !== ebox.d) node.style.marginBottom = CHTML.Em(ebox.d - hbox.d); - hbox.h = ebox.h; hbox.d = ebox.d; +// hbox.h = ebox.h; hbox.d = ebox.d; if (BBOX) {hbox.scale = BBOX.scale; hbox.rscale = BBOX.rscale} return hbox; }, @@ -1100,22 +1100,22 @@ for (var i = 0, m = data[0].length; i < m; i++) text += String.fromCharCode(data[0][i]); } else text = String.fromCharCode(data[0]); if (data[4]) scale *= data[4]; - if (scale !== 1) node.style.fontSize = this.Percent(scale); - var bbox = this.handleText(node,text,variant); + var bbox = this.handleText(node,text,variant), style = node.firstChild.style; + if (scale !== 1) style.fontSize = this.Percent(scale); if (data[2]) { // x offset - node.style.paddingLeft = this.Em(data[2]); + style.paddingLeft = this.Em(data[2]); bbox.w += data[2]; bbox.r += data[2]; } if (data[3]) { // y offset - node.style.verticalAlign = this.Em(data[3]); + style.verticalAlign = this.Em(data[3]); bbox.h += data[3]; if (bbox.h < 0) bbox.h = 0; } if (data[5]) { // extra height - node.style.marginTop = this.Em(data[5]); + style.marginTop = this.Em(data[5]); bbox.h += data[5]; bbox.t += data[5]; } if (data[6]) { // extra depth - node.style.marginBottom = this.Em(data[6]); + style.marginBottom = this.Em(data[6]); bbox.d += data[6]; bbox.b += data[6]; } return bbox; From cbb5547af143a6fc7cb750be08c1270ce01a6393 Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Tue, 4 Aug 2015 11:21:03 -0400 Subject: [PATCH 148/186] Don't collapse borders for tables (this caused actual border rules to disappear when changing sizes in Firefox). See also issue #1095. --- unpacked/jax/output/CommonHTML/jax.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index 0cecd445c..3f426b8db 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -62,8 +62,9 @@ }, "mjx-math": { - "display": "inline-block", - "border-collapse":"collapse" + "display": "inline-block", + "border-collapse": "separate", + "border-spacing": 0, }, "mjx-math *": {display:"inline-block", "text-align":"left"}, From 425c9df6e99fe77781c529b9e83d573f626afbc8 Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Wed, 5 Aug 2015 16:39:06 -0400 Subject: [PATCH 149/186] Move old CommonHTML to be FastHTML --- unpacked/MathJax.js | 12 +- unpacked/config/AM_HTMLorMML-full.js | 2 +- unpacked/config/AM_HTMLorMML.js | 2 +- unpacked/config/Accessible-full.js | 2 +- unpacked/config/Accessible.js | 2 +- unpacked/config/MML_HTMLorMML.js | 2 +- unpacked/config/TeX-AMS-MML_HTMLorMML-full.js | 2 +- unpacked/config/TeX-AMS-MML_HTMLorMML.js | 2 +- unpacked/config/TeX-AMS-MML_SVG-full.js | 2 +- unpacked/config/TeX-AMS-MML_SVG.js | 2 +- unpacked/config/TeX-AMS_HTML-full.js | 2 +- unpacked/config/TeX-AMS_HTML.js | 2 +- unpacked/config/TeX-MML-AM_HTMLorMML-full.js | 2 +- unpacked/config/TeX-MML-AM_HTMLorMML.js | 2 +- unpacked/extensions/MathMenu.js | 11 +- unpacked/jax/output/FastHTML/config.js | 53 + unpacked/jax/output/FastHTML/jax.js | 1085 +++++++++++++++++ 17 files changed, 1165 insertions(+), 22 deletions(-) create mode 100644 unpacked/jax/output/FastHTML/config.js create mode 100644 unpacked/jax/output/FastHTML/jax.js diff --git a/unpacked/MathJax.js b/unpacked/MathJax.js index 1c4d79fb4..da9702b99 100644 --- a/unpacked/MathJax.js +++ b/unpacked/MathJax.js @@ -2542,8 +2542,8 @@ MathJax.Hub.Startup = { ["Post",this.signal,"Begin Cookie"], ["Get",MathJax.HTML.Cookie,"menu",MathJax.Hub.config.menuSettings], [function (config) { - if (config.menuSettings.locale) - {MathJax.Localization.resetLocale(config.menuSettings.locale)} + var SETTINGS = config.menuSettings; + if (SETTINGS.locale) MathJax.Localization.resetLocale(SETTINGS.locale); var renderer = config.menuSettings.renderer, jax = config.jax; if (renderer) { var name = "output/"+renderer; jax.sort(); @@ -2555,8 +2555,12 @@ MathJax.Hub.Startup = { } jax.unshift(name); } - if (config.menuSettings.CHTMLpreview && !MathJax.Extension["CHTML-preview"]) - {MathJax.Hub.config.extensions.push("CHTML-preview.js")} + if (SETTINGS.CHTMLpreview != null) { + if (SETTINGS.FHTMLpreview == null) SETTINGS.FHTMLpreview = SETTINGS.CHTMLpreview; + delete SETTINGS.CHTMLpreview; + } + if (SETTINGS.FHTMLpreview && !MathJax.Extension["FHTML-preview"]) + MathJax.Hub.config.extensions.push("FHTML-preview.js"); },MathJax.Hub.config], ["Post",this.signal,"End Cookie"] ); diff --git a/unpacked/config/AM_HTMLorMML-full.js b/unpacked/config/AM_HTMLorMML-full.js index 6c1613877..d9c3e1dc2 100644 --- a/unpacked/config/AM_HTMLorMML-full.js +++ b/unpacked/config/AM_HTMLorMML-full.js @@ -19,7 +19,7 @@ MathJax.Hub.Config({ config: ["MMLorHTML.js"], extensions: ["asciimath2jax.js","MathEvents.js","MathZoom.js","MathMenu.js","toMathML.js","CHTML-preview.js"], - jax: ["input/AsciiMath","output/HTML-CSS","output/NativeMML","output/CommonHTML"] + jax: ["input/AsciiMath","output/HTML-CSS","output/NativeMML","output/FastHTML"] }); MathJax.Ajax.loadComplete("[MathJax]/config/AM_HTMLorMML-full.js"); diff --git a/unpacked/config/AM_HTMLorMML.js b/unpacked/config/AM_HTMLorMML.js index ae1d5cf6e..aa7308ab0 100644 --- a/unpacked/config/AM_HTMLorMML.js +++ b/unpacked/config/AM_HTMLorMML.js @@ -19,7 +19,7 @@ MathJax.Hub.Config({ config: ["MMLorHTML.js"], extensions: ["asciimath2jax.js","MathEvents.js","MathZoom.js","MathMenu.js","toMathML.js","CHTML-preview.js"], - jax: ["input/AsciiMath","output/HTML-CSS","output/NativeMML","output/CommonHTML"] + jax: ["input/AsciiMath","output/HTML-CSS","output/NativeMML","output/FastHTML"] }); MathJax.Ajax.loadComplete("[MathJax]/config/AM_HTMLorMML.js"); diff --git a/unpacked/config/Accessible-full.js b/unpacked/config/Accessible-full.js index 4bcc4fe6d..7a2a86396 100644 --- a/unpacked/config/Accessible-full.js +++ b/unpacked/config/Accessible-full.js @@ -19,7 +19,7 @@ MathJax.Hub.Config({ config: ["MMLorHTML.js"], extensions: ["tex2jax.js","mml2jax.js","MathEvents.js","MathZoom.js","MathMenu.js","toMathML.js","TeX/noErrors.js","TeX/noUndefined.js","TeX/AMSmath.js","TeX/AMSsymbols.js","CHTML-preview.js"], - jax: ["input/TeX","input/MathML","output/HTML-CSS","output/NativeMML","output/CommonHTML"], + jax: ["input/TeX","input/MathML","output/HTML-CSS","output/NativeMML","output/FastHTML"], menuSettings: { zoom: "Double-Click", mpContext: true, diff --git a/unpacked/config/Accessible.js b/unpacked/config/Accessible.js index 1f60440fb..d640355e3 100644 --- a/unpacked/config/Accessible.js +++ b/unpacked/config/Accessible.js @@ -19,7 +19,7 @@ MathJax.Hub.Config({ config: ["MMLorHTML.js"], extensions: ["tex2jax.js","mml2jax.js","MathEvents.js","MathZoom.js","MathMenu.js","toMathML.js","TeX/noErrors.js","TeX/noUndefined.js","TeX/AMSmath.js","TeX/AMSsymbols.js","CHTML-preview.js"], - jax: ["input/TeX","input/MathML","output/HTML-CSS","output/NativeMML","output/CommonHTML"], + jax: ["input/TeX","input/MathML","output/HTML-CSS","output/NativeMML","output/FastHTML"], menuSettings: { zoom: "Double-Click", mpContext: true, diff --git a/unpacked/config/MML_HTMLorMML.js b/unpacked/config/MML_HTMLorMML.js index 0060ffc70..2d8f00b94 100644 --- a/unpacked/config/MML_HTMLorMML.js +++ b/unpacked/config/MML_HTMLorMML.js @@ -19,7 +19,7 @@ MathJax.Hub.Config({ config: ["MMLorHTML.js"], extensions: ["mml2jax.js","MathEvents.js","MathZoom.js","MathMenu.js","toMathML.js","CHTML-preview.js"], - jax: ["input/MathML","output/HTML-CSS","output/NativeMML","output/CommonHTML"] + jax: ["input/MathML","output/HTML-CSS","output/NativeMML","output/FastHTML"] }); MathJax.Ajax.loadComplete("[MathJax]/config/MML_HTMLorMML.js"); diff --git a/unpacked/config/TeX-AMS-MML_HTMLorMML-full.js b/unpacked/config/TeX-AMS-MML_HTMLorMML-full.js index 2424df366..94d8d8995 100644 --- a/unpacked/config/TeX-AMS-MML_HTMLorMML-full.js +++ b/unpacked/config/TeX-AMS-MML_HTMLorMML-full.js @@ -19,7 +19,7 @@ MathJax.Hub.Config({ config: ["MMLorHTML.js"], extensions: ["tex2jax.js","mml2jax.js","MathEvents.js","MathZoom.js","MathMenu.js","toMathML.js","TeX/noErrors.js","TeX/noUndefined.js","TeX/AMSmath.js","TeX/AMSsymbols.js","CHTML-preview.js"], - jax: ["input/TeX","input/MathML","output/HTML-CSS","output/NativeMML","output/CommonHTML"] + jax: ["input/TeX","input/MathML","output/HTML-CSS","output/NativeMML","output/FastHTML"] }); MathJax.Ajax.loadComplete("[MathJax]/config/TeX-AMS-MML_HTMLorMML-full.js"); diff --git a/unpacked/config/TeX-AMS-MML_HTMLorMML.js b/unpacked/config/TeX-AMS-MML_HTMLorMML.js index aa962d6a0..21125280e 100644 --- a/unpacked/config/TeX-AMS-MML_HTMLorMML.js +++ b/unpacked/config/TeX-AMS-MML_HTMLorMML.js @@ -19,7 +19,7 @@ MathJax.Hub.Config({ config: ["MMLorHTML.js"], extensions: ["tex2jax.js","mml2jax.js","MathEvents.js","MathZoom.js","MathMenu.js","toMathML.js","TeX/noErrors.js","TeX/noUndefined.js","TeX/AMSmath.js","TeX/AMSsymbols.js","CHTML-preview.js"], - jax: ["input/TeX","input/MathML","output/HTML-CSS","output/NativeMML","output/CommonHTML"] + jax: ["input/TeX","input/MathML","output/HTML-CSS","output/NativeMML","output/FastHTML"] }); MathJax.Ajax.loadComplete("[MathJax]/config/TeX-AMS-MML_HTMLorMML.js"); diff --git a/unpacked/config/TeX-AMS-MML_SVG-full.js b/unpacked/config/TeX-AMS-MML_SVG-full.js index 51d1d589b..2d50e3dda 100644 --- a/unpacked/config/TeX-AMS-MML_SVG-full.js +++ b/unpacked/config/TeX-AMS-MML_SVG-full.js @@ -18,7 +18,7 @@ MathJax.Hub.Config({ extensions: ["tex2jax.js","mml2jax.js","MathEvents.js","MathZoom.js","MathMenu.js","toMathML.js","TeX/noErrors.js","TeX/noUndefined.js","TeX/AMSmath.js","TeX/AMSsymbols.js","CHTML-preview.js"], - jax: ["input/TeX","input/MathML","output/SVG","output/CommonHTML"] + jax: ["input/TeX","input/MathML","output/SVG","output/FastHTML"] }); MathJax.Ajax.loadComplete("[MathJax]/config/TeX-AMS-MML_SVG-full.js"); diff --git a/unpacked/config/TeX-AMS-MML_SVG.js b/unpacked/config/TeX-AMS-MML_SVG.js index b7b4f896a..c5080d17f 100644 --- a/unpacked/config/TeX-AMS-MML_SVG.js +++ b/unpacked/config/TeX-AMS-MML_SVG.js @@ -18,7 +18,7 @@ MathJax.Hub.Config({ extensions: ["tex2jax.js","mml2jax.js","MathEvents.js","MathZoom.js","MathMenu.js","toMathML.js","TeX/noErrors.js","TeX/noUndefined.js","TeX/AMSmath.js","TeX/AMSsymbols.js","CHTML-preview.js"], - jax: ["input/TeX","input/MathML","output/SVG","output/CommonHTML"] + jax: ["input/TeX","input/MathML","output/SVG","output/FastHTML"] }); MathJax.Ajax.loadComplete("[MathJax]/config/TeX-AMS-MML_SVG.js"); diff --git a/unpacked/config/TeX-AMS_HTML-full.js b/unpacked/config/TeX-AMS_HTML-full.js index 0fbde4259..51952ab70 100644 --- a/unpacked/config/TeX-AMS_HTML-full.js +++ b/unpacked/config/TeX-AMS_HTML-full.js @@ -18,7 +18,7 @@ MathJax.Hub.Config({ extensions: ["tex2jax.js","MathEvents.js","MathZoom.js","MathMenu.js","toMathML.js","TeX/noErrors.js","TeX/noUndefined.js","TeX/AMSmath.js","TeX/AMSsymbols.js","CHTML-preview.js"], - jax: ["input/TeX","output/HTML-CSS","output/CommonHTML"] + jax: ["input/TeX","output/HTML-CSS","output/FastHTML"] }); MathJax.Ajax.loadComplete("[MathJax]/config/TeX-AMS_HTML-full.js"); diff --git a/unpacked/config/TeX-AMS_HTML.js b/unpacked/config/TeX-AMS_HTML.js index f193f0f27..36be30915 100644 --- a/unpacked/config/TeX-AMS_HTML.js +++ b/unpacked/config/TeX-AMS_HTML.js @@ -18,7 +18,7 @@ MathJax.Hub.Config({ extensions: ["tex2jax.js","MathEvents.js","MathZoom.js","MathMenu.js","toMathML.js","TeX/noErrors.js","TeX/noUndefined.js","TeX/AMSmath.js","TeX/AMSsymbols.js","CHTML-preview.js"], - jax: ["input/TeX","output/HTML-CSS","output/CommonHTML"] + jax: ["input/TeX","output/HTML-CSS","output/FastHTML"] }); MathJax.Ajax.loadComplete("[MathJax]/config/TeX-AMS_HTML.js"); diff --git a/unpacked/config/TeX-MML-AM_HTMLorMML-full.js b/unpacked/config/TeX-MML-AM_HTMLorMML-full.js index d9f22c3df..68d69f87b 100644 --- a/unpacked/config/TeX-MML-AM_HTMLorMML-full.js +++ b/unpacked/config/TeX-MML-AM_HTMLorMML-full.js @@ -19,7 +19,7 @@ MathJax.Hub.Config({ config: ["MMLorHTML.js"], extensions: ["tex2jax.js","mml2jax.js","asciimath2jax.js","MathEvents.js","MathZoom.js","MathMenu.js","toMathML.js","TeX/noErrors.js","TeX/noUndefined.js","TeX/AMSmath.js","TeX/AMSsymbols.js","CHTML-preview.js"], - jax: ["input/TeX","input/MathML","input/AsciiMath","output/HTML-CSS","output/NativeMML","output/CommonHTML"] + jax: ["input/TeX","input/MathML","input/AsciiMath","output/HTML-CSS","output/NativeMML","output/FastHTML"] }); MathJax.Ajax.loadComplete("[MathJax]/config/TeX-MML-AM_HTMLorMML-full.js"); diff --git a/unpacked/config/TeX-MML-AM_HTMLorMML.js b/unpacked/config/TeX-MML-AM_HTMLorMML.js index cd7130954..e97f3890c 100644 --- a/unpacked/config/TeX-MML-AM_HTMLorMML.js +++ b/unpacked/config/TeX-MML-AM_HTMLorMML.js @@ -19,7 +19,7 @@ MathJax.Hub.Config({ config: ["MMLorHTML.js"], extensions: ["tex2jax.js","mml2jax.js","asciimath2jax.js","MathEvents.js","MathZoom.js","MathMenu.js","toMathML.js","TeX/noErrors.js","TeX/noUndefined.js","TeX/AMSmath.js","TeX/AMSsymbols.js","CHTML-preview.js"], - jax: ["input/TeX","input/MathML","input/AsciiMath","output/HTML-CSS","output/NativeMML","output/CommonHTML"] + jax: ["input/TeX","input/MathML","input/AsciiMath","output/HTML-CSS","output/NativeMML","output/FastHTML"] }); MathJax.Ajax.loadComplete("[MathJax]/config/TeX-MML-AM_HTMLorMML.js"); diff --git a/unpacked/extensions/MathMenu.js b/unpacked/extensions/MathMenu.js index dcbbab3f7..5682f5062 100644 --- a/unpacked/extensions/MathMenu.js +++ b/unpacked/extensions/MathMenu.js @@ -1089,12 +1089,13 @@ ), ITEM.RULE(), ITEM.SUBMENU(["Renderer","Math Renderer"], {hidden:!CONFIG.showRenderer}, - ITEM.RADIO("HTML-CSS", "renderer", {action: MENU.Renderer}), - ITEM.RADIO("Fast HTML", "renderer", {action: MENU.Renderer, value:"CommonHTML"}), - ITEM.RADIO("MathML", "renderer", {action: MENU.Renderer, value:"NativeMML"}), - ITEM.RADIO("SVG", "renderer", {action: MENU.Renderer}), + ITEM.RADIO("HTML-CSS", "renderer", {action: MENU.Renderer}), + ITEM.RADIO("Common HTML","renderer", {action: MENU.Renderer, value:"CommonHTML"}), + ITEM.RADIO("Fast HTML", "renderer", {action: MENU.Renderer, value:"FastHTML"}), + ITEM.RADIO("MathML", "renderer", {action: MENU.Renderer, value:"NativeMML"}), + ITEM.RADIO("SVG", "renderer", {action: MENU.Renderer}), ITEM.RULE(), - ITEM.CHECKBOX("Fast Preview", "CHTMLpreview") + ITEM.CHECKBOX("Fast Preview", "FHTMLpreview") ), ITEM.SUBMENU("MathPlayer", {hidden:!HUB.Browser.isMSIE || !CONFIG.showMathPlayer, disabled:!HUB.Browser.hasMathPlayer}, diff --git a/unpacked/jax/output/FastHTML/config.js b/unpacked/jax/output/FastHTML/config.js new file mode 100644 index 000000000..13addf3af --- /dev/null +++ b/unpacked/jax/output/FastHTML/config.js @@ -0,0 +1,53 @@ +/* -*- Mode: Javascript; indent-tabs-mode:nil; js-indent-level: 2 -*- */ +/* vim: set ts=2 et sw=2 tw=80: */ + +/************************************************************* + * + * MathJax/jax/output/FastHTML/config.js + * + * Initializes the FastHTML OutputJax (the main definition is in + * MathJax/jax/input/FastHTML/jax.js, which is loaded when needed). + * + * --------------------------------------------------------------------- + * + * Copyright (c) 2013-2015 The MathJax Consortium + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +MathJax.OutputJax.FastHTML = MathJax.OutputJax({ + id: "FastHTML", + version: "2.5.0", + directory: MathJax.OutputJax.directory + "/FastHTML", + extensionDir: MathJax.OutputJax.extensionDir + "/FastHTML", + + config: { + scale: 100, minScaleAdjust: 50, // global math scaling factor, and minimum adjusted scale factor + mtextFontInherit: false, // to make be in page font rather than MathJax font + + linebreaks: { + automatic: false, // when false, only process linebreak="newline", + // when true, insert line breaks automatically in long expressions. + + width: "container" // maximum width of a line for automatic line breaks (e.g. "30em"). + // use "container" to compute size from containing element, + // use "nn% container" for a portion of the container, + // use "nn%" for a portion of the window size + } + + } +}); + +if (!MathJax.Hub.config.delayJaxRegistration) {MathJax.OutputJax.FastHTML.Register("jax/mml")} + +MathJax.OutputJax.FastHTML.loadComplete("config.js"); diff --git a/unpacked/jax/output/FastHTML/jax.js b/unpacked/jax/output/FastHTML/jax.js new file mode 100644 index 000000000..e02122a3c --- /dev/null +++ b/unpacked/jax/output/FastHTML/jax.js @@ -0,0 +1,1085 @@ +/* -*- Mode: Javascript; indent-tabs-mode:nil; js-indent-level: 2 -*- */ +/* vim: set ts=2 et sw=2 tw=80: */ + +/************************************************************* + * + * MathJax/jax/output/FastHTML/jax.js + * + * Implements the FastHTML OutputJax that displays mathematics + * using HTML to position the characters from math fonts + * in their proper locations. + * + * --------------------------------------------------------------------- + * + * Copyright (c) 2013-2015 The MathJax Consortium + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + +(function (AJAX,HUB,HTML,FHTML) { + var MML; + + var EVENT, TOUCH, HOVER; // filled in later + + var FONTS = "'Times New Roman',Times,STIXGeneral,serif"; + var STYLES = { + ".MJXf-script": {"font-size":".8em"}, + + ".MJXf-right": { + "-webkit-transform-origin":"right", + "-moz-transform-origin":"right", + "-ms-transform-origin":"right", + "-o-transform-origin":"right", + "transform-origin":"right" + }, + + ".MJXf-bold": {"font-weight":"bold"}, + ".MJXf-italic": {"font-style":"italic"}, + ".MJXf-scr": {"font-family":"MathJax_Script,"+FONTS}, + ".MJXf-frak": {"font-family":"MathJax_Fraktur,"+FONTS}, + ".MJXf-sf": {"font-family":"MathJax_SansSerif,"+FONTS}, + ".MJXf-cal": {"font-family":"MathJax_Caligraphic,"+FONTS}, + ".MJXf-mono": {"font-family":"MathJax_Typewriter,"+FONTS}, + ".MJXf-largeop": {"font-size":"150%"}, + ".MJXf-largeop.MJXf-int": {"vertical-align":"-.2em"}, + + ".MJXf-math": { + "display": "inline-block", + "line-height": "1.2", + "text-indent": "0", + "font-family": FONTS, + "white-space":"nowrap", + "border-collapse":"collapse" + }, + ".MJXf-display": { + "display": "block", + "text-align": "center", + "margin": "1em 0" + }, + ".MJXf-math span": {"display": "inline-block"}, + ".MJXf-box": {"display":"block!important", "text-align": "center"}, + ".MJXf-box:after": {"content": '" "'}, // needed for when there is no DOCTYPE + ".MJXf-rule": {"display":"block!important", "margin-top":".1em"}, + ".MJXf-char": {"display":"block!important"}, + + ".MJXf-mo": {"margin": "0 .15em"}, + + ".MJXf-mfrac": {"margin": "0 .125em", "vertical-align":".25em"}, + ".MJXf-denom": {"display": "inline-table!important", "width":"100%"}, + ".MJXf-denom > *": {"display": "table-row!important"}, + + ".MJXf-surd": {"vertical-align":"top"}, + ".MJXf-surd > *": {"display":"block!important"}, + + ".MJXf-script-box > * ": {"display":"table!important", "height":"50%"}, + ".MJXf-script-box > * > *": {"display":"table-cell!important","vertical-align":"top"}, + ".MJXf-script-box > *:last-child > *": {"vertical-align":"bottom"}, + ".MJXf-script-box > * > * > *": {"display":"block!important"}, + + ".MJXf-mphantom": {"visibility": "hidden"}, + + ".MJXf-munderover": {"display":"inline-table!important"}, + ".MJXf-over": {"display":"inline-block!important","text-align":"center"}, + ".MJXf-over > *": {"display":"block!important"}, + ".MJXf-munderover > *": {"display":"table-row!important"}, + + ".MJXf-mtable": {"vertical-align":".25em", "margin":"0 .125em"}, + ".MJXf-mtable > *": {"display":"inline-table!important", "vertical-align":"middle"}, + ".MJXf-mtr": {"display":"table-row!important"}, + ".MJXf-mtd": {"display":"table-cell!important","text-align":"center","padding":".5em 0 0 .5em"}, + ".MJXf-mtr > .MJXf-mtd:first-child": {"padding-left":0}, + ".MJXf-mtr:first-child > .MJXf-mtd": {"padding-top":0}, + ".MJXf-mlabeledtr": {"display":"table-row!important"}, + ".MJXf-mlabeledtr > .MJXf-mtd:first-child": {"padding-left":0}, + ".MJXf-mlabeledtr:first-child > .MJXf-mtd": {"padding-top":0}, + + ".MJXf-merror": { + "background-color": "#FFFF88", + color: "#CC0000", + border: "1px solid #CC0000", + padding: "1px 3px", + "font-style": "normal", + "font-size": "90%" + } + }; + + (function () { + for (var i = 0; i < 10; i++) { + var scale = "scaleX(."+i+")"; + STYLES[".MJXf-scale"+i] = { + "-webkit-transform":scale, + "-moz-transform":scale, + "-ms-transform":scale, + "-o-transform":scale, + "transform":scale + } + } + })(); + + var BIGDIMEN = 1000000; + var V = "V", H = "H"; + + FHTML.Augment({ + settings: HUB.config.menuSettings, + config: {styles: STYLES}, + + hideProcessedMath: false, // use display:none until all math is processed + + maxStretchyParts: 1000, // limit the number of parts allowed for + // stretchy operators. See issue 366. + + Config: function () { + if (!this.require) {this.require = []} + this.SUPER(arguments).Config.call(this); var settings = this.settings; + if (settings.scale) {this.config.scale = settings.scale} + this.require.push(MathJax.OutputJax.extensionDir+"/MathEvents.js"); + }, + + Startup: function () { + // + // Set up event handling + // + EVENT = MathJax.Extension.MathEvents.Event; + TOUCH = MathJax.Extension.MathEvents.Touch; + HOVER = MathJax.Extension.MathEvents.Hover; + this.ContextMenu = EVENT.ContextMenu; + this.Mousedown = EVENT.AltContextMenu; + this.Mouseover = HOVER.Mouseover; + this.Mouseout = HOVER.Mouseout; + this.Mousemove = HOVER.Mousemove; + + // + // Determine pixels per inch + // + var div = HTML.addElement(document.body,"div",{style:{width:"5in"}}); + this.pxPerInch = div.offsetWidth/5; div.parentNode.removeChild(div); + + // + // Set up styles and preload web fonts + // + return AJAX.Styles(this.config.styles,["InitializeFHTML",this]); + }, + InitializeFHTML: function () { + }, + + preTranslate: function (state) { + var scripts = state.jax[this.id], i, m = scripts.length, + script, prev, span, div, jax; + // + // Loop through the scripts + // + for (i = 0; i < m; i++) { + script = scripts[i]; if (!script.parentNode) continue; + // + // Remove any existing output + // + prev = script.previousSibling; + if (prev && String(prev.className).match(/^MathJax_FHTML(_Display)?( MathJax_Processing)?$/)) + {prev.parentNode.removeChild(prev)} + // + // Add the span, and a div if in display mode, + // then set the role and mark it as being processed + // + jax = script.MathJax.elementJax; if (!jax) continue; + jax.FHTML = {display: (jax.root.Get("display") === "block")} + span = div = HTML.Element("span",{ + className:"MathJax_FHTML", id:jax.inputID+"-Frame", isMathJax:true, jaxID:this.id, + oncontextmenu:EVENT.Menu, onmousedown: EVENT.Mousedown, + onmouseover:EVENT.Mouseover, onmouseout:EVENT.Mouseout, onmousemove:EVENT.Mousemove, + onclick:EVENT.Click, ondblclick:EVENT.DblClick + }); + if (HUB.Browser.noContextMenu) { + span.ontouchstart = TOUCH.start; + span.ontouchend = TOUCH.end; + } + if (jax.FHTML.display) { + div = HTML.Element("div",{className:"MathJax_FHTML_Display"}); + div.appendChild(span); + } + // + div.className += " MathJax_Processing"; + script.parentNode.insertBefore(div,script); + } + }, + + Translate: function (script,state) { + if (!script.parentNode) return; + + // + // Get the data about the math + // + var jax = script.MathJax.elementJax, math = jax.root, + span = document.getElementById(jax.inputID+"-Frame"), + div = (jax.FHTML.display ? span.parentNode : span); + // + // Typeset the math + // + this.initFHTML(math,span); +// math.setTeXclass(); + try {math.toFastHTML(span)} catch (err) { + if (err.restart) {while (span.firstChild) {span.removeChild(span.firstChild)}} + throw err; + } + // + // Put it in place, and remove the processing marker + // + div.className = div.className.split(/ /)[0]; + // + // Check if we are hiding the math until more is processed + // + if (this.hideProcessedMath) { + // + // Hide the math and don't let its preview be removed + // + div.className += " MathJax_Processed"; + if (script.MathJax.preview) { + jax.FHTML.preview = script.MathJax.preview; + delete script.MathJax.preview; + } + } + }, + + postTranslate: function (state) { + var scripts = state.jax[this.id]; + if (!this.hideProcessedMath) return; + for (var i = 0, m = scripts.length; i < m; i++) { + var script = scripts[i]; + if (script && script.MathJax.elementJax) { + // + // Remove the processed marker + // + script.previousSibling.className = script.previousSibling.className.split(/ /)[0]; + var data = script.MathJax.elementJax.FHTML; + // + // Remove the preview, if any + // + if (data.preview) { + data.preview.innerHTML = ""; + script.MathJax.preview = data.preview; + delete data.preview; + } + } + } + }, + + getJaxFromMath: function (math) { + if (math.parentNode.className === "MathJax_FHTML_Display") {math = math.parentNode} + do {math = math.nextSibling} while (math && math.nodeName.toLowerCase() !== "script"); + return HUB.getJaxFor(math); + }, + getHoverSpan: function (jax,math) {return jax.root.FHTMLspanElement()}, + getHoverBBox: function (jax,span,math) { + var bbox = jax.root.FHTML, em = jax.FHTML.outerEm; + var BBOX = {w:bbox.w*em, h:bbox.h*em, d:bbox.d*em}; + if (bbox.width) {BBOX.width = bbox.width} + return BBOX; + }, + + Zoom: function (jax,span,math,Mw,Mh) { + // + // Re-render at larger size + // + span.className = "MathJax"; + this.idPostfix = "-zoom"; jax.root.toFHTML(span,span); this.idPostfix = ""; + // + // Get height and width of zoomed math and original math + // + span.style.position = "absolute"; + if (!width) {math.style.position = "absolute"} + var zW = span.offsetWidth, zH = span.offsetHeight, + mH = math.offsetHeight, mW = math.offsetWidth; + if (mW === 0) {mW = math.parentNode.offsetWidth}; // IE7 gets mW == 0? + span.style.position = math.style.position = ""; + // + return {Y:-EVENT.getBBox(span).h, mW:mW, mH:mH, zW:zW, zH:zH}; + }, + + initFHTML: function (math,span) {}, + + Remove: function (jax) { + var span = document.getElementById(jax.inputID+"-Frame"); + if (span) { + if (jax.FHTML.display) {span = span.parentNode} + span.parentNode.removeChild(span); + } + delete jax.FHTML; + }, + + ID: 0, idPostfix: "", + GetID: function () {this.ID++; return this.ID}, + + VARIANT: { + "bold": "MJXf-bold", + "italic": "MJXf-italic", + "bold-italic": "MJXf-bold MJXf-italic", + "script": "MJXf-scr", + "bold-script": "MJXf-scr MJXf-bold", + "fraktur": "MJXf-frak", + "bold-fraktur": "MJXf-frak MJXf-bold", + "monospace": "MJXf-mono", + "sans-serif": "MJXf-sf", + "-tex-caligraphic": "MJXf-cal" + }, + MATHSPACE: { + veryverythinmathspace: 1/18, + verythinmathspace: 2/18, + thinmathspace: 3/18, + mediummathspace: 4/18, + thickmathspace: 5/18, + verythickmathspace: 6/18, + veryverythickmathspace: 7/18, + negativeveryverythinmathspace: -1/18, + negativeverythinmathspace: -2/18, + negativethinmathspace: -3/18, + negativemediummathspace: -4/18, + negativethickmathspace: -5/18, + negativeverythickmathspace: -6/18, + negativeveryverythickmathspace: -7/18, + + thin: .08, + medium: .1, + thick: .15, + + infinity: BIGDIMEN + }, + TeX: { + x_height: .430554 + }, + pxPerInch: 72, + em: 16, + + // ### FIXME: add more here + + DELIMITERS: { + "(": {dir:V}, + "{": {dir:V, w:.58}, + "[": {dir:V}, + "|": {dir:V, w:.275}, + ")": {dir:V}, + "}": {dir:V, w:.58}, + "]": {dir:V}, + "/": {dir:V}, + "\\": {dir:V}, + "\u2223": {dir:V, w:.275}, + "\u2225": {dir:V, w:.55}, + "\u230A": {dir:V, w:.5}, + "\u230B": {dir:V, w:.5}, + "\u2308": {dir:V, w:.5}, + "\u2309": {dir:V, w:.5}, + "\u27E8": {dir:V, w:.5}, + "\u27E9": {dir:V, w:.5}, + "\u2191": {dir:V, w:.65}, + "\u2193": {dir:V, w:.65}, + "\u21D1": {dir:V, w:.75}, + "\u21D3": {dir:V, w:.75}, + "\u2195": {dir:V, w:.65}, + "\u21D5": {dir:V, w:.75}, + "\u27EE": {dir:V, w:.275}, + "\u27EF": {dir:V, w:.275}, + "\u23B0": {dir:V, w:.6}, + "\u23B1": {dir:V, w:.6} + }, + + REMAPACCENT: { + "\u20D7":"\u2192", // vector arrow + "'": "\u02CB", + "`": "\u02CA", + ".": "\u02D9", + "^": "\u02C6", + "-": "\u02C9", + "~": "\u02DC", + "\u00AF": "\u02C9", // macron + "\u00B0": "\u02DA", // degree sign + "\u00B4": "\u02CA", // acute accent + "\u0300": "\u02CB", // combining grave + "\u0301": "\u02CA", // combining acute + "\u0302": "\u02C6", // combining circumflex + "\u0303": "\u02DC", // combinig tilde + "\u0304": "\u02C9", // combining macron + "\u0305": "\u02C9", // combining overline + "\u0306": "\u02D8", // combining breve + "\u0307": "\u02D9", // combining dot + "\u0308": "\u00A8", // combining double dot + "\u030C": "\u02C7" // combining caron + }, + REMAPACCENTUNDER: { + }, + + length2em: function (length,size) { + if (typeof(length) !== "string") {length = length.toString()} + if (length === "") {return ""} + if (length === MML.SIZE.NORMAL) {return 1} + if (length === MML.SIZE.BIG) {return 2} + if (length === MML.SIZE.SMALL) {return .71} + if (this.MATHSPACE[length]) {return this.MATHSPACE[length]} + var match = length.match(/^\s*([-+]?(?:\.\d+|\d+(?:\.\d*)?))?(pt|em|ex|mu|px|pc|in|mm|cm|%)?/); + var m = parseFloat(match[1]||"1"), unit = match[2]; + if (size == null) {size = 1} + if (unit === "em") {return m} + if (unit === "ex") {return m * this.TeX.x_height} + if (unit === "%") {return m / 100 * size} + if (unit === "px") {return m / this.em} + if (unit === "pt") {return m / 10} // 10 pt to an em + if (unit === "pc") {return m * 1.2} // 12 pt to a pc + if (unit === "in") {return m * this.pxPerInch / this.em} + if (unit === "cm") {return m * this.pxPerInch / this.em / 2.54} // 2.54 cm to an inch + if (unit === "mm") {return m * this.pxPerInch / this.em / 25.4} // 10 mm to a cm + if (unit === "mu") {return m / 18} // 18mu to an em for the scriptlevel + return m*size; // relative to given size (or 1em as default) + }, + + Em: function (m) { + if (Math.abs(m) < .001) return "0em"; + return (m.toFixed(3).replace(/\.?0+$/,""))+"em"; + }, + + arrayEntry: function (a,i) {return a[Math.max(0,Math.min(i,a.length-1))]} + + }); + + MathJax.Hub.Register.StartupHook("mml Jax Ready",function () { + MML = MathJax.ElementJax.mml; + + MML.mbase.Augment({ + toFastHTML: function (span,options) { + return this.FHTMLdefaultSpan(span,options); + }, + + FHTMLdefaultSpan: function (span,options) { + if (!options) options = {}; + span = this.FHTMLcreateSpan(span); + this.FHTMLhandleStyle(span); + this.FHTMLhandleColor(span); + if (this.isToken) this.FHTMLhandleToken(span); + for (var i = 0, m = this.data.length; i < m; i++) this.FHTMLaddChild(span,i,options); + return span; + }, + FHTMLaddChild: function (span,i,options) { + var child = this.data[i]; + if (child) { + if (options.childSpans) + span = HTML.addElement(span,"span",{className:options.className}); + child.toFastHTML(span); + if (!options.noBBox) { + this.FHTML.w += child.FHTML.w + child.FHTML.l + child.FHTML.r; + if (child.FHTML.h > this.FHTML.h) this.FHTML.h = child.FHTML.h; + if (child.FHTML.d > this.FHTML.d) this.FHTML.d = child.FHTML.d; + if (child.FHTML.t > this.FHTML.t) this.FHTML.t = child.FHTML.t; + if (child.FHTML.b > this.FHTML.b) this.FHTML.b = child.FHTML.b; + } + } else if (options.forceChild) {HTML.addElement(span,"span")} + }, + FHTMLstretchChild: function (i,H,D) { + var data = this.data[i]; + if (data && data.FHTMLcanStretch("Vertical",H,D)) { + var bbox = this.FHTML, dbox = data.FHTML, w = dbox.w; + data.FHTMLstretchV(H,D); + bbox.w += dbox.w - w; + if (dbox.h > bbox.h) bbox.h = dbox.h; + if (dbox.d > bbox.d) bbox.d = dbox.d; + } + }, + + FHTMLcreateSpan: function (span) { + if (!this.FHTML) this.FHTML = {}; + this.FHTML = {w:0, h:0, d:0, l:0, r:0, t:0, b:0}; + if (this.inferred) return span; + // ### FIXME: This is a hack to handle the different spacing of the + // ### integral sign in Times compared to CM fonts + if (this.type === "mo" && this.data.join("") === "\u222B") {FHTML.lastIsInt = true} + else if (this.type !== "mspace" || this.width !== "negativethinmathspace") {FHTML.lastIsInt = false} + // ### + if (!this.FHTMLspanID) {this.FHTMLspanID = FHTML.GetID()}; + var id = (this.id || "MJXf-Span-"+this.FHTMLspanID); + return HTML.addElement(span,"span",{className:"MJXf-"+this.type, id:id}); + }, + FHTMLspanElement: function () { + if (!this.FHTMLspanID) {return null} + return document.getElementById(this.id||"MJXf-Span-"+this.FHTMLspanID); + }, + + FHTMLhandleToken: function (span) { + var values = this.getValues("mathvariant"); + if (values.mathvariant !== MML.VARIANT.NORMAL) { + span.className += " "+FHTML.VARIANT[values.mathvariant]; + } + }, + + FHTMLhandleStyle: function (span) { + if (this.style) span.style.cssText = this.style; + }, + + FHTMLhandleColor: function (span) { + if (this.mathcolor) {span.style.color = this.mathcolor} + if (this.mathbackground) {span.style.backgroundColor = this.mathbackground} + }, + + FHTMLhandleScriptlevel: function (span) { + // ### FIXME: Need to prevent getting too small + // ### and should keep track of scaling so it can be compensated for + var level = this.Get("scriptlevel"); + if (level) span.className += " MJXf-script"; + }, + + FHTMLhandleText: function (span,text) { + var c, n; + var H = 0, D = 0, W = 0; + for (var i = 0, m = text.length; i < m; i++) { + n = text.charCodeAt(i); c = text.charAt(i); + if (n >= 0xD800 && n < 0xDBFF) { + i++; n = (((n-0xD800)<<10)+(text.charCodeAt(i)-0xDC00))+0x10000; + } + var h = .7, d = .22, w = .5; + if (n < 127) { + if (c.match(/[A-Za-ehik-or-xz0-9]/)) d = 0; + if (c.match(/[A-HK-Z]/)) {w = .67} else if (c.match(/[IJ]/)) {w = .36} + if (c.match(/[acegm-su-z]/)) {h = .45} else if (c.match(/[ij]/)) {h = .75} + if (c.match(/[ijlt]/)) w = .28; + } + if (FHTML.DELIMITERS[c]) {w = FHTML.DELIMITERS[c].w || .4} + // ### FIXME: handle Greek + // ### Combining diacriticals (all sets), spacing modifiers + // ### arrows (all sets), widths of braces + if (h > H) H = h; if (d > D) D = d; W += w; + } + if (!this.CHML) this.FHTML = {}; + this.FHTML = {h:.9, d:.3, w:W, l:0, r:0, t:H, b:D}; + HTML.addText(span,text); + }, + + FHTMLbboxFor: function (n) { + if (this.data[n] && this.data[n].FHTML) return this.data[n].FHTML; + return {w:0, h:0, d:0, l:0, r:0, t:0, b:0}; + }, + + FHTMLcanStretch: function (direction,H,D) { + if (this.isEmbellished()) { + var core = this.Core(); + if (core && core !== this) {return core.FHTMLcanStretch(direction,H,D)} + } + return false; + }, + FHTMLstretchV: function (h,d) {}, + FHTMLstretchH: function (w) {}, + + CoreParent: function () { + var parent = this; + while (parent && parent.isEmbellished() && + parent.CoreMO() === this && !parent.isa(MML.math)) {parent = parent.Parent()} + return parent; + }, + CoreText: function (parent) { + if (!parent) {return ""} + if (parent.isEmbellished()) {return parent.CoreMO().data.join("")} + while ((parent.isa(MML.mrow) || parent.isa(MML.TeXAtom) || + parent.isa(MML.mstyle) || parent.isa(MML.mphantom)) && + parent.data.length === 1 && parent.data[0]) {parent = parent.data[0]} + if (!parent.isToken) {return ""} else {return parent.data.join("")} + } + + }); + + MML.chars.Augment({ + toFastHTML: function (span) { + var text = this.toString().replace(/[\u2061-\u2064]/g,""); + this.FHTMLhandleText(span,text); + } + }); + MML.entity.Augment({ + toFastHTML: function (span) { + var text = this.toString().replace(/[\u2061-\u2064]/g,""); + this.FHTMLhandleText(span,text); + } + }); + + MML.math.Augment({ + toFastHTML: function (span) { + span = this.FHTMLdefaultSpan(span); + if (this.Get("display") === "block") {span.className += " MJXf-display"} + return span; + } + }); + + MML.mo.Augment({ + toFastHTML: function (span) { + span = this.FHTMLdefaultSpan(span); + this.FHTMLadjustAccent(span); + var values = this.getValues("lspace","rspace","scriptlevel","displaystyle","largeop"); + if (values.scriptlevel === 0) { + this.FHTML.l = FHTML.length2em(values.lspace); + this.FHTML.r = FHTML.length2em(values.rspace); + span.style.marginLeft = FHTML.Em(this.FHTML.l); + span.style.marginRight = FHTML.Em(this.FHTML.r); + } else { + this.FHTML.l = .15; + this.FHTML.r = .1; + } + if (values.displaystyle && values.largeop) { + var box = HTML.Element("span",{className:"MJXf-largeop"}); + box.appendChild(span.firstChild); span.appendChild(box); + this.FHTML.h *= 1.2; this.FHTML.d *= 1.2; + if (this.data.join("") === "\u222B") box.className += " MJXf-int"; + } + // ### FIXME: Handle embellished op spacing + // ### FIXME: Remap minus signs + return span; + }, + FHTMLadjustAccent: function (span) { + var parent = this.CoreParent(); + if (parent && parent.isa(MML.munderover) && + this.CoreText(parent.data[parent.base]).length === 1) { + var over = parent.data[parent.over], under = parent.data[parent.under]; + var c = this.data.join(""), C; + if (over && this === over.CoreMO() && parent.Get("accent")) {C = FHTML.REMAPACCENT[c]} + else if (under && this === under.CoreMO() && parent.Get("accentunder")) {C = FHTML.REMAPACCENTUNDER[c]} + if (C) c = span.innerHTML = C; + if (c.match(/[\u02C6-\u02DC\u00A8]/)) {this.FHTML.acc = -.52} + else if (c === "\u2192") {this.FHTML.acc = -.15; this.FHTML.vec = true} + } + }, + FHTMLcanStretch: function (direction,H,D) { + if (!this.Get("stretchy")) {return false} + var c = this.data.join(""); + if (c.length > 1) {return false} + c = FHTML.DELIMITERS[c]; + var stretch = (c && c.dir === direction.substr(0,1)); + if (stretch) { + stretch = (this.FHTML.h !== H || this.FHTML.d !== D || + (this.Get("minsize",true) || this.Get("maxsize",true))); + } + return stretch; + }, + FHTMLstretchV: function (h,d) { + var span = this.FHTMLspanElement(), bbox = this.FHTML; //bbox.w = .4; // ## adjust width + var values = this.getValues("symmetric","maxsize","minsize"); + if (values.symmetric) {H = 2*Math.max(h-.25,d+.25)} else {H = h + d} + values.maxsize = FHTML.length2em(values.maxsize,bbox.h+bbox.d); + values.minsize = FHTML.length2em(values.minsize,bbox.h+bbox.d); + H = Math.max(values.minsize,Math.min(values.maxsize,H)); + var scale = H/(bbox.h+bbox.d-.3); // ### adjusted for extra tall bbox + var box = HTML.Element("span",{style:{"font-size":FHTML.Em(scale)}}); + if (scale > 1.25) { + var sX = Math.ceil(1.25/scale * 10); + box.className = "MJXf-right MJXf-scale"+sX; + box.style.marginLeft = FHTML.Em(bbox.w*(sX/10-1)+.07); + bbox.w *= scale*sX/10; + } + box.appendChild(span.firstChild); span.appendChild(box); + if (values.symmetric) span.style.verticalAlign = FHTML.Em(.25*(1-scale)); + } + }); + + MML.mspace.Augment({ + toFastHTML: function (span) { + span = this.FHTMLdefaultSpan(span); + var values = this.getValues("height","depth","width"); + var w = FHTML.length2em(values.width), + h = FHTML.length2em(values.height), + d = FHTML.length2em(values.depth); + var bbox = this.FHTML; + bbox.w = w; bbox.h = h; bbox.d = d; + if (w < 0) { + // ### FIXME: lastIsInt hack + if (!FHTML.lastIsInt) span.style.marginLeft = FHTML.Em(w); + w = 0; + } + span.style.width = FHTML.Em(w); + span.style.height = FHTML.Em(h+d); + if (d) span.style.verticalAlign = FHTML.Em(-d); + return span; + } + }); + + MML.mpadded.Augment({ + toFastHTML: function (span) { + span = this.FHTMLdefaultSpan(span,{ + childSpans:true, className:"MJXf-box", forceChild:true + }); + var child = span.firstChild; + var values = this.getValues("width","height","depth","lspace","voffset"); + var dimen = this.FHTMLdimen(values.lspace); + var T = 0, B = 0, L = dimen.len, R = -dimen.len, V = 0; + if (values.width !== "") { + dimen = this.FHTMLdimen(values.width,"w",0); + if (dimen.pm) {R += dimen.len} else {span.style.width = FHTML.Em(dimen.len)} + } + if (values.height !== "") { + dimen = this.FHTMLdimen(values.height,"h",0); + if (!dimen.pm) T += -this.FHTMLbboxFor(0).h; + T += dimen.len; + } + if (values.depth !== "") { + dimen = this.FHTMLdimen(values.depth,"d",0); + if (!dimen.pm) {B += -this.FHTMLbboxFor(0).d; V += -dimen.len} + B += dimen.len; + } + if (values.voffset !== "") { + dimen = this.FHTMLdimen(values.voffset); + T -= dimen.len; B += dimen.len; + V += dimen.len; + } + if (T) child.style.marginTop = FHTML.Em(T); + if (B) child.style.marginBottom = FHTML.Em(B); + if (L) child.style.marginLeft = FHTML.Em(L); + if (R) child.style.marginRight = FHTML.Em(R); + if (V) span.style.verticalAlign = FHTML.Em(V); + return span; + }, + FHTMLdimen: function (length,d,m) { + if (m == null) {m = -BIGDIMEN} + length = String(length); + var match = length.match(/width|height|depth/); + var size = (match ? this.FHTML[match[0].charAt(0)] : (d ? this.FHTML[d] : 0)); + return {len: FHTML.length2em(length,size)||0, pm: !!length.match(/^[-+]/)}; + } + }); + + MML.munderover.Augment({ + toFastHTML: function (span) { + var values = this.getValues("displaystyle","accent","accentunder","align"); + if (!values.displaystyle && this.data[this.base] != null && + this.data[this.base].CoreMO().Get("movablelimits")) { + span = MML.msubsup.prototype.toFastHTML.call(this,span); + // + // Change class to msubsup for CSS rules. + // ### FIXME: should this be handled via adding another class instead? + // + span.className = span.className.replace(/munderover/,"msubsup"); + return span; + } + span = this.FHTMLdefaultSpan(span,{childSpans:true, className:"", noBBox:true}); + var obox = this.FHTMLbboxFor(this.over), + ubox = this.FHTMLbboxFor(this.under), + bbox = this.FHTMLbboxFor(this.base), + BBOX = this.FHTML, acc = obox.acc; + if (this.data[this.over]) { + span.lastChild.firstChild.style.marginLeft = obox.l = + span.lastChild.firstChild.style.marginRight = obox.r = 0; + var over = HTML.Element("span",{},[["span",{className:"MJXf-over"}]]); + over.firstChild.appendChild(span.lastChild); + if (span.childNodes.length > (this.data[this.under] ? 1 : 0)) + over.firstChild.appendChild(span.firstChild); + this.data[this.over].FHTMLhandleScriptlevel(over.firstChild.firstChild); + if (acc != null) { + if (obox.vec) { + over.firstChild.firstChild.firstChild.style.fontSize = "60%"; + obox.h *= .6; obox.d *= .6; obox.w *= .6; + } + acc = acc - obox.d + .1; if (bbox.t != null) {acc += bbox.t - bbox.h} + over.firstChild.firstChild.style.marginBottom = FHTML.Em(acc); + } + if (span.firstChild) {span.insertBefore(over,span.firstChild)} + else {span.appendChild(over)} + } + if (this.data[this.under]) { + span.lastChild.firstChild.style.marginLeft = ubox.l = + span.lastChild.firstChild.marginRight = ubox.r = 0; + this.data[this.under].FHTMLhandleScriptlevel(span.lastChild); + } + BBOX.w = Math.max(.8*obox.w,.8*ubox.w,bbox.w); + BBOX.h = .8*(obox.h+obox.d+(acc||0)) + bbox.h; + BBOX.d = bbox.d + .8*(ubox.h+ubox.d); + return span; + } + }); + + MML.msubsup.Augment({ + toFastHTML: function (span) { + span = this.FHTMLdefaultSpan(span,{noBBox:true}); + if (!this.data[this.base]) { + if (span.firstChild) {span.insertBefore(HTML.Element("span"),span.firstChild)} + else {span.appendChild(HTML.Element("span"))} + } + var base = this.data[this.base], sub = this.data[this.sub], sup = this.data[this.sup]; + if (!base) base = {bbox: {h:.8, d:.2}}; + span.firstChild.style.marginRight = ".05em"; + var h = Math.max(.4,base.FHTML.h-.4), + d = Math.max(.2,base.FHTML.d+.1); + var bbox = this.FHTML; + if (sup && sub) { + var box = HTML.Element("span",{className:"MJXf-script-box", style:{ + height: FHTML.Em(h+sup.FHTML.h*.8 + d+sub.FHTML.d*.8), + "vertical-align": FHTML.Em(-d-sub.FHTML.d*.8) + }},[ + ["span",{},[["span",{},[["span",{ + style:{"margin-bottom":FHTML.Em(-(sup.FHTML.d-.05))} + }]]]]], + ["span",{},[["span",{},[["span",{ + style:{"margin-top":FHTML.Em(-(sup.FHTML.h-.05))} + }]]]]] + ]); + sub.FHTMLhandleScriptlevel(box.firstChild); + sup.FHTMLhandleScriptlevel(box.lastChild); + box.firstChild.firstChild.firstChild.appendChild(span.lastChild); + box.lastChild.firstChild.firstChild.appendChild(span.lastChild); + span.appendChild(box); + bbox.h = Math.max(base.FHTML.h,sup.FHTML.h*.8+h); + bbox.d = Math.max(base.FHTML.d,sub.FHTML.d*.8+d); + bbox.w = base.FHTML.w + Math.max(sup.FHTML.w,sub.FHTML.w) + .07; + } else if (sup) { + span.lastChild.style.verticalAlign = FHTML.Em(h); + sup.FHTMLhandleScriptlevel(span.lastChild); + bbox.h = Math.max(base.FHTML.h,sup.FHTML.h*.8+h); + bbox.d = Math.max(base.FHTML.d,sup.FHTML.d*.8-h); + bbox.w = base.FHTML.w + sup.FHTML.w + .07; + } else if (sub) { + span.lastChild.style.verticalAlign = FHTML.Em(-d); + sub.FHTMLhandleScriptlevel(span.lastChild); + bbox.h = Math.max(base.FHTML.h,sub.FHTML.h*.8-d); + bbox.d = Math.max(base.FHTML.d,sub.FHTML.d*.8+d); + bbox.w = base.FHTML.w + sub.FHTML.w + .07; + } + return span; + } + }); + + MML.mfrac.Augment({ + toFastHTML: function (span) { + span = this.FHTMLdefaultSpan(span,{ + childSpans:true, className:"MJXf-box", forceChild:true, noBBox:true + }); + var values = this.getValues("linethickness","displaystyle"); + if (!values.displaystyle) { + if (this.data[0]) this.data[0].FHTMLhandleScriptlevel(span.firstChild); + if (this.data[1]) this.data[1].FHTMLhandleScriptlevel(span.lastChild); + } + var denom = HTML.Element("span",{className:"MJXf-box",style:{"margin-top":"-.8em"}},[ + ["span",{className:"MJXf-denom"},[ // inline-table + ["span",{},[["span",{className:"MJXf-rule"}]]],["span"] // spans are table-row + ]] + ]); + denom.firstChild.lastChild.appendChild(span.lastChild); + span.appendChild(denom); + var nbox = this.FHTMLbboxFor(0), dbox = this.FHTMLbboxFor(1), bbox = this.FHTML; + bbox.w = Math.max(nbox.w,dbox.w) * .8; + bbox.h = nbox.h+nbox.d + .1 + .25; + bbox.d = dbox.h+dbox.d - .25; + bbox.l = bbox.r = .125; + values.linethickness = Math.max(0,FHTML.length2em(values.linethickness||"0",0)); + if (values.linethickness) { + var rule = denom.firstChild.firstChild.firstChild; + var t = FHTML.Em(values.linethickness); + rule.style.borderTop = (values.linethickness < .15 ? "1px" : t)+" solid"; + rule.style.margin = t+" 0"; + t = values.linethickness; + denom.style.marginTop = FHTML.Em(3*t-.9); + span.style.verticalAlign = FHTML.Em(1.5*t + .1); + bbox.h += 1.5*t - .1; bbox.d += 1.5*t; + } + return span; + } + }); + + MML.msqrt.Augment({ + toFastHTML: function (span) { + span = this.FHTMLdefaultSpan(span,{ + childSpans:true, className:"MJXf-box", forceChild:true, noBBox:true + }); + this.FHTMLlayoutRoot(span,span.firstChild); + return span; + }, + FHTMLlayoutRoot: function (span,base) { + var bbox = this.FHTMLbboxFor(0); + var scale = Math.ceil((bbox.h+bbox.d+.14)*100), t = FHTML.Em(14/scale); + var surd = HTML.Element("span",{className:"MJXf-surd"},[ + ["span",{style:{"font-size":scale+"%","margin-top":t}},["\u221A"]] + ]); + var root = HTML.Element("span",{className:"MJXf-root"},[ + ["span",{className:"MJXf-rule",style:{"border-top":".08em solid"}}] + ]); + var W = (1.2/2.2)*scale/100; // width-of-surd = (height/H-to-W-ratio) + if (scale > 150) { + var sX = Math.ceil(150/scale * 10); + surd.firstChild.className = "MJXf-right MJXf-scale"+sX; + surd.firstChild.style.marginLeft = FHTML.Em(W*(sX/10-1)/scale*100); + W = W*sX/10; + root.firstChild.style.borderTopWidth = FHTML.Em(.08/Math.sqrt(sX/10)); + } + root.appendChild(base); + span.appendChild(surd); + span.appendChild(root); + this.FHTML.h = bbox.h + .18; this.FHTML.d = bbox.d; + this.FHTML.w = bbox.w + W; + return span; + } + }); + + MML.mroot.Augment({ + toFastHTML: function (span) { + span = this.FHTMLdefaultSpan(span,{ + childSpans:true, className:"MJXf-box", forceChild:true, noBBox:true + }); + var rbox = this.FHTMLbboxFor(1), root = span.removeChild(span.lastChild); + var sqrt = this.FHTMLlayoutRoot(HTML.Element("span"),span.firstChild); + root.className = "MJXf-script"; // ### FIXME: should be scriptscript + var scale = parseInt(sqrt.firstChild.firstChild.style.fontSize); + var v = .55*(scale/120) + rbox.d*.8, r = -.6*(scale/120); + if (scale > 150) {r *= .95*Math.ceil(150/scale*10)/10} + root.style.marginRight = FHTML.Em(r); root.style.verticalAlign = FHTML.Em(v); + if (-r > rbox.w*.8) root.style.marginLeft = FHTML.Em(-r-rbox.w*.8); // ### depends on rbox.w + span.appendChild(root); span.appendChild(sqrt); + this.FHTML.w += Math.max(0,rbox.w*.8+r); + this.FHTML.h = Math.max(this.FHTML.h,rbox.h*.8+v); + return span; + }, + FHTMLlayoutRoot: MML.msqrt.prototype.FHTMLlayoutRoot + }); + + MML.mfenced.Augment({ + toFastHTML: function (span) { + span = this.FHTMLcreateSpan(span); + this.FHTMLhandleStyle(span); + this.FHTMLhandleColor(span); + // + // Make row of open, data, sep, ... data, close + // + this.addFakeNodes(); + this.FHTMLaddChild(span,"open",{}); + for (var i = 0, m = this.data.length; i < m; i++) { + this.FHTMLaddChild(span,"sep"+i,{}); + this.FHTMLaddChild(span,i,{}); + } + this.FHTMLaddChild(span,"close",{}); + // + // Check for streching the elements + // + var H = this.FHTML.h, D = this.FHTML.d; + this.FHTMLstretchChild("open",H,D); + for (i = 0, m = this.data.length; i < m; i++) { + this.FHTMLstretchChild("sep"+i,H,D); + this.FHTMLstretchChild(i,H,D); + } + this.FHTMLstretchChild("close",H,D); + return span; + } + }); + + MML.mrow.Augment({ + toFastHTML: function (span) { + span = this.FHTMLdefaultSpan(span); + var H = this.FHTML.h, D = this.FHTML.d; + for (var i = 0, m = this.data.length; i < m; i++) this.FHTMLstretchChild(i,H,D); + return span; + } + }); + + MML.mstyle.Augment({ + toFastHTML: function (span) { + span = this.FHTMLdefaultSpan(span); + this.FHTMLhandleScriptlevel(span); + return span; + } + }); + + MML.TeXAtom.Augment({ + toFastHTML: function (span) { + span = this.FHTMLdefaultSpan(span); + // ### FIXME: handle TeX class? + span.className = "MJXf-mrow"; + return span; + } + }); + + MML.mtable.Augment({ + toFastHTML: function (span) { + span = this.FHTMLdefaultSpan(span,{noBBox:true}); + var values = this.getValues("columnalign","rowalign","columnspacing","rowspacing", + "columnwidth","equalcolumns","equalrows", + "columnlines","rowlines","frame","framespacing", + "align","width"); + var SPLIT = MathJax.Hub.SplitList, i, m, j, n; + var CSPACE = SPLIT(values.columnspacing), + RSPACE = SPLIT(values.rowspacing), + CALIGN = SPLIT(values.columnalign), + RALIGN = SPLIT(values.rowalign); + for (i = 0, m = CSPACE.length; i < m; i++) {CSPACE[i] = FHTML.length2em(CSPACE[i])} + for (i = 0, m = RSPACE.length; i < m; i++) {RSPACE[i] = FHTML.length2em(RSPACE[i])} + + var table = HTML.Element("span"); + while (span.firstChild) table.appendChild(span.firstChild); + span.appendChild(table); + var H = 0, W = 0; + for (i = 0, m = this.data.length; i < m; i++) { + var row = this.data[i]; + if (row) { + var rspace = FHTML.arrayEntry(RSPACE,i-1), ralign = FHTML.arrayEntry(RALIGN,i); + var rbox = row.FHTML, rspan = row.FHTMLspanElement(); + rspan.style.verticalAlign = ralign; + var k = (row.type === "mlabeledtr" ? 1 : 0); + for (j = 0, n = row.data.length; j < n-k; j++) { + var cell = row.data[j+k]; + if (cell) { + var cspace = FHTML.arrayEntry(CSPACE,j-1), calign = FHTML.arrayEntry(CALIGN,j); + var cspan = cell.FHTMLspanElement(); + if (j) {rbox.w += cspace; cspan.style.paddingLeft = FHTML.Em(cspace)} + if (i) cspan.style.paddingTop = FHTML.Em(rspace); + cspan.style.textAlign = calign; + } + } + H += rbox.h + rbox.d; if (i) {H += rspace} + if (rbox.w > W) W = rbox.w; + } + } + var bbox = this.FHTML; + bbox.w = W; bbox.h = H/2 + .25; bbox.d = H/2 - .25; + bbox.l = bbox.r = .125; + return span; + } + }); + MML.mlabeledtr.Augment({ + FHTMLdefaultSpan: function (span,options) { + if (!options) options = {}; + span = this.FHTMLcreateSpan(span); + this.FHTMLhandleStyle(span); + this.FHTMLhandleColor(span); + if (this.isToken) this.FHTMLhandleToken(span); + // skip label for now + for (var i = 1, m = this.data.length; i < m; i++) this.FHTMLaddChild(span,i,options); + return span; + } + }); + + MML.semantics.Augment({ + toFastHTML: function (span) { + span = this.FHTMLcreateSpan(span); + if (this.data[0]) { + this.data[0].toFastHTML(span); + MathJax.Hub.Insert(this.data[0].FHTML||{},this.FHTML); + } + return span; + } + }); + MML.annotation.Augment({toFastHTML: function(span) {}}); + MML["annotation-xml"].Augment({toFastHTML: function(span) {}}); + + // + // Loading isn't complete until the element jax is modified, + // but can't call loadComplete within the callback for "mml Jax Ready" + // (it would call FastHTML's Require routine, asking for the mml jax again) + // so wait until after the mml jax has finished processing. + // + // We also need to wait for the onload handler to run, since the loadComplete + // will call Config and Startup, which need to modify the body. + // + MathJax.Hub.Register.StartupHook("onLoad",function () { + setTimeout(MathJax.Callback(["loadComplete",FHTML,"jax.js"]),0); + }); + }); + + MathJax.Hub.Register.StartupHook("End Cookie", function () { + if (HUB.config.menuSettings.zoom !== "None") + {AJAX.Require("[MathJax]/extensions/MathZoom.js")} + }); + +})(MathJax.Ajax,MathJax.Hub,MathJax.HTML,MathJax.OutputJax.FastHTML); From 66cdd5fcabf99f42959c72fea329bf861acbfc7e Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Wed, 5 Aug 2015 17:53:27 -0400 Subject: [PATCH 150/186] Change CHTML-preview to FHTML-preview, and make it backward compatible. --- unpacked/config/AM_HTMLorMML-full.js | 2 +- unpacked/config/AM_HTMLorMML.js | 2 +- unpacked/config/Accessible-full.js | 2 +- unpacked/config/Accessible.js | 2 +- unpacked/config/MML_HTMLorMML-full.js | 2 +- unpacked/config/MML_HTMLorMML.js | 2 +- unpacked/config/TeX-AMS-MML_HTMLorMML-full.js | 2 +- unpacked/config/TeX-AMS-MML_HTMLorMML.js | 2 +- unpacked/config/TeX-AMS-MML_SVG-full.js | 2 +- unpacked/config/TeX-AMS-MML_SVG.js | 2 +- unpacked/config/TeX-AMS_HTML-full.js | 2 +- unpacked/config/TeX-AMS_HTML.js | 2 +- unpacked/config/TeX-MML-AM_HTMLorMML-full.js | 2 +- unpacked/config/TeX-MML-AM_HTMLorMML.js | 2 +- .../{CHTML-preview.js => FHTML-preview.js} | 51 ++++++++++--------- 15 files changed, 42 insertions(+), 37 deletions(-) rename unpacked/extensions/{CHTML-preview.js => FHTML-preview.js} (68%) diff --git a/unpacked/config/AM_HTMLorMML-full.js b/unpacked/config/AM_HTMLorMML-full.js index d9c3e1dc2..9e3ea52b4 100644 --- a/unpacked/config/AM_HTMLorMML-full.js +++ b/unpacked/config/AM_HTMLorMML-full.js @@ -18,7 +18,7 @@ MathJax.Hub.Config({ config: ["MMLorHTML.js"], - extensions: ["asciimath2jax.js","MathEvents.js","MathZoom.js","MathMenu.js","toMathML.js","CHTML-preview.js"], + extensions: ["asciimath2jax.js","MathEvents.js","MathZoom.js","MathMenu.js","toMathML.js","FHTML-preview.js"], jax: ["input/AsciiMath","output/HTML-CSS","output/NativeMML","output/FastHTML"] }); diff --git a/unpacked/config/AM_HTMLorMML.js b/unpacked/config/AM_HTMLorMML.js index aa7308ab0..214776f46 100644 --- a/unpacked/config/AM_HTMLorMML.js +++ b/unpacked/config/AM_HTMLorMML.js @@ -18,7 +18,7 @@ MathJax.Hub.Config({ config: ["MMLorHTML.js"], - extensions: ["asciimath2jax.js","MathEvents.js","MathZoom.js","MathMenu.js","toMathML.js","CHTML-preview.js"], + extensions: ["asciimath2jax.js","MathEvents.js","MathZoom.js","MathMenu.js","toMathML.js","FHTML-preview.js"], jax: ["input/AsciiMath","output/HTML-CSS","output/NativeMML","output/FastHTML"] }); diff --git a/unpacked/config/Accessible-full.js b/unpacked/config/Accessible-full.js index 7a2a86396..9263415cf 100644 --- a/unpacked/config/Accessible-full.js +++ b/unpacked/config/Accessible-full.js @@ -18,7 +18,7 @@ MathJax.Hub.Config({ config: ["MMLorHTML.js"], - extensions: ["tex2jax.js","mml2jax.js","MathEvents.js","MathZoom.js","MathMenu.js","toMathML.js","TeX/noErrors.js","TeX/noUndefined.js","TeX/AMSmath.js","TeX/AMSsymbols.js","CHTML-preview.js"], + extensions: ["tex2jax.js","mml2jax.js","MathEvents.js","MathZoom.js","MathMenu.js","toMathML.js","TeX/noErrors.js","TeX/noUndefined.js","TeX/AMSmath.js","TeX/AMSsymbols.js","FHTML-preview.js"], jax: ["input/TeX","input/MathML","output/HTML-CSS","output/NativeMML","output/FastHTML"], menuSettings: { zoom: "Double-Click", diff --git a/unpacked/config/Accessible.js b/unpacked/config/Accessible.js index d640355e3..ff9d30087 100644 --- a/unpacked/config/Accessible.js +++ b/unpacked/config/Accessible.js @@ -18,7 +18,7 @@ MathJax.Hub.Config({ config: ["MMLorHTML.js"], - extensions: ["tex2jax.js","mml2jax.js","MathEvents.js","MathZoom.js","MathMenu.js","toMathML.js","TeX/noErrors.js","TeX/noUndefined.js","TeX/AMSmath.js","TeX/AMSsymbols.js","CHTML-preview.js"], + extensions: ["tex2jax.js","mml2jax.js","MathEvents.js","MathZoom.js","MathMenu.js","toMathML.js","TeX/noErrors.js","TeX/noUndefined.js","TeX/AMSmath.js","TeX/AMSsymbols.js","FHTML-preview.js"], jax: ["input/TeX","input/MathML","output/HTML-CSS","output/NativeMML","output/FastHTML"], menuSettings: { zoom: "Double-Click", diff --git a/unpacked/config/MML_HTMLorMML-full.js b/unpacked/config/MML_HTMLorMML-full.js index 917227d2e..2ca128056 100644 --- a/unpacked/config/MML_HTMLorMML-full.js +++ b/unpacked/config/MML_HTMLorMML-full.js @@ -18,7 +18,7 @@ MathJax.Hub.Config({ config: ["MMLorHTML.js"], - extensions: ["mml2jax.js","MathEvents.js","MathZoom.js","MathMenu.js","toMathML.js","CHTML-preview.js"], + extensions: ["mml2jax.js","MathEvents.js","MathZoom.js","MathMenu.js","toMathML.js","FHTML-preview.js"], jax: ["input/MathML","output/HTML-CSS","output/NativeMML","output/CommonHTML"] }); diff --git a/unpacked/config/MML_HTMLorMML.js b/unpacked/config/MML_HTMLorMML.js index 2d8f00b94..7eddadd35 100644 --- a/unpacked/config/MML_HTMLorMML.js +++ b/unpacked/config/MML_HTMLorMML.js @@ -18,7 +18,7 @@ MathJax.Hub.Config({ config: ["MMLorHTML.js"], - extensions: ["mml2jax.js","MathEvents.js","MathZoom.js","MathMenu.js","toMathML.js","CHTML-preview.js"], + extensions: ["mml2jax.js","MathEvents.js","MathZoom.js","MathMenu.js","toMathML.js","FHTML-preview.js"], jax: ["input/MathML","output/HTML-CSS","output/NativeMML","output/FastHTML"] }); diff --git a/unpacked/config/TeX-AMS-MML_HTMLorMML-full.js b/unpacked/config/TeX-AMS-MML_HTMLorMML-full.js index 94d8d8995..139910692 100644 --- a/unpacked/config/TeX-AMS-MML_HTMLorMML-full.js +++ b/unpacked/config/TeX-AMS-MML_HTMLorMML-full.js @@ -18,7 +18,7 @@ MathJax.Hub.Config({ config: ["MMLorHTML.js"], - extensions: ["tex2jax.js","mml2jax.js","MathEvents.js","MathZoom.js","MathMenu.js","toMathML.js","TeX/noErrors.js","TeX/noUndefined.js","TeX/AMSmath.js","TeX/AMSsymbols.js","CHTML-preview.js"], + extensions: ["tex2jax.js","mml2jax.js","MathEvents.js","MathZoom.js","MathMenu.js","toMathML.js","TeX/noErrors.js","TeX/noUndefined.js","TeX/AMSmath.js","TeX/AMSsymbols.js","FHTML-preview.js"], jax: ["input/TeX","input/MathML","output/HTML-CSS","output/NativeMML","output/FastHTML"] }); diff --git a/unpacked/config/TeX-AMS-MML_HTMLorMML.js b/unpacked/config/TeX-AMS-MML_HTMLorMML.js index 21125280e..612bcb01c 100644 --- a/unpacked/config/TeX-AMS-MML_HTMLorMML.js +++ b/unpacked/config/TeX-AMS-MML_HTMLorMML.js @@ -18,7 +18,7 @@ MathJax.Hub.Config({ config: ["MMLorHTML.js"], - extensions: ["tex2jax.js","mml2jax.js","MathEvents.js","MathZoom.js","MathMenu.js","toMathML.js","TeX/noErrors.js","TeX/noUndefined.js","TeX/AMSmath.js","TeX/AMSsymbols.js","CHTML-preview.js"], + extensions: ["tex2jax.js","mml2jax.js","MathEvents.js","MathZoom.js","MathMenu.js","toMathML.js","TeX/noErrors.js","TeX/noUndefined.js","TeX/AMSmath.js","TeX/AMSsymbols.js","FHTML-preview.js"], jax: ["input/TeX","input/MathML","output/HTML-CSS","output/NativeMML","output/FastHTML"] }); diff --git a/unpacked/config/TeX-AMS-MML_SVG-full.js b/unpacked/config/TeX-AMS-MML_SVG-full.js index 2d50e3dda..50d6b33c1 100644 --- a/unpacked/config/TeX-AMS-MML_SVG-full.js +++ b/unpacked/config/TeX-AMS-MML_SVG-full.js @@ -17,7 +17,7 @@ */ MathJax.Hub.Config({ - extensions: ["tex2jax.js","mml2jax.js","MathEvents.js","MathZoom.js","MathMenu.js","toMathML.js","TeX/noErrors.js","TeX/noUndefined.js","TeX/AMSmath.js","TeX/AMSsymbols.js","CHTML-preview.js"], + extensions: ["tex2jax.js","mml2jax.js","MathEvents.js","MathZoom.js","MathMenu.js","toMathML.js","TeX/noErrors.js","TeX/noUndefined.js","TeX/AMSmath.js","TeX/AMSsymbols.js","FHTML-preview.js"], jax: ["input/TeX","input/MathML","output/SVG","output/FastHTML"] }); diff --git a/unpacked/config/TeX-AMS-MML_SVG.js b/unpacked/config/TeX-AMS-MML_SVG.js index c5080d17f..bcc56b3ac 100644 --- a/unpacked/config/TeX-AMS-MML_SVG.js +++ b/unpacked/config/TeX-AMS-MML_SVG.js @@ -17,7 +17,7 @@ */ MathJax.Hub.Config({ - extensions: ["tex2jax.js","mml2jax.js","MathEvents.js","MathZoom.js","MathMenu.js","toMathML.js","TeX/noErrors.js","TeX/noUndefined.js","TeX/AMSmath.js","TeX/AMSsymbols.js","CHTML-preview.js"], + extensions: ["tex2jax.js","mml2jax.js","MathEvents.js","MathZoom.js","MathMenu.js","toMathML.js","TeX/noErrors.js","TeX/noUndefined.js","TeX/AMSmath.js","TeX/AMSsymbols.js","FHTML-preview.js"], jax: ["input/TeX","input/MathML","output/SVG","output/FastHTML"] }); diff --git a/unpacked/config/TeX-AMS_HTML-full.js b/unpacked/config/TeX-AMS_HTML-full.js index 51952ab70..467a53ee3 100644 --- a/unpacked/config/TeX-AMS_HTML-full.js +++ b/unpacked/config/TeX-AMS_HTML-full.js @@ -17,7 +17,7 @@ */ MathJax.Hub.Config({ - extensions: ["tex2jax.js","MathEvents.js","MathZoom.js","MathMenu.js","toMathML.js","TeX/noErrors.js","TeX/noUndefined.js","TeX/AMSmath.js","TeX/AMSsymbols.js","CHTML-preview.js"], + extensions: ["tex2jax.js","MathEvents.js","MathZoom.js","MathMenu.js","toMathML.js","TeX/noErrors.js","TeX/noUndefined.js","TeX/AMSmath.js","TeX/AMSsymbols.js","FHTML-preview.js"], jax: ["input/TeX","output/HTML-CSS","output/FastHTML"] }); diff --git a/unpacked/config/TeX-AMS_HTML.js b/unpacked/config/TeX-AMS_HTML.js index 36be30915..1b75c4dde 100644 --- a/unpacked/config/TeX-AMS_HTML.js +++ b/unpacked/config/TeX-AMS_HTML.js @@ -17,7 +17,7 @@ */ MathJax.Hub.Config({ - extensions: ["tex2jax.js","MathEvents.js","MathZoom.js","MathMenu.js","toMathML.js","TeX/noErrors.js","TeX/noUndefined.js","TeX/AMSmath.js","TeX/AMSsymbols.js","CHTML-preview.js"], + extensions: ["tex2jax.js","MathEvents.js","MathZoom.js","MathMenu.js","toMathML.js","TeX/noErrors.js","TeX/noUndefined.js","TeX/AMSmath.js","TeX/AMSsymbols.js","FHTML-preview.js"], jax: ["input/TeX","output/HTML-CSS","output/FastHTML"] }); diff --git a/unpacked/config/TeX-MML-AM_HTMLorMML-full.js b/unpacked/config/TeX-MML-AM_HTMLorMML-full.js index 68d69f87b..61bc258d0 100644 --- a/unpacked/config/TeX-MML-AM_HTMLorMML-full.js +++ b/unpacked/config/TeX-MML-AM_HTMLorMML-full.js @@ -18,7 +18,7 @@ MathJax.Hub.Config({ config: ["MMLorHTML.js"], - extensions: ["tex2jax.js","mml2jax.js","asciimath2jax.js","MathEvents.js","MathZoom.js","MathMenu.js","toMathML.js","TeX/noErrors.js","TeX/noUndefined.js","TeX/AMSmath.js","TeX/AMSsymbols.js","CHTML-preview.js"], + extensions: ["tex2jax.js","mml2jax.js","asciimath2jax.js","MathEvents.js","MathZoom.js","MathMenu.js","toMathML.js","TeX/noErrors.js","TeX/noUndefined.js","TeX/AMSmath.js","TeX/AMSsymbols.js","FHTML-preview.js"], jax: ["input/TeX","input/MathML","input/AsciiMath","output/HTML-CSS","output/NativeMML","output/FastHTML"] }); diff --git a/unpacked/config/TeX-MML-AM_HTMLorMML.js b/unpacked/config/TeX-MML-AM_HTMLorMML.js index e97f3890c..22ebd5295 100644 --- a/unpacked/config/TeX-MML-AM_HTMLorMML.js +++ b/unpacked/config/TeX-MML-AM_HTMLorMML.js @@ -18,7 +18,7 @@ MathJax.Hub.Config({ config: ["MMLorHTML.js"], - extensions: ["tex2jax.js","mml2jax.js","asciimath2jax.js","MathEvents.js","MathZoom.js","MathMenu.js","toMathML.js","TeX/noErrors.js","TeX/noUndefined.js","TeX/AMSmath.js","TeX/AMSsymbols.js","CHTML-preview.js"], + extensions: ["tex2jax.js","mml2jax.js","asciimath2jax.js","MathEvents.js","MathZoom.js","MathMenu.js","toMathML.js","TeX/noErrors.js","TeX/noUndefined.js","TeX/AMSmath.js","TeX/AMSsymbols.js","FHTML-preview.js"], jax: ["input/TeX","input/MathML","input/AsciiMath","output/HTML-CSS","output/NativeMML","output/FastHTML"] }); diff --git a/unpacked/extensions/CHTML-preview.js b/unpacked/extensions/FHTML-preview.js similarity index 68% rename from unpacked/extensions/CHTML-preview.js rename to unpacked/extensions/FHTML-preview.js index a52ba5cde..1a29afb55 100644 --- a/unpacked/extensions/CHTML-preview.js +++ b/unpacked/extensions/FHTML-preview.js @@ -3,9 +3,9 @@ /************************************************************* * - * MathJax/extensions/CHTML-preview.js + * MathJax/extensions/FHTML-preview.js * - * Implements a fast preview using the Common-HTML output jax + * Implements a fast preview using the FastHTML output jax * and then a slower update to the more accurate HTML-CSS output * (or whatever the user has selected). * @@ -29,15 +29,16 @@ (function (HUB,HTML) { var SETTINGS = HUB.config.menuSettings; + var msieColorBug = MathJax.Hub.Browser.isMSIE && (document.documentMode||0) < 8; - var CHTMLpreview = MathJax.Extension["CHTML-preview"] = { + var FHTMLpreview = MathJax.Extension["FHTML-preview"] = { version: "2.5.0", // // Configuration for the chunking of the main output // after the previews have been created, and other configuration. // - config: HUB.CombineConfig("CHTML-preview",{ + config: HUB.CombineConfig("FHTML-preview",{ Chunks: {EqnChunk: 10000, EqnChunkFactor: 1, EqnChunkDelay: 0}, color: "inherit!important", updateTime: 30, updateDelay: 6, @@ -49,18 +50,21 @@ // Ajust the chunking of the output jax // Config: function () { + if (HUB.config["CHTML-preview"]) + MathJax.Hub.Config({"FHTML-preview": HUB.config["CHTML-preview"]}); HUB.Config({ "HTML-CSS": this.config.Chunks, + CommonHTML: this.config.Chunks, SVG: this.config.Chunks }); - MathJax.Ajax.Styles({".MathJax_Preview .MJXc-math":{color:this.config.color}}); + MathJax.Ajax.Styles({".MathJax_Preview .MJXf-math":{color:this.config.color}}); var update, delay, style, done, saved; var config = this.config; - if (!config.disabled && SETTINGS.CHTMLpreview == null) - HUB.Config({menuSettings:{CHTMLpreview:true}}); + if (!config.disabled && SETTINGS.FHTMLpreview == null) + HUB.Config({menuSettings:{FHTMLpreview:true}}); HUB.Register.MessageHook("Begin Math Output",function () { - if (!done && SETTINGS.CHTMLpreview && SETTINGS.renderer !== "CommonHTML") { + if (!done && SETTINGS.FHTMLpreview && SETTINGS.renderer !== "FastHTML") { update = HUB.processUpdateTime; delay = HUB.processUpdateDelay; style = HUB.config.messageStyle; HUB.processUpdateTime = config.updateTime; @@ -82,32 +86,33 @@ // // Insert a preview span, if there isn't one already, - // and call the CommonHTML output jax to create the preview + // and call the FastHTML output jax to create the preview // Preview: function (data) { - if (!SETTINGS.CHTMLpreview || SETTINGS.renderer === "CommonHTML") return; + if (!SETTINGS.FHTMLpreview || SETTINGS.renderer === "FastHTML") return; var preview = data.script.MathJax.preview || data.script.previousSibling; if (!preview || preview.className !== MathJax.Hub.config.preRemoveClass) { preview = HTML.Element("span",{className:MathJax.Hub.config.preRemoveClass}); data.script.parentNode.insertBefore(preview,data.script); data.script.MathJax.preview = preview; } - preview.innerHTML = ""; preview.style.color = "inherit"; + preview.innerHTML = ""; + preview.style.color = (msieColorBug ? "black" : "inherit"); return this.postFilter(preview,data); }, postFilter: function (preview,data) { // - // Load the CommonHTML jax if it is not already loaded + // Load the FastHTML jax if it is not already loaded // - if (!data.math.root.toCommonHTML) { + if (!data.math.root.toFastHTML) { var queue = MathJax.Callback.Queue(); queue.Push( - ["Require",MathJax.Ajax,"[MathJax]/jax/output/CommonHTML/config.js"], - ["Require",MathJax.Ajax,"[MathJax]/jax/output/CommonHTML/jax.js"] + ["Require",MathJax.Ajax,"[MathJax]/jax/output/FastHTML/config.js"], + ["Require",MathJax.Ajax,"[MathJax]/jax/output/FastHTML/jax.js"] ); HUB.RestartAfter(queue.Push({})); } - data.math.root.toCommonHTML(preview); + data.math.root.toFastHTML(preview); }, // @@ -117,7 +122,7 @@ Register: function (name) { HUB.Register.StartupHook(name+" Jax Require",function () { var jax = MathJax.InputJax[name]; - jax.postfilterHooks.Add(["Preview",MathJax.Extension["CHTML-preview"]],50); + jax.postfilterHooks.Add(["Preview",MathJax.Extension["FHTML-preview"]],50); }); } } @@ -125,15 +130,15 @@ // // Hook into each input jax // - CHTMLpreview.Register("TeX"); - CHTMLpreview.Register("MathML"); - CHTMLpreview.Register("AsciiMath"); + FHTMLpreview.Register("TeX"); + FHTMLpreview.Register("MathML"); + FHTMLpreview.Register("AsciiMath"); - HUB.Register.StartupHook("End Config",["Config",CHTMLpreview]); + HUB.Register.StartupHook("End Config",["Config",FHTMLpreview]); - HUB.Startup.signal.Post("CHTML-preview Ready"); + HUB.Startup.signal.Post("FHTML-preview Ready"); })(MathJax.Hub,MathJax.HTML); -MathJax.Ajax.loadComplete("[MathJax]/extensions/CHTML-preview.js"); +MathJax.Ajax.loadComplete("[MathJax]/extensions/FHTML-preview.js"); From ac8a9564ec6b25467d2726358d7ca4ffa4dfc3b9 Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Sun, 9 Aug 2015 15:04:36 -0400 Subject: [PATCH 151/186] Add compatibility CHTML-preview.js (it just calls the new one). --- unpacked/extensions/CHTML-preview.js | 31 ++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 unpacked/extensions/CHTML-preview.js diff --git a/unpacked/extensions/CHTML-preview.js b/unpacked/extensions/CHTML-preview.js new file mode 100644 index 000000000..fdec696c8 --- /dev/null +++ b/unpacked/extensions/CHTML-preview.js @@ -0,0 +1,31 @@ +/* -*- Mode: Javascript; indent-tabs-mode:nil; js-indent-level: 2 -*- */ +/* vim: set ts=2 et sw=2 tw=80: */ + +/************************************************************* + * + * MathJax/extensions/CHTML-preview.js + * + * Backward compatibility with old CHTML-preview extension. + * + * --------------------------------------------------------------------- + * + * Copyright (c) 2014-2015 The MathJax Consortium + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + +MathJax.Callback.Queue( + ["Require",MathJax.Ajax,"[MathJax]/extensions/FHTML-preview.js"], + ["loadComplete",MathJax.Ajax,"[MathJax]/extensions/CHTML-preview.js"] +); From 98b748d088adf70edff1d60f3dcd785d22b088c3 Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Mon, 10 Aug 2015 18:28:28 -0400 Subject: [PATCH 152/186] First step in handling variable centerlines for fonts (still need to do stretchy characters and remove use of CENTERLINE) --- unpacked/jax/output/CommonHTML/jax.js | 32 +++++++++++++-------------- 1 file changed, 15 insertions(+), 17 deletions(-) diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index 84ba196bb..cb1ebcfb2 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -35,7 +35,7 @@ var CENTERLINE = .25, STRUTHEIGHT = 1, - AFUZZ = .08, HFUZZ = .025, DFUZZ = .025; // adjustments to bounding box of character boxes + HFUZZ = .025, DFUZZ = .025; // adjustments to bounding box of character boxes var STYLES = { "mjx-chtml": { @@ -135,7 +135,7 @@ "font-size":"500%" }, "mjx-chartest mjx-char": {display:"inline"}, - "mjx-chartest mjx-box": {"padding-top": "500px"}, + "mjx-chartest mjx-box": {"padding-top": "1000px"}, ".MJXc-processing": { visibility: "hidden", position:"fixed", @@ -800,9 +800,8 @@ getUnknownChar: function (unknown,n) { var c = this.unicodeChar(n); var HDW = this.getHDW(c,unknown.className); - var a = (HDW.h-HDW.d)/2+AFUZZ; // ### FIXME: is this really the axis of the surrounding text? // ### FIXME: provide a means of setting the height and depth for individual characters - unknown[n] = [.8,.2,HDW.w,0,HDW.w,{a:a, A:HDW.h-a, d:HDW.d}]; + unknown[n] = [.8,.2,HDW.w,0,HDW.w,{a:(HDW.h-HDW.d)/2, h:HDW.h, d:HDW.d}]; unknown[n].c = c; }, styledText: function (variant,text) { @@ -816,8 +815,7 @@ var unknown = this.STYLEDTEXT[id]; if (!unknown["_"+text]) { var HDW = this.getHDW(text,variant.className||"",style); - var a = (HDW.h-HDW.d)/2+AFUZZ; // ### FIXME: is this really the axis of the surrounding text? - unknown["_"+text] = [.8,.2,HDW.w,0,HDW.w,{a:a, A:HDW.h-a, d:HDW.d}]; + unknown["_"+text] = [.8,.2,HDW.w,0,HDW.w,{a:(HDW.h-HDW.d)/2, h:HDW.h, d:HDW.d}]; unknown["_"+text].c = text; } return {type:"unknown", n:"_"+text, font:unknown, style:style, rscale:variant.rscale}; @@ -831,8 +829,8 @@ getHDW: function (c,name,styles) { var test1 = HTML.addElement(CHTML.CHTMLnode,"mjx-chartest",{className:name,style:styles},[["mjx-char",{},[c]]]); var test2 = HTML.addElement(CHTML.CHTMLnode,"mjx-chartest",{className:name,style:styles},[["mjx-char",{},[c,["mjx-box"]]]]); - var em = CHTML.outerEm; - var d = (test2.offsetHeight-500)/em; + var em = 5*CHTML.em; + var d = (test2.offsetHeight-1000)/em; var w = test1.offsetWidth/em, h = test1.offsetHeight/em - d; CHTML.CHTMLnode.removeChild(test1); CHTML.CHTMLnode.removeChild(test2); @@ -847,7 +845,7 @@ // the updated bounding box. // addCharList: function (node,list,bbox) { - var state = {text:"", className:null}; + var state = {text:"", className:null, a:0}; for (var i = 0, m = list.length; i < m; i++) { var item = list[i]; if (this.charList[item.type]) (this.charList[item.type])(item,node,bbox,state,m); @@ -860,6 +858,7 @@ node.className = state.className; } } + bbox.b = (state.flushed ? 0 : bbox.a); }, // // The various item types are processed by these @@ -872,6 +871,8 @@ char: function (item,node,bbox,state,m) { var font = item.font; if (state.className && font.className !== state.className) this.flushText(node,state); + if (!state.a) state.a = (font.centerline || CENTERLINE); + if (state.a > (bbox.a||0)) bbox.a = state.a; var C = font[item.n]; state.text += C.c; state.className = font.className; if (bbox.h < C[0]+HFUZZ) bbox.t = bbox.h = C[0]+HFUZZ; @@ -897,13 +898,10 @@ // unknown: function (item,node,bbox,state) { this.char(item,node,bbox,state,0); - node = this.flushText(node,state,item.style); - node.style.lineHeight = "normal"; var C = item.font[item.n]; - node.style.marginTop = CHTML.Em(-C[5].A-HFUZZ); - node.style.marginBottom = CHTML.Em(-C[5].d-DFUZZ); + if (C[5].a) {state.a = C[5].a; if (state.a > bbox.a) bbox.a = state.a} + node = this.flushText(node,state,item.style); node.style.width = CHTML.Em(C[2]); - if (!bbox.a || C[5].a > bbox.a) bbox.a = C[5].a; }, // // Put the pending text into a box of the class, and @@ -912,7 +910,8 @@ flushText: function (node,state,style) { node = HTML.addElement(node,"mjx-charbox", {className:state.className,style:style},[state.text]); - state.text = ""; state.className = null; + if (state.a) node.style.paddingBottom = CHTML.Em(state.a); + state.text = ""; state.className = null; state.a = 0; state.flushed = true; return node; } }, @@ -940,10 +939,9 @@ } if (list.length) this.addCharList(node.firstChild,list,bbox); bbox.clean(); - if (bbox.a == null) bbox.a = CENTERLINE; if (bbox.d < 0) {bbox.D = bbox.d; bbox.d = 0} if (bbox.h - bbox.a) node.firstChild.style[bbox.h - bbox.a < 0 ? "marginTop" : "paddingTop"] = this.Em(bbox.h-bbox.a); - if (bbox.d + bbox.a) node.firstChild.style[bbox.d + bbox.a < 0 ? "marginBottom": "paddingBottom"] = this.Em(bbox.d+bbox.a); + if (bbox.d > -bbox.b) node.firstChild.style.paddingBottom = this.Em(bbox.d+bbox.b); return bbox; }, From c43a5250f00cbb1042df0fa1e33df4a84ddf756a Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Mon, 10 Aug 2015 19:40:30 -0400 Subject: [PATCH 153/186] Handle centerline for stretchy characters, and add centerline data to font files. --- unpacked/jax/output/CommonHTML/fonts/TeX/AMS-Regular.js | 1 + .../jax/output/CommonHTML/fonts/TeX/Caligraphic-Bold.js | 1 + unpacked/jax/output/CommonHTML/fonts/TeX/Fraktur-Bold.js | 1 + .../jax/output/CommonHTML/fonts/TeX/Fraktur-Regular.js | 1 + .../jax/output/CommonHTML/fonts/TeX/Math-BoldItalic.js | 1 + .../jax/output/CommonHTML/fonts/TeX/SansSerif-Bold.js | 1 + .../jax/output/CommonHTML/fonts/TeX/SansSerif-Italic.js | 1 + .../jax/output/CommonHTML/fonts/TeX/SansSerif-Regular.js | 2 ++ .../jax/output/CommonHTML/fonts/TeX/Script-Regular.js | 1 + .../output/CommonHTML/fonts/TeX/Typewriter-Regular.js | 2 ++ unpacked/jax/output/CommonHTML/fonts/TeX/fontdata.js | 9 +++++++++ unpacked/jax/output/CommonHTML/jax.js | 9 ++++----- 12 files changed, 25 insertions(+), 5 deletions(-) diff --git a/unpacked/jax/output/CommonHTML/fonts/TeX/AMS-Regular.js b/unpacked/jax/output/CommonHTML/fonts/TeX/AMS-Regular.js index bcd4b7a37..51434f447 100644 --- a/unpacked/jax/output/CommonHTML/fonts/TeX/AMS-Regular.js +++ b/unpacked/jax/output/CommonHTML/fonts/TeX/AMS-Regular.js @@ -24,6 +24,7 @@ var font = 'MathJax_AMS'; CHTML.FONTDATA.FONTS[font] = { className: CHTML.FONTDATA.familyName(font), + centerline: 270, ascent: 1003, descent: 463, 0x20: [0,0,250,0,0], // SPACE 0x41: [701,1,722,17,703], // LATIN CAPITAL LETTER A 0x42: [683,1,667,11,620], // LATIN CAPITAL LETTER B diff --git a/unpacked/jax/output/CommonHTML/fonts/TeX/Caligraphic-Bold.js b/unpacked/jax/output/CommonHTML/fonts/TeX/Caligraphic-Bold.js index 3e8a5c40e..431b9a03c 100644 --- a/unpacked/jax/output/CommonHTML/fonts/TeX/Caligraphic-Bold.js +++ b/unpacked/jax/output/CommonHTML/fonts/TeX/Caligraphic-Bold.js @@ -24,6 +24,7 @@ var font = 'MathJax_Caligraphic-Bold'; CHTML.FONTDATA.FONTS[font] = { className: CHTML.FONTDATA.familyName(font), + centerline: 315, ascent: 840, descent: 211, weight: 'bold', skew: { 0x41: 0.224, diff --git a/unpacked/jax/output/CommonHTML/fonts/TeX/Fraktur-Bold.js b/unpacked/jax/output/CommonHTML/fonts/TeX/Fraktur-Bold.js index 847f16d60..75c2e969b 100644 --- a/unpacked/jax/output/CommonHTML/fonts/TeX/Fraktur-Bold.js +++ b/unpacked/jax/output/CommonHTML/fonts/TeX/Fraktur-Bold.js @@ -24,6 +24,7 @@ var font = 'MathJax_Fraktur-Bold'; CHTML.FONTDATA.FONTS[font] = { className: CHTML.FONTDATA.familyName(font), + centerline: 259, ascent: 740, descent: 223, weight: 'bold', 0x20: [0,0,250,0,0], // SPACE 0x21: [689,12,349,107,241], // EXCLAMATION MARK diff --git a/unpacked/jax/output/CommonHTML/fonts/TeX/Fraktur-Regular.js b/unpacked/jax/output/CommonHTML/fonts/TeX/Fraktur-Regular.js index 71d2e2345..b44bd9815 100644 --- a/unpacked/jax/output/CommonHTML/fonts/TeX/Fraktur-Regular.js +++ b/unpacked/jax/output/CommonHTML/fonts/TeX/Fraktur-Regular.js @@ -24,6 +24,7 @@ var font = 'MathJax_Fraktur'; CHTML.FONTDATA.FONTS[font] = { className: CHTML.FONTDATA.familyName(font), + centerline: 258, ascent: 740, descent: 224, 0x20: [0,0,250,0,0], // SPACE 0x21: [689,12,296,91,204], // EXCLAMATION MARK 0x22: [695,-432,215,8,196], // QUOTATION MARK diff --git a/unpacked/jax/output/CommonHTML/fonts/TeX/Math-BoldItalic.js b/unpacked/jax/output/CommonHTML/fonts/TeX/Math-BoldItalic.js index 3cdca0316..cfa2ddabe 100644 --- a/unpacked/jax/output/CommonHTML/fonts/TeX/Math-BoldItalic.js +++ b/unpacked/jax/output/CommonHTML/fonts/TeX/Math-BoldItalic.js @@ -24,6 +24,7 @@ var font = 'MathJax_Math-BoldItalic'; CHTML.FONTDATA.FONTS[font] = { className: CHTML.FONTDATA.familyName(font), + centerline: 255, ascent: 725, descent: 216, weight: 'bold', style: 'italic', skew: { diff --git a/unpacked/jax/output/CommonHTML/fonts/TeX/SansSerif-Bold.js b/unpacked/jax/output/CommonHTML/fonts/TeX/SansSerif-Bold.js index 39385b78c..1e7c5c6d3 100644 --- a/unpacked/jax/output/CommonHTML/fonts/TeX/SansSerif-Bold.js +++ b/unpacked/jax/output/CommonHTML/fonts/TeX/SansSerif-Bold.js @@ -24,6 +24,7 @@ var font = 'MathJax_SansSerif-Bold'; CHTML.FONTDATA.FONTS[font] = { className: CHTML.FONTDATA.familyName(font), + centerline: 250, ascent: 750, descent: 250, weight: 'bold', 0x20: [0,0,250,0,0], // SPACE 0x21: [694,0,367,110,256], // EXCLAMATION MARK diff --git a/unpacked/jax/output/CommonHTML/fonts/TeX/SansSerif-Italic.js b/unpacked/jax/output/CommonHTML/fonts/TeX/SansSerif-Italic.js index 9a0c48e1f..6758dd3c8 100644 --- a/unpacked/jax/output/CommonHTML/fonts/TeX/SansSerif-Italic.js +++ b/unpacked/jax/output/CommonHTML/fonts/TeX/SansSerif-Italic.js @@ -24,6 +24,7 @@ var font = 'MathJax_SansSerif-Italic'; CHTML.FONTDATA.FONTS[font] = { className: CHTML.FONTDATA.familyName(font), + centerline: 250, ascent: 750, descent: 250, style: 'italic', 0x20: [0,0,250,0,0], // SPACE 0x21: [694,0,319,110,355], // EXCLAMATION MARK diff --git a/unpacked/jax/output/CommonHTML/fonts/TeX/SansSerif-Regular.js b/unpacked/jax/output/CommonHTML/fonts/TeX/SansSerif-Regular.js index ca6814c1a..f838368bc 100644 --- a/unpacked/jax/output/CommonHTML/fonts/TeX/SansSerif-Regular.js +++ b/unpacked/jax/output/CommonHTML/fonts/TeX/SansSerif-Regular.js @@ -24,6 +24,8 @@ var font = 'MathJax_SansSerif'; CHTML.FONTDATA.FONTS[font] = { className: CHTML.FONTDATA.familyName(font), + centerline: 250, ascent: 750, descent: 250, + 0x20: [0,0,250,0,0], // SPACE 0x21: [694,0,319,110,208], // EXCLAMATION MARK 0x22: [694,-471,500,32,325], // QUOTATION MARK diff --git a/unpacked/jax/output/CommonHTML/fonts/TeX/Script-Regular.js b/unpacked/jax/output/CommonHTML/fonts/TeX/Script-Regular.js index 7f2dcfbe2..b73e310e1 100644 --- a/unpacked/jax/output/CommonHTML/fonts/TeX/Script-Regular.js +++ b/unpacked/jax/output/CommonHTML/fonts/TeX/Script-Regular.js @@ -24,6 +24,7 @@ var font = 'MathJax_Script'; CHTML.FONTDATA.FONTS[font] = { className: CHTML.FONTDATA.familyName(font), + centerline: 211, ascent: 735, descent: 314, skew: { 0x41: 0.389, 0x42: 0.194, diff --git a/unpacked/jax/output/CommonHTML/fonts/TeX/Typewriter-Regular.js b/unpacked/jax/output/CommonHTML/fonts/TeX/Typewriter-Regular.js index 6ccaeb744..2744f5778 100644 --- a/unpacked/jax/output/CommonHTML/fonts/TeX/Typewriter-Regular.js +++ b/unpacked/jax/output/CommonHTML/fonts/TeX/Typewriter-Regular.js @@ -24,6 +24,8 @@ var font = 'MathJax_Typewriter'; CHTML.FONTDATA.FONTS[font] = { className: CHTML.FONTDATA.familyName(font), + centerline: 233, ascent: 694, descent: 229, + 0x20: [0,0,250,0,0], // SPACE 0x21: [622,0,525,206,320], // EXCLAMATION MARK 0x22: [623,-333,525,122,402], // QUOTATION MARK diff --git a/unpacked/jax/output/CommonHTML/fonts/TeX/fontdata.js b/unpacked/jax/output/CommonHTML/fonts/TeX/fontdata.js index 9fdcf3c98..b41f7c4aa 100644 --- a/unpacked/jax/output/CommonHTML/fonts/TeX/fontdata.js +++ b/unpacked/jax/output/CommonHTML/fonts/TeX/fontdata.js @@ -607,6 +607,7 @@ CHTML.FONTDATA = CHTML.FONTDEF["TeX"]; CHTML.FONTDATA.FONTS['MathJax_Caligraphic'] = { + centerline: 287, ascent: 789, descent: 216, skew: { 0x41: 0.194, 0x42: 0.139, @@ -676,6 +677,7 @@ }; CHTML.FONTDATA.FONTS['MathJax_Main-Bold'] = { + centerline: 342, ascent: 951, descent: 267, weight: 'bold', file: "TeX/Main-Bold.js", Extra: [ @@ -817,6 +819,7 @@ }; CHTML.FONTDATA.FONTS['MathJax_Main-Italic'] = { + centerline: 250, ascent: 750, descent: 250, style: 'italic', 0x20: [0,0,250,0,0], // SPACE 0x21: [716,0,307,107,380], // EXCLAMATION MARK @@ -941,6 +944,7 @@ }; CHTML.FONTDATA.FONTS['MathJax_Main'] = { + centerline: 314, ascent: 900, descent: 272, skew: { 0x131: 0.0278, 0x237: 0.0833, @@ -1238,6 +1242,7 @@ }; CHTML.FONTDATA.FONTS['MathJax_Math-Italic'] = { + centerline: 250, ascent: 717, descent: 218, style: 'italic', skew: { 0x41: 0.139, @@ -1416,6 +1421,7 @@ }; CHTML.FONTDATA.FONTS['MathJax_Size1'] = { + centerline: 250, ascent: 850, descent: 350, 0x20: [0,0,250,0,0], // SPACE 0x28: [850,349,458,152,422], // LEFT PARENTHESIS 0x29: [850,349,458,35,305], // RIGHT PARENTHESIS @@ -1464,6 +1470,7 @@ }; CHTML.FONTDATA.FONTS['MathJax_Size2'] = { + centerline: 249, ascent: 1360, descent: 862, 0x20: [0,0,250,0,0], // SPACE 0x28: [1150,649,597,180,561], // LEFT PARENTHESIS 0x29: [1150,649,597,35,416], // RIGHT PARENTHESIS @@ -1504,6 +1511,7 @@ }; CHTML.FONTDATA.FONTS['MathJax_Size3'] = { + centerline: 250, ascent: 1450, descent: 950, 0x20: [0,0,250,0,0], // SPACE 0x28: [1450,949,736,209,701], // LEFT PARENTHESIS 0x29: [1450,949,736,34,526], // RIGHT PARENTHESIS @@ -1528,6 +1536,7 @@ }; CHTML.FONTDATA.FONTS['MathJax_Size4'] = { + centerline: 250, ascent: 1750, descent: 1250, 0x20: [0,0,250,0,0], // SPACE 0x28: [1750,1249,792,237,758], // LEFT PARENTHESIS 0x29: [1750,1249,792,33,554], // RIGHT PARENTHESIS diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index cb1ebcfb2..2651a5536 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -33,8 +33,7 @@ var EVENT, TOUCH, HOVER; // filled in later - var CENTERLINE = .25, - STRUTHEIGHT = 1, + var STRUTHEIGHT = 1, HFUZZ = .025, DFUZZ = .025; // adjustments to bounding box of character boxes var STYLES = { @@ -871,7 +870,7 @@ char: function (item,node,bbox,state,m) { var font = item.font; if (state.className && font.className !== state.className) this.flushText(node,state); - if (!state.a) state.a = (font.centerline || CENTERLINE); + if (!state.a) state.a = font.centerline/1000; if (state.a > (bbox.a||0)) bbox.a = state.a; var C = font[item.n]; state.text += C.c; state.className = font.className; @@ -996,7 +995,7 @@ var s = 1.1*(H - h)/k + .3; // space to cover by extender s /= (ebox.h+ebox.d); // scale factor; this.Transform(ext, - "translateY("+CHTML.Em(-ebox.d+.25-s*CENTERLINE)+") scaleY("+s.toFixed(3).replace(/0+$/,"")+")", + "translateY("+CHTML.Em(-ebox.d+.25-s*ebox.a)+") scaleY("+s.toFixed(3).replace(/0+$/,"")+")", "left "+CHTML.Em(ebox.d) ); ext.style.paddingTop=ext.style.paddingBottom = 0; @@ -1073,7 +1072,7 @@ this.adjustHeights([left,ext,mid,ext2,right],hbox); if (ebox.D) ebox.d = ebox.D; hbox.t = hbox.h; hbox.b = hbox.d; - var mt = ebox.h - hbox.h - CENTERLINE, mb = ebox.d - hbox.d + CENTERLINE; + var mt = ebox.h - hbox.h - ebox.a, mb = ebox.d - hbox.d + ebox.a; if (mt) node.style.marginTop = CHTML.Em(mt); if (mb) node.style.marginBottom = CHTML.Em(mb); hbox.h = ebox.h; hbox.d = ebox.d; From 7a23ce938205ec362e67e5ad0dd45d5b181dd9e9 Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Mon, 10 Aug 2015 19:42:40 -0400 Subject: [PATCH 154/186] Update web fonts to have OS/2 and HHEA values agree, set line gap to 0, set OS/2 version to 4 and force typo metrics to be used (Firefox ignores this). These will still work with HTML-CSS output --- .../HTML-CSS/TeX/eot/MathJax_AMS-Regular.eot | Bin 60348 -> 60348 bytes .../TeX/eot/MathJax_Caligraphic-Bold.eot | Bin 12468 -> 12468 bytes .../TeX/eot/MathJax_Caligraphic-Regular.eot | Bin 12332 -> 12332 bytes .../HTML-CSS/TeX/eot/MathJax_Fraktur-Bold.eot | Bin 26108 -> 26108 bytes .../TeX/eot/MathJax_Fraktur-Regular.eot | Bin 25500 -> 25500 bytes fonts/HTML-CSS/TeX/eot/MathJax_Main-Bold.eot | Bin 48564 -> 48564 bytes .../HTML-CSS/TeX/eot/MathJax_Main-Italic.eot | Bin 28828 -> 28828 bytes .../HTML-CSS/TeX/eot/MathJax_Main-Regular.eot | Bin 49676 -> 49676 bytes .../TeX/eot/MathJax_Math-BoldItalic.eot | Bin 26322 -> 26322 bytes .../HTML-CSS/TeX/eot/MathJax_Math-Italic.eot | Bin 26768 -> 26768 bytes .../HTML-CSS/TeX/eot/MathJax_Math-Regular.eot | Bin 26704 -> 26704 bytes .../TeX/eot/MathJax_SansSerif-Bold.eot | Bin 21928 -> 21928 bytes .../TeX/eot/MathJax_SansSerif-Italic.eot | Bin 19420 -> 19420 bytes .../TeX/eot/MathJax_SansSerif-Regular.eot | Bin 16652 -> 16652 bytes .../TeX/eot/MathJax_Script-Regular.eot | Bin 14596 -> 14596 bytes .../TeX/eot/MathJax_Size1-Regular.eot | Bin 10364 -> 10364 bytes .../TeX/eot/MathJax_Size2-Regular.eot | Bin 9668 -> 9668 bytes .../TeX/eot/MathJax_Size3-Regular.eot | Bin 5720 -> 5720 bytes .../TeX/eot/MathJax_Size4-Regular.eot | Bin 8476 -> 8476 bytes .../TeX/eot/MathJax_Typewriter-Regular.eot | Bin 24652 -> 24652 bytes .../HTML-CSS/TeX/otf/MathJax_AMS-Regular.otf | Bin 58528 -> 58528 bytes .../TeX/otf/MathJax_Caligraphic-Bold.otf | Bin 12348 -> 12348 bytes .../TeX/otf/MathJax_Caligraphic-Regular.otf | Bin 12024 -> 12024 bytes .../HTML-CSS/TeX/otf/MathJax_Fraktur-Bold.otf | Bin 26900 -> 26900 bytes .../TeX/otf/MathJax_Fraktur-Regular.otf | Bin 25876 -> 25876 bytes fonts/HTML-CSS/TeX/otf/MathJax_Main-Bold.otf | Bin 46800 -> 46800 bytes .../HTML-CSS/TeX/otf/MathJax_Main-Italic.otf | Bin 28224 -> 28224 bytes .../HTML-CSS/TeX/otf/MathJax_Main-Regular.otf | Bin 47636 -> 47636 bytes .../TeX/otf/MathJax_Math-BoldItalic.otf | Bin 27096 -> 27096 bytes .../HTML-CSS/TeX/otf/MathJax_Math-Italic.otf | Bin 26384 -> 26384 bytes .../HTML-CSS/TeX/otf/MathJax_Math-Regular.otf | Bin 26328 -> 26328 bytes .../TeX/otf/MathJax_SansSerif-Bold.otf | Bin 22156 -> 22156 bytes .../TeX/otf/MathJax_SansSerif-Italic.otf | Bin 18572 -> 18572 bytes .../TeX/otf/MathJax_SansSerif-Regular.otf | Bin 15920 -> 15920 bytes .../TeX/otf/MathJax_Script-Regular.otf | Bin 14616 -> 14616 bytes .../TeX/otf/MathJax_Size1-Regular.otf | Bin 8252 -> 8252 bytes .../TeX/otf/MathJax_Size2-Regular.otf | Bin 7608 -> 7608 bytes .../TeX/otf/MathJax_Size3-Regular.otf | Bin 4712 -> 4712 bytes .../TeX/otf/MathJax_Size4-Regular.otf | Bin 7364 -> 7364 bytes .../TeX/otf/MathJax_Typewriter-Regular.otf | Bin 24184 -> 24184 bytes .../TeX/woff/MathJax_AMS-Regular.woff | Bin 40816 -> 40816 bytes .../TeX/woff/MathJax_Caligraphic-Bold.woff | Bin 9908 -> 9908 bytes .../TeX/woff/MathJax_Caligraphic-Regular.woff | Bin 9624 -> 9624 bytes .../TeX/woff/MathJax_Fraktur-Bold.woff | Bin 22340 -> 22336 bytes .../TeX/woff/MathJax_Fraktur-Regular.woff | Bin 21492 -> 21492 bytes .../HTML-CSS/TeX/woff/MathJax_Main-Bold.woff | Bin 34456 -> 34456 bytes .../TeX/woff/MathJax_Main-Italic.woff | Bin 20812 -> 20812 bytes .../TeX/woff/MathJax_Main-Regular.woff | Bin 34164 -> 34164 bytes .../TeX/woff/MathJax_Math-BoldItalic.woff | Bin 19776 -> 19780 bytes .../TeX/woff/MathJax_Math-Italic.woff | Bin 19356 -> 19356 bytes .../TeX/woff/MathJax_Math-Regular.woff | Bin 19296 -> 19296 bytes .../TeX/woff/MathJax_SansSerif-Bold.woff | Bin 15932 -> 15928 bytes .../TeX/woff/MathJax_SansSerif-Italic.woff | Bin 14624 -> 14628 bytes .../TeX/woff/MathJax_SansSerif-Regular.woff | Bin 12668 -> 12668 bytes .../TeX/woff/MathJax_Script-Regular.woff | Bin 11864 -> 11864 bytes .../TeX/woff/MathJax_Size1-Regular.woff | Bin 5792 -> 5792 bytes .../TeX/woff/MathJax_Size2-Regular.woff | Bin 5476 -> 5476 bytes .../TeX/woff/MathJax_Size3-Regular.woff | Bin 3256 -> 3256 bytes .../TeX/woff/MathJax_Size4-Regular.woff | Bin 5160 -> 5160 bytes .../TeX/woff/MathJax_Typewriter-Regular.woff | Bin 17620 -> 17620 bytes 60 files changed, 0 insertions(+), 0 deletions(-) diff --git a/fonts/HTML-CSS/TeX/eot/MathJax_AMS-Regular.eot b/fonts/HTML-CSS/TeX/eot/MathJax_AMS-Regular.eot index 20d10b78b6e7cdb2ef2b6ee27a3818c743ece645..036da6058d4db682fd5debdf4b1f957d20105cfa 100644 GIT binary patch delta 135 zcmdmUoq5l7<_R_|D`XORCpt`JR^8P(@rDeG+lNS&i9ce6|M6aBU|{57U|=xI$Vg3O ze#;>|IfJpliZ@YaMLfUFR|an87eGmdi|?Lh!RT*S{~2;>F~0`#IT)BgqCmjNz`*?a bpCJRoWFe+Tb|B6Cn(_SRSxoXTnSojXATKLg delta 135 zcmdmUoq5l7<_R_|em7roPjr~dEcKyd;td%V_o9e96Mw`Czo@*-z`)4Ez`$UZk&&9n z;?Dkhat33875B@Ve)0S^Um3WWUjQW;Ejfr0t; cKTd|I$wEwx>_D3NHRJcqvzX*xG6S^&0O&j{LjV8( diff --git a/fonts/HTML-CSS/TeX/eot/MathJax_Caligraphic-Bold.eot b/fonts/HTML-CSS/TeX/eot/MathJax_Caligraphic-Bold.eot index ee5e15d4790eb5eec36c014cbaeed9335ad7b8c2..8de2fa61cb45026b5a450122deadb4a1df148eb6 100644 GIT binary patch delta 135 zcmdmzxFvCd4GYVZGruP~tYlW*)j9Ev42xSsBKKq-##muJK0O8oMji$R2D6Ne)I^R- z=HAIQj0IM|&rD&7=ePOFz|H&uD9Lc~-P0@>{r~BIT~<$K4+cgC4hANWC=f6*Ffe=k a*JWUstj5&90b&3ZT;9BniCK>ss22c{EGWqU delta 135 zcmdmzxFvCd4GUk;;-3>8Rx(R{=$QCMhQ&QPp=&Y^W2~@5l@0>~BM$=ugIPvKY9hyF zW}eA4j0ILd7YFgh^V@u7;AVaSlw`R0L^=~j|9|>lm(`QmgMpEOgMkSo3IvP{49p(? b)-Xg(R%2@505O<77(+I%V`A202I>U>OA#k$ diff --git a/fonts/HTML-CSS/TeX/eot/MathJax_Caligraphic-Regular.eot b/fonts/HTML-CSS/TeX/eot/MathJax_Caligraphic-Regular.eot index 1c396b14fc233a1acbf01be1d47cd65cbc756860..87ae3b71639493d83cfb85b50e6c7c7b9066feb9 100644 GIT binary patch delta 134 zcmZ3JuqI)G4NJO*{DX-OTbWgNbxr&s%d8YJZL$PotZ)$T4+aKC9tH*mvy6 delta 134 zcmZ3JuqI)G4a-E$aSYeyWZww5KJPZsBW*Hf&iR?$2 z=1%TlEU>zl#yT;c-{va=H}eaiB*Vog(pfP2|D*pJEQQRXKt2Zp6G#*Y7#SFtMgQGr Zh?;D~)W88^FpDxOZr;U|ugeV73jnM9D9iu= diff --git a/fonts/HTML-CSS/TeX/eot/MathJax_Fraktur-Bold.eot b/fonts/HTML-CSS/TeX/eot/MathJax_Fraktur-Bold.eot index c527603538c21426d7f9741611424b72865adda1..f5ceb9592397fbe9529a255afcf5f870c12473bb 100644 GIT binary patch delta 134 zcmex!n(@zR#tAkodKV@8CpyezR^8P#@s2FBT$0|zKe56Gc@Ho!F!C@kFqmazq$aYj zU~!+E!&qR|FL_Zfp5Nvx12^*vpd`b^cTcln^#7Ot6-^#tAko&mC4qO>|hwth%df;tN@3jmXE7IT&L^*jae@GcYjnFfcHfWn`o# zvb|yMo?O9LU=_8};dwm2%~u9)<`+OohKui>X2a-^#tAkox_=WRCps);mio{+@r5k&q{z#YIT&L^*xps{Wnf_BVPIe|%g9Jg zWOrk(o?O9LU=^A8S2v#D<|_j?^9!IP!^J1kSupzl^ZyDga!gNvd=3UCkSGu^GB7Yb b`7gi_HCc(NksU|_Ub8K@Ni4jd|7 diff --git a/fonts/HTML-CSS/TeX/eot/MathJax_Main-Bold.eot b/fonts/HTML-CSS/TeX/eot/MathJax_Main-Bold.eot index c60ab057ee05efa7e1953738dc19d8da25136235..2ab45d6da0bfc95f063c464190cd2a310c0b482a 100644 GIT binary patch delta 112 zcmdn;n`z5$rU^DI`|@6|o9NKXth%df;sqHNclBhgi63Hx_4(2n7#MjN7#PelGEx&c zUUD!@PGBsMUiUh0Up&9fR|an87eGmdi|?LhL+Qz{8D*HiGB8Z$Vrpau(#+c#xi?Q@ KlHbh?R09AR3MdEw delta 112 zcmdn;n`z5$rU^DI3v@%)OmygFmio{+@q!GChhqO6BrAm*M#UUi08NY%D~P10w~FF@riUcl%D*WQHI%;A!;%gQzJW&X5P+tc=IGC K`Q6M53ndmT;S#?+U#2d1V(i6YM3wrZzWME+AVPIe|%g9JgWV4=} z##m(aWcQ`ocz&C&4BX5wfKm(>-#yKN(f^+PXJbiWddI-TzyZV%z{tSB^zJ_!1H)t? Qre;Ql&C{5e^O%8}0P^N2{{R30 delta 124 zcmbR9ka5mK#tAko&3#iIPjr~dEcKyl;tg5G(uv>V1x+j0GcYjnFfcHfWn`o#vQ3?w z##m(acuHS$JipCX25#mTKq-ccPo%S9^uK5S*;rDT-Z3ySZ~!p`FfuSOz5CC`5H(qd QshKfq^E4*rJZ7LK0Lr~5ng9R* diff --git a/fonts/HTML-CSS/TeX/eot/MathJax_Main-Regular.eot b/fonts/HTML-CSS/TeX/eot/MathJax_Main-Regular.eot index db956f222b7ceb69956c981a4675cd32a583073d..f9d0db6cede8a1ab0b116e24745fbb6c1f0c6933 100644 GIT binary patch delta 135 zcmeBaVeV;Ro?yfBwaX`cqQgvP)m_~a@5r#Y9*Lfw|@1 a2L^`8VoZ(fK$^LQQDE~trtJO9K&=4pe=7(8 delta 135 zcmeBaVeV;Ro?yfB+e0;VqQgvPsSjNf@5r#YEsWBc_$OAlv`U|Wfsu!Sfx#>zBQ=pD zmu>pw9L55xR8^1P@%%Pl8Mv8W03{hNK9SCb(SIBNePHKiZUOQ+7??n!K)}erz})h$ afFWwK7*iuVkY;XSoUnNwQ}%vlpjH5MJt(CB diff --git a/fonts/HTML-CSS/TeX/eot/MathJax_Math-BoldItalic.eot b/fonts/HTML-CSS/TeX/eot/MathJax_Math-BoldItalic.eot index 4a569b388190c76ead6860a8d119059aae34fe30..ebded3ddf938fd913a24c130eb7695a24e4e5dad 100644 GIT binary patch delta 134 zcmca~mhsYA#tAkoQI)%0Cps)=Qr$K2r5v+RlE0qrn3x83>-iV0gMa`OlSYAF)&OP VVyb5cvzX3qp274rmHFM%8~_uoEQtUB delta 132 zcmbPmk#PbL*|6+C)a5_XVJefEpD|o+h0|Nsi4+8^(Sw==`BD?(L zG{zz;|E@#(D+%chN#Ix UO!e$w7Sp-SGnl@nG6S^&0O)=z8~^|S diff --git a/fonts/HTML-CSS/TeX/eot/MathJax_Math-Regular.eot b/fonts/HTML-CSS/TeX/eot/MathJax_Math-Regular.eot index c09d4bef737db3ea972f5eeb55f05059b3185edd..4c5a2023f4bc560c989abeb7b6c6e88f954311b8 100644 GIT binary patch delta 133 zcmca`f$_ox#tAkoEG=wx6CGwUtM2NVct?iCn*MDh4(ne-4nZ;2*4S% delta 124 zcmZ3nnsLQy#tF8}{j=OBIxJL_`q0C`5VD7XfkDRI#np{r6$2ZPKL^NH@DJ8Ea$7T* zi7{RiE%ow$K5fgJTGf)ly+rK1r diff --git a/fonts/HTML-CSS/TeX/eot/MathJax_SansSerif-Italic.eot b/fonts/HTML-CSS/TeX/eot/MathJax_SansSerif-Italic.eot index c4bfefbcc741b6c772266a89b1a708de426cedde..d4fc81f19a3464b02947c99c92942b9f69cae0ae 100644 GIT binary patch delta 98 zcmcaJo$=0e#tF8}Kb=x1I;><;-8J#G9HZJ~F2;Dl-@Ka{7#MjN7#PelGEx&+Ur(-L wERs%j`uRSd-{va=H}eai6vM@LPjjL4WOgPwMuy31OwEi8n^!UEdoly%0HU)Yj{pDw delta 98 zcmcaJo$=0e#tF8}TcuMbI;>=p`Y`de9Am>|F2;Dlr0Bs1nVm_FF>10JQ!``K=2cAkp3Fcw0AipYB>(^b diff --git a/fonts/HTML-CSS/TeX/eot/MathJax_SansSerif-Regular.eot b/fonts/HTML-CSS/TeX/eot/MathJax_SansSerif-Regular.eot index 41b33682262c96c36ddc46fb1ef662c42576396b..da7f6cd53e972cf5517c04e3661410c55622041d 100644 GIT binary patch delta 100 zcmeBaV(e*RoM6MkbM`&|M2EFZs=Fq>mt$0$%*PlnXwJKpfq{{Sfq}s+BO^7DRdaG3 yW04I1`?Eap{5D@1xS3x7r5G;0dzuHMC-X4LGBQloVrph&*u0J@+K&0%(_8=-Cm(G9 delta 100 zcmeBaV(e*RoM6Ku(0PJyqQhDysSgw1%P}@g=3|T(RIJ?0z`)4Ez`$UZk&&9n+B~_A wu}FsRM5jPJzs*+$Zsr$2DTa$rq;p~PWF972#;D0!OwEi@o7XW#+c5(r0Sx#a1^@s6 diff --git a/fonts/HTML-CSS/TeX/eot/MathJax_Script-Regular.eot b/fonts/HTML-CSS/TeX/eot/MathJax_Script-Regular.eot index 4f5c7042fd068bfc650646f1aa56a156682eec42..c7d5e1e268c12c84db4b780fbc115ac5bba1841b 100644 GIT binary patch delta 137 zcmZoEYAKpv!=hX%Hf5s2LS@xmy$lQ%5)2FsGVU&}ZVdhmYzz$MKY)A%|6qM1*TRUp z$t;Yqg4cM{7#J9NfZ}Eu8L5fvJ0}-07D-PLt5lBXxB1Gz&HMr=#c=W6(>y3W`9Gs1 d8`J%N#~2tU%Q4k)K$uMTH!op|HDd;<0{|TdDhmJr delta 137 zcmZoEYAKpv!_scDdE!Keh00PNdKefiBp4VNWZYd`-5C5C*ccehe*pOk{=xc2Zc-6v zC$lid3LdCTV_;z90g9VtWTYl?Buy@2ERvqM*`z(5-{va=H}eai6vM?Q(s@vN@_$B2 eHfFtl#~7j}%Q4k)K$y&Wo0l-fnlV3-&IJHr1}Db= diff --git a/fonts/HTML-CSS/TeX/eot/MathJax_Size1-Regular.eot b/fonts/HTML-CSS/TeX/eot/MathJax_Size1-Regular.eot index e4ee7ebec6b8dcd92964cac1db8934c47e845c62..9c33fcc398433dfba1b8667b83423433069a3e63 100644 GIT binary patch delta 95 zcmewp@F!q`EptbQ?nH;VOscyk-j`#vp7<|b@Gqu+p5e!IRI|yA^QLT delta 95 zcmewp@F!q`Ewf9a&P0c~Oi~{v-j`#XI`Ln;;MvNp3=E7s3=9lr85yaGY?CMFF&0Vd tB)WWz=ePOFz|H&uD8+E`iF6*6p8T6pjxlPo6jL)})aH3iw^f;easXt8Admn6 diff --git a/fonts/HTML-CSS/TeX/eot/MathJax_Size2-Regular.eot b/fonts/HTML-CSS/TeX/eot/MathJax_Size2-Regular.eot index 8b375ab00d94acb648330ae5dc9007ed28e93cf9..0d7977c4bd4663a3ac09d16c6a6f2cfde31244f4 100644 GIT binary patch delta 110 zcmX@&eZ+f$4a@7=8`={c<}$19>YeyNmf12=YZ7Cu;5pvS3=E7s3=9lr85yaGoJy1P z7>i`IZ`8hy=ePOFz|H&uD8+E`-P1f6J^2r#Bx}H*MGOp+rI_m3!7SE*%?p?mm6?Ic E0CQ$0yZ`_I delta 110 zcmX@&eZ+f$4a-Bzm0A-W<}yot=$rUJmU(KV&LqZI!5x)b85kIO7#JALGBQ#VIqN3p zF&4>at+ad?&u{aUft&dSP>SK=6X|>yJ^2r#Bx}&0MGR4srI_m3!7SFG%?p?mm6?Ic E09EHDKL7v# diff --git a/fonts/HTML-CSS/TeX/eot/MathJax_Size3-Regular.eot b/fonts/HTML-CSS/TeX/eot/MathJax_Size3-Regular.eot index 4a8c9640eba7838453b27ca5dc4866bc0982cbfd..f10a6aa6b4cc62b827aab7930b3358842c3c0792 100644 GIT binary patch delta 99 zcmcbib34a@qAS-BG(<}$19>YeyNhROZ)#DDRE|9H1DFfj5kFff>9WTYmtu9=+2 xSR|91b#Z+>zs*+$Zsr$2DTa&hp60>m$$uDS85t%^F*P$XY@WxoU6>gt2>@}#B>4aU delta 99 zcmcbib34a>@2=bVWSbD5<+^i6yq!{p&Q@n5{)i^}Z`42(Ps3=C!&8L5eEY?JdC wi)3<~dsoKu+k9os%ji7uU%cQy-t7zwj64hs3}zV_sflbiCg(90 xNr$gcWR2&y`O3h}`~oP&aPi&Kd?-EnH=`UQ!(=I@W=4k1^O&mTnBP6k0{}(GAnE`B delta 97 zcmbQ^G{oL`{gIP>BH*aB@8q54dIv)Une<+3k diff --git a/fonts/HTML-CSS/TeX/otf/MathJax_AMS-Regular.otf b/fonts/HTML-CSS/TeX/otf/MathJax_AMS-Regular.otf index ac9a2cdc8eadabcf8da5956bc562d3e772f8eae8..632be7ca9abe9585998a2fbbf282ee896cd93aca 100644 GIT binary patch delta 151 zcmZ2*l6k>N<_U_yd)$H<7@o8+FfhotySTbB8ZodiFgyqV@)i7p^^M#N<_U_y8*73X7@o8+FfhotySTbB8ZodiFgyqV@)i7p^^M$%BK|NiFe(7~ z3CX#M1;?Va#26UZ&oD5sWM!l#rZByzybP4v1H@(-Kmita_Lmb&0%VqPWHQ9_+k9o< pW_|&bW4QQ4Iuk}ud?3xt$q+U1UnV<{Vt&o|eRCe8{$pmK5&(G8EJFYQ diff --git a/fonts/HTML-CSS/TeX/otf/MathJax_Caligraphic-Bold.otf b/fonts/HTML-CSS/TeX/otf/MathJax_Caligraphic-Bold.otf index c12bd6f69a469a6b2e9a98d655f0e2ddfe665ad6..6bb411f33f54a316c17d236cad1b34e198970959 100644 GIT binary patch delta 151 zcmdm!uqR=HV(=cfU~H->Nq76u0W2q0gv0_&|!~zb*sA#D5taAez~O;qvA@#?yMtKt%vKtt);2 delta 151 zcmdm!uqR=HV(`YAAO;2l1qKEN8Fv>~H->Nq76u0W2q0gul@3sD4-lJW00lTMGjmNW36Pnh>JSjmZ}XLboB0J$ mj^W}H=}Z_s@qrY}zcma|6aQs!fM{k9#*ocNit}g=vM+{IbDI+y8g*}M(2T*Pg5SwKH1=zEho=hwWkZJb1@Fbq!<|_j?^9!IH m!^L+`vtjha2U0BmH5eEs{>$J1(afR@H#X-nw(Bwj6#)QXm@Y*C delta 151 zcmewn`y+OOV(`YAUNit}g=vM+{IbDI+y8h25s|8&GZ!5SwKH1=x==&7N2iAk#Rpk1w9z<|_j?^9!IH l!^J1kSulFy11Xk&_Zgxl{>$J1(afTZiktHo+jW_NiU4?AEk*zU diff --git a/fonts/HTML-CSS/TeX/otf/MathJax_Fraktur-Bold.otf b/fonts/HTML-CSS/TeX/otf/MathJax_Fraktur-Bold.otf index 33cef96240a0dd4b7801749dc907d16f1375599a..0975b65e13fad0cc39ff5600053b80ae36feadbd 100644 GIT binary patch delta 151 zcmbPoiE+v$#tDkSd)z`87&3k^FfhotySTbB^fIt8Fr-HS`3nBQ`bKVYiH!^lj0!-0 zLUL|m!4&7h(+mvkFMwjRGEx&$*bnj^0LtwFVzUgO0Q(9S*NG(oGK<=SqvQE)zA|t# o1JyDxTzvO58%9rjAkD1Ez%cP&COeQ~dctsja~|X3bY`Fu0BP7Q*8l(j delta 151 zcmbPoiE+v$#tDkS8*73Y7&3k^FfhotySTbB^fIt8Fr-HS`3nBQ`bKV@i3JP{j0!-0 zLUL|m!4&7h(+mvkFMwjRGEx&$*jHEX1Iq0IVzUgO00$F`$;6TXnT2-zOXK-%zA|t# o1JyDxTzn#(1*0cEkY*NOh?@8>lO0GgJz@B;IgfF1Ix|oS09Xbq*#H0l diff --git a/fonts/HTML-CSS/TeX/otf/MathJax_Fraktur-Regular.otf b/fonts/HTML-CSS/TeX/otf/MathJax_Fraktur-Regular.otf index e3eac91721e6b1ebcd991b994cfca2553449cfc8..d93b4ff058db46cac0ddc97cbe19f36377b252c2 100644 GIT binary patch delta 151 zcmbPoigC&*#tDkSd)z`87*c*PFfhotySTbB^f9n7FeC%T7!>@2^^IILBG)i5Fe(7~ z3CX#M1y`8;rZO;ahycYVWuzviu(R;)2g>aMVzUgO0NWep&WR-fGFoqI{>Ss%d}ZKf oegTwYxcKgAHjJM5K$=;BfnnmmOm-l}^n~HT<~+v5$;?0{01g{1G5`Po delta 151 zcmbPoigC&*#tDkS8*73Y7*c*PFfhotySTbB^f9n7FeHZn`3nBQ`bMskBIhtLFe(7~ z3CX#M1y`8;rZO;ahycYVWuzviu)V9?3zXXf#AX>l0d_a$%84ZbGMdXQUE}#}zA|t# ozW~ZHTzn#(1*0cEkY*NOh?@8>lO0GgJz@B;IgfF1GBZ#K02U%EGynhq diff --git a/fonts/HTML-CSS/TeX/otf/MathJax_Main-Bold.otf b/fonts/HTML-CSS/TeX/otf/MathJax_Main-Bold.otf index 350151cbbc77ab6043a35b17f6f0939dc51f8f3e..03b3e7a44d4e43c49c431824c383a1db4185e70b 100644 GIT binary patch delta 150 zcmcccmg&Ml?YNCwnn4Fe(7~ z3CX#M1s+_}b}}%qZ(v|xvC2qIOySVyO9#sB0b;WZpa929_J0#g0;GEwuIR?|+k9o< pW_|&bW4QS4X*QIecwdJ3D+9yCf0^t+ig`OD_vSpt_^r%96#yG(Ej$1K delta 150 zcmcccmg&Ml=AkCQV{sU{nC| z6OwZi3p}`{?POqJ-@w4YVwI7an8G1hl@65K1H@(-Kmkr?cDIQo0n(kBllkNMZN4&a qGrs`JFhx)yg83Cek=16=_~-^VJbfW diff --git a/fonts/HTML-CSS/TeX/otf/MathJax_Main-Italic.otf b/fonts/HTML-CSS/TeX/otf/MathJax_Main-Italic.otf index 86d0b23513d01fc860436cc23663da0677b04740..50a4ce22ca12cd88737155a0a5c03513edfd58d0 100644 GIT binary patch delta 141 zcmX?bhw;E2#tDjnd)z`981hsY7#L*SU0mH5Rx+?KFyx2;`3nBQ`bMtOksBBo7!`p0 zgyh`Bf_R5q2L=ZA3k(cQLK&%vDQw=n8-a3rfY>YpD8Obtu_#E!K|^(0JipCX25#mT gKpBRM@1Ews=!p+x85t)2%VuQQoW*!KhZ!gZ0POZCW&i*H delta 141 zcmX?bhw;E2#tDjn8*4%s81hsY7#L*SU0mH5Rx+?KFyx2;`3nBQ`bMs$ksBBo7!`p0 zgyh`Bf_R5q2L=ZA3k(cQLK&%vDQu>d>w$86fY>YpD8M##Vo{KcJ;TF2@%%Pl8Mv8W g0A(01K9SCb(GwrYGDc1Om(3WpIg9af4l_^+07daAW&i*H diff --git a/fonts/HTML-CSS/TeX/otf/MathJax_Main-Regular.otf b/fonts/HTML-CSS/TeX/otf/MathJax_Main-Regular.otf index 2059ff6c8dc8a9e1a6fd6b7a985797f87fac57fc..5cfdff9a9b10254b0c9cc8bd79c30523a28679fa 100644 GIT binary patch delta 151 zcmbR8g=xwcrU{C{d)z`97l?Wqk2=G^z^DM^ zCnV=47UXs9vtwXjf55=N;+2t_n8M!8X9$$r1H@(-KmiV6cF~C?0Wznz#lDT_xB1Gz p&HMr=$8ho8(;OH*@qsk+2L^_T|1#Nu6mtusz~(&0#XFdRN&wt~FChQ` delta 151 zcmbR8g=xwcrU{C{8*4%s7l?W(i~_P56@dJN z&)~bz(_?%*lS~&++^=Um3WW oUjXG8EgBhp<0IGQ{BLDyZ diff --git a/fonts/HTML-CSS/TeX/otf/MathJax_Math-BoldItalic.otf b/fonts/HTML-CSS/TeX/otf/MathJax_Math-BoldItalic.otf index 546495921e036f593a68cc37ac44e83baf506212..04611b44a19e425ccf0dddb636a113bdda2d1c60 100644 GIT binary patch delta 150 zcmca{neoPD#tDkSd)z`97&7-TFfhotySTbBOk`kTV94MB@)i7p^^M$wqGA~s7!`p0 zgyh`Bg4f+SB@7H40zk1#8L5dW?CW@U0p&pY%`$)j>@Cd36H5Z5Tj#BgiRZWZ%D~P1 n0w~9D@!iuLC_VAM46_CU!^D4?>_Cd?D#MM?Y5t1yU delta 150 zcmca{neoPD#tDkS8*4%t7&7-TFfhotySTbBOk`kTV94MB@)i7p^^M$0qe2)M7!`p0 zgyh`Bg4f+SB@7H40zk1#8L5dW>@zBN0p&pY%`$)j?Dv?pCYA(9x1^>w#Pi#HW#DFh n0hD97_(VDfN>98m!z|AbHSu32JCI_!%J6V=9%Fh2Gf)KpJ{&8g diff --git a/fonts/HTML-CSS/TeX/otf/MathJax_Math-Italic.otf b/fonts/HTML-CSS/TeX/otf/MathJax_Math-Italic.otf index d05aca489d76172e0d63f8982120598b87f26fcd..10028d6fb82d60ecd825ac6e176844577b0cde28 100644 GIT binary patch delta 150 zcmbPmj&TAIDF*Iw3uRzP`@+D$Ami@h>c%jUfrWt~)dk2`@DJ8Ea=8_GmVtp$0mx5C z&P^c%jUfrWt~)dk2`@DJ8Eay5-S$H2g-0OThm z=Oz}s?#?M;U|_!h6uXp>nwY|Nzj6amZVwQfWdH@({`2|ph l;o=kN94I~Uz7*@Z|7r|T6aS^NgBeWcHs>%dOl1bD0RX$+FD?K8 diff --git a/fonts/HTML-CSS/TeX/otf/MathJax_Math-Regular.otf b/fonts/HTML-CSS/TeX/otf/MathJax_Math-Regular.otf index 9c3798a81120f735d84883e5c276fd0c1027c7cf..9d9c1684a042124a72d423b91bfba0b1f2998c8f 100644 GIT binary patch delta 151 zcmca{mhr|}#tDjnd)&ep7}EAIFfhotySTbBOkiMPU`Q1J@)i7p^^II^MX@n3Fe(7~ z3CX#M1zU^SB^Vgk9{|NpWuzviuzlv;1e62mH_HGDupOCL6eM#k_dZWNzs*+$Zsr$2 m8HS7Rp60^ni4P=M&;D0qV3_zXogK_zI=eZCF*B7Js0aY&wlJXp delta 151 zcmca{mhr|}#tDjn8*4%t7}EAIFfhotySTbBOkiMPU`Q1J@)i7p^^IIjqu3c37!`p0 zgyh`Bf~`gE5)2IN4}fB)GEx&$*zQ(t0Lp>%n`Hn6*ySe{1<71>nk^8|Z}XLboB0J$ mhT-B9=^Pk6@qr}kx&LYmQ4{~Avx6B-=QigsW~MR&6#)QYp)I5U diff --git a/fonts/HTML-CSS/TeX/otf/MathJax_SansSerif-Bold.otf b/fonts/HTML-CSS/TeX/otf/MathJax_SansSerif-Bold.otf index 972603a0e4fc148727d2915c0d0ff9c0c32f303b..f194abc08cc9608f004e9925358d27c2d33a45d2 100644 GIT binary patch delta 140 zcmeBK%h7CuqI6`3X(SZ{OxQ!zs*+$Zsr$2 f8HS7Rp5{X7iTC9g87BVAW@Ol$#V8-j43q%?8Eh$S delta 140 zcmeBK%hu=u8K)F3YY?c8OV0}HYC`ejskK68eew(ih+{`b4 fG7J~rJ(k23K)F3YY?c8OU~`>V6eO)Vm1%c8zs*+$Zsr$2 f8HS5bq;sM4#QSoLQ4{}VGe&LBVw87h2Fd^c%XB8E diff --git a/fonts/HTML-CSS/TeX/otf/MathJax_SansSerif-Regular.otf b/fonts/HTML-CSS/TeX/otf/MathJax_SansSerif-Regular.otf index 75cf6ebe9b0b04e3c6b96f5064384731f2c57792..1417236d6c5249007dd8ac1993e735386382f3bc 100644 GIT binary patch delta 138 zcmdl`v!P~!V&ERPFa`!Y5e5bZ8Fv>~H-;4qEDQ`b96-K;f3Uuht6Jn01_nk2AU`2F zH?cs};E){y1BV4r>{mu=VhXD{?`ELf9w0W$01B{bPAm$NKG%KmNj$&JR|an87eEx@$*qp_9*oGM>0|0muD0%<@ delta 138 zcmdl`v!P~!V&KM_Fa`!Y5e5bZ8Fv>~H-;4qEDQ`b96-K;f3UuhYeVD}1_nk2AU`2F zH?cs};E){y1BV4r>{mu=VhXEb*=e`y>L7PH>w9LAOA%ul3q0eW64g#Z8m diff --git a/fonts/HTML-CSS/TeX/otf/MathJax_Size1-Regular.otf b/fonts/HTML-CSS/TeX/otf/MathJax_Size1-Regular.otf index a506a3fc3ae1d6411e6eb280c0c2e9497b9cc8c4..2a15b2a074cc4e53ae026ddfe1c9ae38a9ea3044 100644 GIT binary patch delta 138 zcmdnvu*YG7V&ERPa0Uhi1qKEN8Fv>~H-6slpN1*^Ob>{`2|ph e;o`fec~E-deK|&kiT|=088&Azo|j_=$^ZZvA177- delta 138 zcmdnvu*YG7V&KM_a0Uhi1qKEN8Fv>~H-?{7NZKoGU2;6X%~u9)<`+O2 ehKo<6^Pu#^`*Ms?6aQs1Ms3bwJTJ!#lmP%nMgW}w_2AU4YY3UDe-EDDk-TXsD;p5Nvx12^*vpbW#s jcTe+R^uz~}tO0)(F)&R0m(C7mum)_-Vf2(?1}Xvoq8lwj delta 149 zcmdmCy~BEfV&KM_2nGh(ISdR8GVU&}ZVX`zEI{TBAYZ{hSl`HfYNQVX1ET_vpOBoJ zSkSVaFO`9T{R2?!Rz_-K3fqp#tw6awKx~!)6yU6zSQI2vT0S{4p5Nvx12^*vpbW#s jC(`*adg22~)}TL&7@{WrOJ@f&Sc5j_FnY=`0~G-P$e}Dl diff --git a/fonts/HTML-CSS/TeX/otf/MathJax_Size3-Regular.otf b/fonts/HTML-CSS/TeX/otf/MathJax_Size3-Regular.otf index f9d857b2093f6c4a0e5a10c0430bd2f7580533d6..5c7f4b49e0a63ce706144c4495c7274b2f9c0fcc 100644 GIT binary patch delta 139 zcmaE%@~HwHHb76t~v6F|O#f3Uuh`|F6^3=E74Kz>4U zZeqc&KmA)77}!4m#a3mcCZ;g`;|1~=_5iV222g-?&BUT0nOKIxneqHKUm3WWUjSto dF1~x32csuGkY!|;_%EB0VRIJaZvkeY6ac1_E201Z delta 139 zcmaE%@~HwHHb76t~v6F|O#f3Uuhhik-c1_nk2AU`2F zH?iQ?pZ={34D26(VyiMz6H}O8RBi{#?Ezx544?oT+r*+EndqCkljHeqzA|t#zW~ZG dTzn#(52GhOkY$XT_%E9=YI7FjZvkeY6aZ;=DWm`Z diff --git a/fonts/HTML-CSS/TeX/otf/MathJax_Size4-Regular.otf b/fonts/HTML-CSS/TeX/otf/MathJax_Size4-Regular.otf index feabb4449332f0553ae3bf4068bbb90b5e80827a..6ebc51ed4b6ed21b70b7d325a1e2f2975d9b3f3e 100644 GIT binary patch delta 138 zcmX?NdBk#pV&ERPa0UjM6%0Va-Nn_7A(4TFfkAo)kgwn$tZ(Gy94WxSz^DM^CnV=4 z7W}fY>YpD8P1OVo{LvEuT5R98m$H*}8Up6Dd<}Ai=Y36rN^8jNsD@%%Pl8Mv8W0A(01 cK9SCc(i88?F-A@Nm(3WpIg2q|ni(hq0A0K(CjbBd diff --git a/fonts/HTML-CSS/TeX/otf/MathJax_Typewriter-Regular.otf b/fonts/HTML-CSS/TeX/otf/MathJax_Typewriter-Regular.otf index 3bb0d65b081f327749bfeed94a44449a2626f380..ebfe6a3905a7c948a7239aa6f26bf9a37d3e00f9 100644 GIT binary patch delta 150 zcmeydhw;ZA#tDjnd)y)z7~*0W7#L*SU0mH5Rx_|LFvPe3`3nBQ`bI9Dky9BM7!`p0 zgyh`Bg6D=e{xdLe_yEOjWuzviutxDt0m|(GVzUgO0JGS{q9Exd9~sNz`E9;3aWlUF m$}n7f_cR|$PrNV1y6wL-1H;6B>Fi(z)3(hyjGVE|Ks5lEZZ6FL delta 150 zcmeydhw;ZA#tDjn8*3sM7~*0W7#L*SU0mH5Rx_|LFvPe3`3nBQ`bMs7kvkX|7!`p0 zgyh`Bg6D=e{xdLe_yEOjWuzviu)0)E0m|(GVzUgO0Q2ODMM2VwZTA|+^V@u7;%0sU mlwr8|L^>ZzPrNV1dh@?DL)657>Fi(z)6LB}jGVE|Ks5k~EiKLf diff --git a/fonts/HTML-CSS/TeX/woff/MathJax_AMS-Regular.woff b/fonts/HTML-CSS/TeX/woff/MathJax_AMS-Regular.woff index bc641a75a5fd35f4db96dca9adadcae6d83e7ac9..11516fbfdf396cd3dc893fef6c048c3e8c360c28 100644 GIT binary patch delta 167 zcmV;Y09gO(P^Ob>{`2|pf;o=kNOc?#`>OVtHE#}uiE(Ze>NE84<`3y*S+GAj3 zU|@dzkCP#aQ})}{|9d&L7=R+kfRPmdoT>&mlU)Hp93Lk`6!UAw?+OeI{c+47S*Fzt V3P8vR0BSB0{# diff --git a/fonts/HTML-CSS/TeX/woff/MathJax_Caligraphic-Bold.woff b/fonts/HTML-CSS/TeX/woff/MathJax_Caligraphic-Bold.woff index 5a399ffae0ffe72f5d57d5a8db7586a99bbd0039..cf9462dde0d4c43d73e540e513762160ca83793e 100644 GIT binary patch delta 167 zcmV;Y09gODO|(srQ3Je2Q;}381V(^iE0KI97cLGiXlP|&0003%0000W0000a2zdjG zk+@q;=GWvF&u{aUft&dSP=w*)yQf(&`v24ax~!he9t?~O91Kh#Q2>Bo4i*3a0C?JC zU}Rum_V};Mz`&aH|LMPrtey-&5fq>W0FUej43l61K^wm=0|T=M!({~qhWw7s*!vp7Z`dhXlP|&0003%0000W0000a2-5=! zk+@q;qUsP3&u{aUft&dSP=w*)6X{GC{r~BIT~<$K4+cgC4hANWC;&$z3<&@L0C?JC zU}Rum_V~AkA&NEW|I>dLSv?tmA}Bx$0H?18OPEWLQ3Je2RFPCA10qBLnW`Ys*?dkN^Mx delta 162 zcmV;T0A2r>OPEWLQ3J7jQ;}391I1Wvk$fc=JbCtLXk}pl00BGz001BW001Nh#R8j= zxLZk_*vA*oZ}XLboB0J$gyG^7=`0xi|IvR9mO^GxAeV!I2_y;tSa%Ftc-muNWME(x z{db=sie=;fNBKaLqB%e0C?0SFlZ Q6BrP}v$X->BLn0cYW%uBdjJ3c diff --git a/fonts/HTML-CSS/TeX/woff/MathJax_Fraktur-Bold.woff b/fonts/HTML-CSS/TeX/woff/MathJax_Fraktur-Bold.woff index efdda46b79313640ee80c86ce017dfb821e41d69..fa97e3c9f7f3f5b04391017ed19f22a7a1074857 100644 GIT binary patch delta 336 zcmX@Ij`6@cMxJtiH#h%~5Pt@SaEFOJ>h&263;{_D46&QvO9chExrO)wB~%y~7-T>= zevey-yNjzE14HN;AYT@U6&QLMSp0+ajTjghfqEH2fH=WTF0nB=H?e?$fu#b-zXOz; zHO0B`bVh1o3XshK6f*^4GxmeL2Qq+yKrsg(Ux9&vk3off1&eD&ZV6Ch=$nZL)a&;! zFfaizTbiAm3r9hIaR~zhE65gMkdFUt3`P~Vk`q!A5)#r9BCg2E$ez#tJhgH5Pu75z zhmUqIziII6|LOl-I_5Lx85kH97#K9VFixG#4|E0tRA1Gn_=$~;Pk;TN{{Q}lI|&S3 z3mRA$cJZ@+28IOCFO$<4ZKRX}{tLJL=HlV`TX@Fd?kXQ|ha#RH2J2EG^UVhs8$+4j HJZZ>h(Dc3;{_D46&QvO9chExrO)wB{Ucq7-T>= zeq&9ryNjzE14HNqAYT@U6&QLMSp0+ajTjghGl2Y1AWm@WOe{#wO)OwwV5tG}?*Qdy zO>r(fospWD0%UUl#Y}Vlm0cEvW#S^>|&lTI5FV&iv1dNy%_``&f85lNiXS51pe)lvR0B~$Xs{jB1 delta 199 zcmeyeobk(Y#tDJi8*75yU0mH57=l_D7#L)MSb?FBfyF;q--v;MF$KsE2I2(QNs)6V z)~HCZy{p`tk&&7Rl(PY=WnfTYcVn)cxFgy#Cheuv`TWmQ8)yGy4QP4zNcg3W#NYov z>siGtm#I7Gu`>&Mh%k6p@Dx?tN=`^gNT~W0-=Ns#`s)AZ|M`(mBpQ@76a*O-y0RUe u9K&cY1C)Bnd6=D*t?i#h+Jbi{eat0A8YT!bi1P^T-MpRADv0@sbQS{`2|pf;o`fe*)aOA(!Z}9yv*Af7#TPim_VWcdu0wW0001Z z+GAj3U|`<eN|Fb!G8Gs_lfKeU*m-7YmlVJfw9lx&(49wdZxfK`~`s0{^ ay7w@x1IaNk0swG56AQD#0n>y7?&WJ=2}TkC delta 172 zcmV;d08{^%jRKgB0+3Myv3ygJR3rpQIbxELd?gnddS_^8WnlmS0YCr%03iSX03-=R z2S$;&TTaZJ%pcEh^Ob>{`2|pf;o=kNY#9Al>EBllUgqr#j0_wMOdwGJRYnYu0001Z z+GAj3U|`<<&z2#I!|$)s|JfY83_uZNz$gy@jF|y7!+N1{VKdeIo`2#uOkw2#6D0r6*RY zi+b~J%*aSh1WMR|6*4fWuvt&s7UNZLA>gjq`TWmQ8)yGy4QP4zX!mkUgJ1VI|Ig9U z^m#8aL&Bm#f`g%W3ZGZSt>lE1goLW^^LrZ`f8O7p{+~NCNTNYWV*wk(itp@(lVcd| sWq4Qomp!b{%GUPJB5lFDSRZW(k%kF^3=;K1Q4E{6Gfwhne)lv70CXcn1^@s6 delta 195 zcmX@Ji1ExK#tDI%8*4(`U0mH582ooIFfhmhu>!+N1{VKdeIo`2#uOkw7>E;GOD9&T zi<(xh&&Wtk1WMR|6*4fWuuYw~Eyim@dc_X)dH0`bGn;?rUchnqsQRUw2EXoa{-2|x z>GNJ=D_H`jsHHdb2GO9xf~2kAW;CeQ4f@O+GAj3 zU|??f_kn?d-T80h|9$M-3_uZNz^DuWn>q$FlU)Hp9ruBOfw_fIK!JgwKaLrwdl%CR W1_dBw1OPNI5+t*`0k(q!?&WNIy+axR delta 168 zcmV;Z09XI?iURbC0+3Myv3yjKR3rpOp;}Cld?gokdM{{bWnlmS0XzTz03iSX03--) z29=SxTT0n4{W+fB<|_j?^9!H|!^J1k*)aNVNE85k!VQIZ+GAj3 zU|??fSHKX(?)p-Uf diff --git a/fonts/HTML-CSS/TeX/woff/MathJax_Math-BoldItalic.woff b/fonts/HTML-CSS/TeX/woff/MathJax_Math-BoldItalic.woff index 326c0d8f2089e04ddc8e154439729bf09b494978..de090069dc75802aa68d5612a1846279f9a228fb 100644 GIT binary patch delta 369 zcmX>wi}A=TMxJtiH#h%~5Pt>+UzdqI>h%>23~n9_3~{UhX0ILG+(LYT5*iE)3^E`b zzsD`q-Nn_7fx-I#kS`0w3Jen&Sp0+ajTjghGl2X+AWm=-ii%CnO)OwwU}*vJ9{}Yp zz3$E_$w*C10kS!OVx~ZB#=eesR|ZfJDCPj9q!>Hlmx?UD^j8Valo^JcQ`ogBkxE1S*mH9mF6!UG2` i$RFpqQadA4wwX!5h>0QesnCCh&D$8;y_w%V%>e-VbZX%M delta 365 zcmX>yi}AoLMxJtiH#h%~5Pt>+Ux$f2>h&cI3~n9_3~{UhX0ILG+(LYT5-JP~3^E`b zzp*CN-Nn_7fx&wZkS`0w3Jen&Sp0+ajTjghQ-J&+AWm>AjS5N5O)OwwU}*sI9{}Yp zz3$E_$w*BEs$t{+ikSeh8T*XNT^T?@pqLGiufV`i&!ED7k69}tx1<7S$sM4CI}lIc z$l<$`n^*xfkTC|RkPVDe0vPfVb5nt0I~W+4jsk^y3v{`*7UUNLJ;9m)R3i+;3jf;} zj4Ey=C!{1KB%~!|c>3mdJm3EF)Pb{qm^2O*eC#aY>-qQp(|)$oiOW_yXqU?H_$UN2 zWHa;5foj_ID}J70*U~rtPyc7rX_stJ(okS!ST4lQH#vdPR`#^9i(zbP#fk$5F32C} dxl%hLQ?{8&z=(+<_NZ{==3R{K-po&=a{wxZYAyf( diff --git a/fonts/HTML-CSS/TeX/woff/MathJax_Math-Italic.woff b/fonts/HTML-CSS/TeX/woff/MathJax_Math-Italic.woff index edf6b0ac49fce750e2c3c17793d547a2588a6b2d..df9b26d407f32e2635b334f5b3b4882acb2fb294 100644 GIT binary patch delta 199 zcmbO;opH`|#tDJid)z|ZU0mH57`%8G7#L)MSb{4AFMHe)U{GO~pSUf?>qT{Cl)}9G&$OA%KXWhOIDAz7lBL0~|7ZVa z>0I(jmz*JC(ICOWP~pQHU2!WpAtfQf>U(^zV%N_r|7ZWd8?i*PK}kb_m0>Xp+y2Qh tjJ9%M$(J&Rby?Zk{#m3gcsJKaTSBB^f*^xhztE)3+Zi8uGCz^d0RYw~M8E(5 diff --git a/fonts/HTML-CSS/TeX/woff/MathJax_Math-Regular.woff b/fonts/HTML-CSS/TeX/woff/MathJax_Math-Regular.woff index b62fb19a2436aeb913e1594af53a10ad9605a964..7e38885870a5edf64ec62a3584e5c961f0821dc2 100644 GIT binary patch delta 198 zcmaDbjq$-W#tDJid)&g@U0mH57(8z!*c1{VKdeIo`2#uOkw2#6D0Zbh+8 ztWg#H%)2QgBQ+5yWdl~qz@Wl*Wa741&uP{3)#u%Rrp;{rnR@}p;iKjL#fe}3&;EZk zV#&;NOgm+Gd=vs1W~uPqueg<*kdlyK^*g?|vGL~>ppv^0OC%eVG!!HmW~Q+vPmW=< umHQpfyW+pjVO>_Xwtp6B3*OE3(UuTtm>|fYVkMN%uz5S!*c1{VKdeIo`2#uOkw7>E;GO{3T+ z)~Jf!t=y22k(vmUvH>e)U{GO~pSUg7^OZ@o!o2&>w3*F6b1&dHd{q6CrNOWNXa8sE zT=Ge8jNxNbo1noEpU88v;#P7(N@rdlQ-Ev^pc+#kHe)U1-JAgw1d2HT`3ejSd<-hANz4l~a!Y_3ZJta#pkBX+fq@B# z*}66yo?ljwUtGe#z`6veS{S6`e;b2Q#jWIol!SzYv;>1+f8OTU>^~dMmiJ8DL9ng+ z{k&&~Uess(zZtP-<~>6LqXGkiMi<6)EBM8MnxXotzR&M%Y&`mW{;mI~b?)&v2#N&o zGW5)41G+MRfuVYG8l$abz<=wucrG5EzlCQU?k=BU*8D_5g3%&D=+Wi_jFmRb@1EuY E0A2%UKmY&$ delta 337 zcmdl{v!{lq+~3X3KP1GTfx*sZB9D6g9tH+;E(QiK%eh@G!ESCLzCZ~D1_lNh5RTti z6Xx#X>c+rea{|bh1!4t;6$~u?!TLrF42&5-ekc$pxUEV2k(`@Yz`(##0~FT;;$NZ$ zhwL&^6H|a}4xk!SAU0!-uH2jf6a zLv|Udi77xf$UIXZHe>zGyEy|W2o!Sw@)Z~u>KRm6Uo)-C$StV=TCxHt5eLL?UN}hb z<|bAE4P;CJDr5uW>Hvnk#N1S%7|_v7`+>qMxJw`1Eyyn}VPIed>SYiHVuk;03`P~V zk`q!A5)#r9F5G&&&3fMbXWGo>pSc%s96nm^U!3@5fAasE5k52S8R{Dt7BCnJFfeo< z zLv|Udi9j`s96&WDKy1ePv~qI>P!K3)1LP|(Fw`@su(>j=%g8MOYBXO0l!yc3H!mC{ zcykjgfCe(g02Q)m3ru{(S72Ktd?iS=1moPA}0`)Qo1F^#YHU^`L zTgeG22?+^l2^Z#^+G0KL{xfZ6^UvH1I1V3GzqHff*ZqzEb9B^v-b-lDkg#Zw;9v-} z;OT*Cs`@^^SF!8o(f!H)V|Yq diff --git a/fonts/HTML-CSS/TeX/woff/MathJax_SansSerif-Regular.woff b/fonts/HTML-CSS/TeX/woff/MathJax_SansSerif-Regular.woff index 9755d154d28569efc5578c94b53ee987668ebf8a..033e6e441e81a8795a9a4d9183e883b6fcac27f7 100644 GIT binary patch delta 192 zcmey9^e1UTpynR8Fn1SMHwFg%KMV{EvOuiBu!4cbKUm+0fq^jv$PWVI1Xs0*RqCSV zyqhyJQWJp^HeiJe3@WUe6Su{BUa$S=X|w-qI9uK`aRKk)zh%=yL)t^p3F466&+b0^0z+RN~+ p_%C}{pOvlcpGDe&ceXyWB}E!02r`J32z4@S-p+VPpZVR>TmW!AMRNcE delta 192 zcmey9^e1UTpytM!Fn1SMHwFg%KMV{EvOuiBu!4cbKUm+0fq^jv$PWhM1lNX%RqCRO zm76m%QWJp^HeiJe3@WV66Su{B&c5_pW#0W~+RWykxfgI8KB|6cr@^oI2lZypp8LFS zh~Z;Xo1nqa#>4xr;#P7(N^moJi}5nJk!Wc?@BTAwX7kV73pfrRE%*PN@a2E~|GtfP zQg-n_DKaoM$?j5cy5 s|L+?v`1iXfjEjfoZ{Zn*$Yq;(xExM!FvRx@&1KlUjd8vX^Sh^c0L!aMQ~&?~ delta 197 zcmcZ+b0cO#p!UX^Fn1SMHwFgXISdR8vOuiB;LE_`AFOZ0z`&RSd7w;_v_a`;&Fd zXTD?JDZ}HV5Xg|h$tPZMD>)%0A>rEZ@*c&mqmTaYuYVqqXT;zd(7?p7{w90K{`2|pf;o`fec`*9#nSYB|C76SNTn+{%kSG9_<_^Gk+GAj3U|V|7ENa3_uYSUpNBe delta 152 zcmV;J0B8T8EubxsQ3A1iky9oCm63WU70r3IXlP|&0003z0000W0000a29uGtT}cXC zmmJS;^Ob>{`2|pf;o=kNJQ)4=%)dpf63jtBE(Ze>NE85ESq!Xr+GAj3U|H% zrSI>V|7ENa3_uYSU)HViiuMiQ8g5qswe9 z=iPs%&20XedjZGcqvige6TZklwC}$0eFGcAP8l8_g+PY68hno{ZY3wABqZ?u*xb?B zc=l2Mhy7CDY0Pp%u^$MCf2Bm?x@_Fk&&9nz`$t3z`&pY#44P16Su{B>du#u zJfHu0YUAvmtN|?#9|^y#k@)NW+GZc5BsIQ+449DiY(w{m=wXrIyr{XRuU{}+F|L}*tpQXPjZz5BZnj-udG1H=1q+2 Kg_)m7=K}zoLOT=y diff --git a/fonts/HTML-CSS/TeX/woff/MathJax_Size3-Regular.woff b/fonts/HTML-CSS/TeX/woff/MathJax_Size3-Regular.woff index b54d80b651d37702cf57fea62fb3ae3d6f3f0d1f..bd564c45861c533d0613fa5c45e43bd40a2f8f17 100644 GIT binary patch delta 155 zcmV;M0A&BT8MqmcQ3Je2SCLdC0!QnSdM6eB4Yg=!WnlmS0XzTz03QGV03-#hk+xk) zWhk5(&u{aUft&dSP=w*)yQg_D`d7psFV^L(tAJb%1}2aw0CfNkB6!+kU}RumUG>Kc zNG|ym@&66$at5FX3XlWni4L3JeVWam-K!3P8vR06T0EIJ2_> J0t*A~L{ zA&Pa$uZaI|SeG*ZMNohw0IK{3{gYe)Ko>(4>ni4L3JeVWam-K!3P8vR07HTilC!e` J0t*A=8*j8bI>P_} diff --git a/fonts/HTML-CSS/TeX/woff/MathJax_Size4-Regular.woff b/fonts/HTML-CSS/TeX/woff/MathJax_Size4-Regular.woff index 2d090f219b908ba79f1db2f35ec745bd3af66b64..46be3ea68819b760b207ccc2fabacdb4d18d0fde 100644 GIT binary patch delta 154 zcmV;L0A>HED5xlqQ3Je2SCLdD0Yi~`Cl&q;w`gc(VE_ODJOBUyAOHXWBnH@#wp~f( zGv{|azs*+$Zsr$25r&KJp60{o9}|DevFEW}19CYSm_VWcu>uczc-muNWME*s_FImD zfj#lZ#Q!hY^B904D8K{&oFoQ$lUxBn7lDE88p|UE28RAPW~c%MAY=pp1rHGDv$Fwm I5(Dn#ZUPlNga7~l delta 154 zcmV;L0A>HED5xlqQ3J7jSdmmE0iBV0Cl%;9=8a07gsk12ImC~3=FbBtiZ6EfyF;q--v;MF$KsE0^$Uh&d8|~ zYg9#}c&B7!q$UETY=FXYK&-+nHgQ|5=ckDqZRXv7rY&s#nR@}p;iKjLpA)~>&;EbO zr_1MdLku6A0RuzF9X>XOid)GEDG3R;zQs##+nFs7gsk12ImC~3=FbBtiZ6EfyF;q--v;MF$KsE2I2%)w#Xe5 zYg9#DDyL**q$UETY`{tx7*v=iPuv#knX~)4!Myv=w1v$-b1&dHd{q6?PlI3c&(>$E zxh~6f&|_zoU|RfeR2$= rjXXs5rP|?OR<^c(7HJFKef2rX!{u;-gF%=<$anL0Mk#0JC(`) Date: Mon, 10 Aug 2015 19:49:54 -0400 Subject: [PATCH 155/186] Remove() method should remove display container if the jax is a displayed equation. --- unpacked/jax/output/CommonHTML/jax.js | 1 + 1 file changed, 1 insertion(+) diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index 84ba196bb..8df164885 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -596,6 +596,7 @@ Remove: function (jax) { var node = document.getElementById(jax.inputID+"-Frame"); + if (node && jax.CHTML.display) node = node.parentNode; if (node) node.parentNode.removeChild(node); delete jax.CHTML; }, From e186e50c9ecb742bdd5ced5ef241205e402303e2 Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Mon, 17 Aug 2015 09:16:43 -0400 Subject: [PATCH 156/186] Incoporate changes that were lost during the rename of CHTML-preview to FHTML-preview --- unpacked/extensions/FHTML-preview.js | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/unpacked/extensions/FHTML-preview.js b/unpacked/extensions/FHTML-preview.js index 1a29afb55..d74f0bacf 100644 --- a/unpacked/extensions/FHTML-preview.js +++ b/unpacked/extensions/FHTML-preview.js @@ -26,13 +26,13 @@ * limitations under the License. */ -(function (HUB,HTML) { +(function (HUB,HTML,BROWSER) { var SETTINGS = HUB.config.menuSettings; - var msieColorBug = MathJax.Hub.Browser.isMSIE && (document.documentMode||0) < 8; + var msieColorBug = BROWSER.isMSIE && (document.documentMode||0) < 8; var FHTMLpreview = MathJax.Extension["FHTML-preview"] = { - version: "2.5.0", + version: "2.5.3", // // Configuration for the chunking of the main output @@ -43,7 +43,7 @@ color: "inherit!important", updateTime: 30, updateDelay: 6, messageStyle: "none", - disabled: false + disabled: BROWSER.isMSIE && !BROWSER.versionAtLeast("8.0") }), // @@ -52,17 +52,15 @@ Config: function () { if (HUB.config["CHTML-preview"]) MathJax.Hub.Config({"FHTML-preview": HUB.config["CHTML-preview"]}); - HUB.Config({ - "HTML-CSS": this.config.Chunks, - CommonHTML: this.config.Chunks, - SVG: this.config.Chunks - }); - MathJax.Ajax.Styles({".MathJax_Preview .MJXf-math":{color:this.config.color}}); var update, delay, style, done, saved; var config = this.config; if (!config.disabled && SETTINGS.FHTMLpreview == null) HUB.Config({menuSettings:{FHTMLpreview:true}}); + if (SETTINGS.FHTMLpreview) { + MathJax.Ajax.Styles({".MathJax_Preview .MJXf-math":{color:config.color}}); + HUB.Config({"HTML-CSS": config.Chunks, CommonHTML: config.Chunks, SVG: config.Chunks}); + } HUB.Register.MessageHook("Begin Math Output",function () { if (!done && SETTINGS.FHTMLpreview && SETTINGS.renderer !== "FastHTML") { update = HUB.processUpdateTime; delay = HUB.processUpdateDelay; @@ -138,7 +136,7 @@ HUB.Startup.signal.Post("FHTML-preview Ready"); -})(MathJax.Hub,MathJax.HTML); +})(MathJax.Hub,MathJax.HTML,MathJax.Hub.Browser); MathJax.Ajax.loadComplete("[MathJax]/extensions/FHTML-preview.js"); From 6b399e37260834335b6d62b38a2152806664b1f5 Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Thu, 20 Aug 2015 08:50:01 -0400 Subject: [PATCH 157/186] Remove spacing from under and over scripts (see issue 815), and handle the bbox.D value better when there are multiple elements in an mrow. --- unpacked/jax/output/CommonHTML/jax.js | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index f6d88b3db..6127638b0 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -76,6 +76,8 @@ "mjx-op": {display:"block"}, "mjx-under": {display:"table-cell"}, "mjx-over": {display:"block"}, + "mjx-over > *": {"padding-left":"0px!important", "padding-right":"0px!important"}, + "mjx-under > *": {"padding-left":"0px!important", "padding-right":"0px!important"}, "mjx-stack > mjx-sup": {display:"block"}, "mjx-stack > mjx-sub": {display:"block"}, @@ -1201,6 +1203,7 @@ if (this.r === -BIGDIMEN) this.r = 0; if (this.t === -BIGDIMEN) this.t = 0; if (this.b === -BIGDIMEN) this.b = 0; + if (this.D && this.d > 0) delete this.D; }, rescale: function (scale) { this.w *= scale; this.h *= scale; this.d *= scale; @@ -1217,8 +1220,9 @@ if (x + scale*(cbox.w+(cbox.L||0)+(cbox.R||0)) > this.w) this.w = x + scale*(cbox.w + (cbox.L||0) + (cbox.R||0)); if (y + scale*cbox.h > this.h) this.h = y + scale*cbox.h; + if (cbox.D && (this.D == null || scale*cbox.D - y > this.D) && scale*cbox.D > this.d) this.D = scale*cbox.D - y; + else if (cbox.D == null && this.D) delete this.D; if (scale*cbox.d - y > this.d) this.d = scale*cbox.d - y; - if (cbox.D && (this.D == null || scale*cbox.D - y > this.D)) this.D = scale*cbox.D - y; if (y + scale*cbox.t > this.t) this.t = y + scale*cbox.t; if (scale*cbox.b - y > this.b) this.b = scale*cbox.b - y; }, @@ -1228,15 +1232,16 @@ if (x + scale*cbox.l < this.l) this.l = x + scale*cbox.l; this.w += scale*(cbox.w+(cbox.L||0)+(cbox.R||0)) ; if (scale*cbox.h > this.h) this.h = scale*cbox.h; + if (cbox.D && (this.D == null || scale*cbox.D > this.D) && scale*cbox.D > this.d) this.D = scale*cbox.D; + else if (cbox.D == null && this.D) delete this.D; if (scale*cbox.d > this.d) this.d = scale*cbox.d; - if (cbox.D && (this.D == null || scale*cbox.D > this.D)) this.D = scale*cbox.D; if (scale*cbox.t > this.t) this.t = scale*cbox.t; if (scale*cbox.b > this.b) this.b = scale*cbox.b; }, updateFrom: function (cbox) { this.h = cbox.h; this.d = cbox.d; this.w = cbox.w; this.r = cbox.r; this.l = cbox.l; this.t = cbox.t; this.b = cbox.b; - if (cbox.D) this.D = cbox.D; + if (cbox.D) this.D = cbox.D; else delete this.D; }, adjust: function (m,x,X,M) { this[x] += CHTML.length2em(m); From 948620fa0296e96564649d297218e908c5cc88bd Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Thu, 20 Aug 2015 10:32:21 -0400 Subject: [PATCH 158/186] Handle missing elements better (see issue 486) --- unpacked/jax/output/CommonHTML/autoload/mtable.js | 2 +- unpacked/jax/output/CommonHTML/jax.js | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/unpacked/jax/output/CommonHTML/autoload/mtable.js b/unpacked/jax/output/CommonHTML/autoload/mtable.js index dd1362e99..0e4e6ee64 100644 --- a/unpacked/jax/output/CommonHTML/autoload/mtable.js +++ b/unpacked/jax/output/CommonHTML/autoload/mtable.js @@ -488,7 +488,7 @@ MathJax.Hub.Register.StartupHook("CommonHTML Jax Ready",function () { var h = state.HH, d = state.DD; for (var i = 0, m = LABELS.length; i < m; i++) { if (!state.HD) {h = H[i]; d = D[i]} - if (LABELS[i]) { + if (LABELS[i] && this.data[i].data[0]) { labels.appendChild(LABELS[i]); var lbox = this.data[i].data[0].CHTML; T += h - lbox.h; diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index 6127638b0..363b406cf 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -2050,6 +2050,7 @@ W = Math.max(W,scale*(bbox[i].w + (bbox[i].L||0) + (bbox[i].R||0))); } } + if (!bbox[this.base]) bbox[this.base] = CHTML.BBOX.empty(); return W; }, // @@ -2208,7 +2209,8 @@ // var boxes = [], BBOX = CHTML.BBOX.empty(this.CHTML); for (var i = 0, m = this.data.length; i < m; i++) boxes[i] = this.CHTMLbboxFor(i); - var bbox = boxes[this.base], sbox = boxes[this.sub], Sbox = boxes[this.sup]; + var bbox = boxes[this.base] || CHTML.BBOX.empty(), + sbox = boxes[this.sub], Sbox = boxes[this.sup]; var sscale = (sub ? sbox.rscale : 1), Sscale = (sup ? Sbox.rscale : 1); BBOX.combine(bbox,0,0); // @@ -2369,7 +2371,7 @@ node = this.CHTMLdefaultNode(node,{ childNodes:["mjx-box","mjx-root"], forceChild:true, noBBox:true }); - var base = node.firstChild; + var base = node.firstChild || HTML.Element("mjx-box"); var sqrt = HTML.addElement(node,"mjx-box"); sqrt.appendChild(base); var bbox = this.CHTMLbboxFor(0), BBOX = CHTML.BBOX.empty(this.CHTML); var t = CHTML.TEX.rule_thickness, T = CHTML.TEX.surd_height, p = t, q, H; From 273a96a122c582af0074449a9dee4b06bbe4a8e3 Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Thu, 20 Aug 2015 11:16:22 -0400 Subject: [PATCH 159/186] Handle unitless linethickness in mfrac --- unpacked/jax/output/CommonHTML/jax.js | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index 363b406cf..ebe0dc035 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -1151,6 +1151,13 @@ if (unit === "mu") {return m / 18} // 18mu to an em for the scriptlevel return m*size; // relative to given size (or 1em as default) }, + thickness2em: function (length) { + var thick = CHTML.TEX.rule_thickness; + if (length === MML.LINETHICKNESS.MEDIUM) return thick; + if (length === MML.LINETHICKNESS.THIN) return .67*thick; + if (length === MML.LINETHICKNESS.THICK) return 1.67*thick; + return this.length2em(length,thick); + }, Em: function (m) { if (Math.abs(m) < .001) return "0"; @@ -2301,7 +2308,7 @@ // var nbox = this.CHTMLbboxFor(0), dbox = this.CHTMLbboxFor(1), BBOX = CHTML.BBOX.empty(this.CHTML), nscale = nbox.rscale, dscale = dbox.rscale; - values.linethickness = Math.max(0,CHTML.length2em(values.linethickness||"0",0)); + values.linethickness = Math.max(0,CHTML.thickness2em(values.linethickness||"0")); var mt = CHTML.TEX.min_rule_thickness/CHTML.em/BBOX.scale, a = CHTML.TEX.axis_height; var t = values.linethickness, p,q, u,v; if (values.bevelled) { From 43f59da6b9dcdf9302426fda4e8ab12df87891c7 Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Thu, 20 Aug 2015 11:21:34 -0400 Subject: [PATCH 160/186] Make 'dumb quotes' into 'smark quotes' --- unpacked/jax/output/CommonHTML/autoload/ms.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/unpacked/jax/output/CommonHTML/autoload/ms.js b/unpacked/jax/output/CommonHTML/autoload/ms.js index 72cb20452..3497dd636 100644 --- a/unpacked/jax/output/CommonHTML/autoload/ms.js +++ b/unpacked/jax/output/CommonHTML/autoload/ms.js @@ -44,8 +44,8 @@ MathJax.Hub.Register.StartupHook("CommonHTML Jax Ready",function () { // Get the quotes to use // var values = this.getValues("lquote","rquote"); - if (!this.hasValue("lquote")) values.lquote = "\u201C"; - if (!this.hasValue("rquote")) values.rquote = "\u201D"; + if (!this.hasValue("lquote") || values.lquote === '"') values.lquote = "\u201C"; + if (!this.hasValue("rquote") || values.rquote === '"') values.rquote = "\u201D"; // // Add the left quote, the child nodes, and the right quote // FIXME: should the quotation marks be in MML.VARIANT.NORMAL? From b5d6f312529509fc821f21f5d3b044376d56c583 Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Fri, 21 Aug 2015 07:46:01 -0400 Subject: [PATCH 161/186] Add missind 'node' to CHTMLstretchH() call. --- unpacked/jax/output/CommonHTML/jax.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index ebe0dc035..7cbcd6b39 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -1599,7 +1599,7 @@ return this.CHTML; }, CHTMLstretchH: function (node,w) { - this.Core().CHTMLstretchH(w); + this.Core().CHTMLstretchH(node,w); this.toCommonHTML(node,true); return this.CHTML; } From 94d236457c8432bb1d15e697d17f9ccc427b37b3 Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Sat, 22 Aug 2015 07:50:39 -0400 Subject: [PATCH 162/186] Fix vertical align percentage to be of initial image height (to be consistent with others) --- unpacked/jax/output/CommonHTML/autoload/mglyph.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/unpacked/jax/output/CommonHTML/autoload/mglyph.js b/unpacked/jax/output/CommonHTML/autoload/mglyph.js index 17c5cb643..d7e1dfb58 100644 --- a/unpacked/jax/output/CommonHTML/autoload/mglyph.js +++ b/unpacked/jax/output/CommonHTML/autoload/mglyph.js @@ -68,7 +68,7 @@ MathJax.Hub.Register.StartupHook("CommonHTML Jax Ready",function () { // bbox.w = bbox.r = img.offsetWidth/CHTML.em; bbox.h = bbox.t = img.offsetHeight/CHTML.em; if (values.valign) { - bbox.d = bbox.b = -CHTML.length2em(values.valign,bbox.h); + bbox.d = bbox.b = -CHTML.length2em(values.valign,h); img.style.verticalAlign = CHTML.Em(-bbox.d); bbox.h -= bbox.d; bbox.t = bbox.h; } From 787006163bb8c3651dda22aa7d0999aee460d3b5 Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Sat, 22 Aug 2015 07:50:49 -0400 Subject: [PATCH 163/186] Don't count frame width in frame spacing, and add padding to fake td for equal heights. --- unpacked/jax/output/CommonHTML/autoload/mtable.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/unpacked/jax/output/CommonHTML/autoload/mtable.js b/unpacked/jax/output/CommonHTML/autoload/mtable.js index 0e4e6ee64..fafa1b247 100644 --- a/unpacked/jax/output/CommonHTML/autoload/mtable.js +++ b/unpacked/jax/output/CommonHTML/autoload/mtable.js @@ -157,8 +157,8 @@ MathJax.Hub.Register.StartupHook("CommonHTML Jax Ready",function () { // if (values.frame === MML.LINES.NONE) delete values.frame; else values.fspace = true; if (values.frame) { - FSPACE[0] = Math.max(0,FSPACE[0]-1/CHTML.em); - FSPACE[1] = Math.max(0,FSPACE[1]-1/CHTML.em); + FSPACE[0] = Math.max(0,FSPACE[0]); + FSPACE[1] = Math.max(0,FSPACE[1]); } if (values.fspace) { CSPACE[J] = FSPACE[0]; RSPACE[M] = FSPACE[1]; @@ -235,7 +235,7 @@ MathJax.Hub.Register.StartupHook("CommonHTML Jax Ready",function () { // (setting style.height seems to work very strangely) // if (state.HD && j === 0) { - HTML.addElement(row[j].parentNode,"mjx-mtd",{}, + HTML.addElement(row[j].parentNode,"mjx-mtd",{style:{padding:T+" 0 "+B}}, [["mjx-box",{style:{ height:CHTML.Em(state.HH+state.DD), "vertical-align":CHTML.Em(-state.DD) From e7961f0dd2202a08e363a752b9c9b040cf9f60fc Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Sat, 22 Aug 2015 07:50:56 -0400 Subject: [PATCH 164/186] Make phantom background colors not disappear, make spaces be kept in char boxes, and handle mrow-enclosed atom in superscripts (still needs work, like TWO mrows, etc., and should be made part of mml jax). --- unpacked/jax/output/CommonHTML/jax.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index 7cbcd6b39..96b272758 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -93,7 +93,7 @@ "mjx-surd": {"vertical-align":"top"}, - "mjx-mphantom": {visibility:"hidden"}, + "mjx-mphantom *": {visibility:"hidden"}, "mjx-merror": { "background-color":"#FFFF88", @@ -116,7 +116,7 @@ "mjx-box": {display:"inline-block"}, "mjx-block": {display:"block"}, "mjx-span": {display:"span"}, - "mjx-char": {display:"block"}, + "mjx-char": {display:"block", "white-space":"pre"}, "mjx-itable": {display:"inline-table"}, "mjx-row": {display:"table-row"}, "mjx-cell": {display:"table-cell"}, @@ -2232,6 +2232,7 @@ delta = 1.3*bbox.ic + .05; // make faked IC be closer to expeted results } var bmml = this.data[this.base]; + if ((bmml.type === "mrow" || bmml.type === "mstyle") && bmml.data.length === 1) bmml = bmml.data[0]; if (bmml && (bmml.type === "mi" || bmml.type === "mo")) { if (bmml.data.join("").length === 1 && bbox.rscale === 1 && !bbox.sH && !bmml.Get("largeop")) {u = v = 0} From f5928643b8ef4b992e16c86f3904ec5b52c52f3e Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Sat, 22 Aug 2015 07:52:06 -0400 Subject: [PATCH 165/186] Make smartquotes into regular quotes for monospaced output --- unpacked/jax/output/CommonHTML/autoload/ms.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/unpacked/jax/output/CommonHTML/autoload/ms.js b/unpacked/jax/output/CommonHTML/autoload/ms.js index 3497dd636..ddd702230 100644 --- a/unpacked/jax/output/CommonHTML/autoload/ms.js +++ b/unpacked/jax/output/CommonHTML/autoload/ms.js @@ -43,9 +43,11 @@ MathJax.Hub.Register.StartupHook("CommonHTML Jax Ready",function () { // // Get the quotes to use // - var values = this.getValues("lquote","rquote"); + var values = this.getValues("lquote","rquote","mathvariant"); if (!this.hasValue("lquote") || values.lquote === '"') values.lquote = "\u201C"; if (!this.hasValue("rquote") || values.rquote === '"') values.rquote = "\u201D"; + if (values.lquote === "\u201C" && values.mathvariant === "monospace") values.lquote = '"'; + if (values.rquote === "\u201D" && values.mathvariant === "monospace") values.rquote = '"'; // // Add the left quote, the child nodes, and the right quote // FIXME: should the quotation marks be in MML.VARIANT.NORMAL? From 2cce7108266b13a1c5499401064e397d173f6089 Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Sat, 22 Aug 2015 07:52:25 -0400 Subject: [PATCH 166/186] Handle align attribute for munderover --- unpacked/jax/output/CommonHTML/jax.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index 96b272758..bfc1ca683 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -2162,7 +2162,7 @@ for (i = 0; i < m; i++) { scale = (i === this.base ? 1 : boxes[i].rscale); var w = scale*(boxes[i].w + (boxes[i].L||0) + (boxes[i].R||0)); - boxes[i].x += (W-w)/2; + boxes[i].x += {left:0, center:(W-w)/2, right:W-w}[values.align]; if (boxes[i].x < dx) dx = boxes[i].x; } for (i = 0; i < m; i++) { From fc04b1943d77287abe2eb47fecc3ac9e5f34a81f Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Sat, 22 Aug 2015 09:37:39 -0400 Subject: [PATCH 167/186] Fix typo in handling UTF-16 characters --- unpacked/jax/output/CommonHTML/jax.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index bfc1ca683..d1646567f 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -683,7 +683,7 @@ unicodeChar: function (n) { if (n < 0xFFFF) return String.fromCharCode(n); n -= 0x10000; - return String.fromCharCode((n>>10)+0xD800) + String.fromCharCode((N&0x3FF)+0xDC00); + return String.fromCharCode((n>>10)+0xD800) + String.fromCharCode((n&0x3FF)+0xDC00); }, // // Get the unicode number of a (possibly multi-character) string From 5f00f6facd730420500587953a76aa014a640a9f Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Sat, 22 Aug 2015 10:12:03 -0400 Subject: [PATCH 168/186] Rename mapchars to remapchars property for consistency (was wrong in mo.CHTMLcanStretch). --- unpacked/jax/output/CommonHTML/jax.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index d1646567f..660653c30 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -1712,7 +1712,7 @@ this.CHTMLaddChild(node,i,{childOptions:{ variant: values.mathvariant, remap: this.remap, - remapchars: values.mapchars + remapchars: values.remapchars }}); } if (values.text.length !== 1) delete this.CHTML.skew; @@ -1752,9 +1752,9 @@ this.CoreText(parent.data[parent.base]).length === 1) { var over = parent.data[parent.over], under = parent.data[parent.under]; if (over && this === over.CoreMO() && parent.Get("accent")) { - data.mapchars = CHTML.FONTDATA.REMAPACCENT + data.remapchars = CHTML.FONTDATA.REMAPACCENT; } else if (under && this === under.CoreMO() && parent.Get("accentunder")) { - data.mapchars = CHTML.FONTDATA.REMAPACCENTUNDER + data.remapchars = CHTML.FONTDATA.REMAPACCENTUNDER; } } }, @@ -1763,7 +1763,7 @@ isScript = (parent && parent.isa(MML.msubsup) && this !== parent.data[parent.base]); if (data.largeop) data.mathvariant = (data.displaystyle ? "-largeOp" : "-smallOp"); if (isScript) { - data.mapchars = this.remapChars; + data.remapchars = this.remapChars; if (data.text.match(/['`"\u00B4\u2032-\u2037\u2057]/)) data.mathvariant = "-TeX-variant"; // ### FIXME: handle other fonts } From 966444bc3105366eec2d8ebbc98d65426b9a8dff Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Sat, 22 Aug 2015 12:13:15 -0400 Subject: [PATCH 169/186] Fix zoom scaling, and fix handling over overlaps on top and bottom --- unpacked/jax/output/CommonHTML/jax.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index 660653c30..7924bf508 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -497,7 +497,7 @@ getMetrics: function(jax) { var data = jax.CHTML; this.jax = jax; - this.em = data.em; + this.em = data.em; this.outerEm = data.outerEm; this.scale = data.scale; this.cwidth = data.cwidth; @@ -574,14 +574,14 @@ // Re-render at larger size // this.getMetrics(jax); - var node = HTML.addElement(span,"mjx-chtml"); + var node = HTML.addElement(span,"mjx-chtml",{style:{"font-size":Math.floor(CHTML.scale*100)+"%"}}); this.idPostfix = "-zoom"; jax.root.toCommonHTML(node); this.idPostfix = ""; // // Adjust margins to prevent overlaps at the edges // var style = node.style, bbox = jax.root.CHTML; - if (bbox.t > bbox.h) style.marginTop = CHTML.Em(bbox.t-Math.max(bbox.h,CHTML.FONTDATA.lineH)); - if (bbox.b > bbox.d) style.marginBottom = CHTML.Em(bbox.b-Math.max(bbox.d,CHTML.FONTDATA.lineD)); + if (bbox.t > bbox.h) style.marginTop = CHTML.Em(bbox.t-bbox.h); + if (bbox.b > bbox.d) style.marginBottom = CHTML.Em(bbox.b-bbox.d); if (bbox.l < 0) style.paddingLeft = CHTML.Em(-bbox.l); if (bbox.r > bbox.w) style.marginRight = CHTML.Em(bbox.r-bbox.w); // From 6e1301e6817af1ff1ce98a608eec76376f7e1f70 Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Mon, 24 Aug 2015 08:23:20 -0400 Subject: [PATCH 170/186] Update CHTML to get the proper node for handling horizontal stretchy characters. --- unpacked/jax/element/mml/jax.js | 4 +++- unpacked/jax/output/CommonHTML/jax.js | 26 ++++++++++++++++++-------- 2 files changed, 21 insertions(+), 9 deletions(-) diff --git a/unpacked/jax/element/mml/jax.js b/unpacked/jax/element/mml/jax.js index 33041e3b4..980d2baf8 100644 --- a/unpacked/jax/element/mml/jax.js +++ b/unpacked/jax/element/mml/jax.js @@ -405,7 +405,9 @@ MathJax.ElementJax.mml.Augment({ if (child == null) return; for (var i = 0, m = this.data.length; i < m; i++) if (child === this.data[i]) return i; }, - CoreIndex: function () {return this.childIndex(this.Core())}, + CoreIndex: function () { + return (this.inferRow ? this.data[0]||this : this).childIndex(this.Core()); + }, hasNewline: function () { if (this.isEmbellished()) {return this.CoreMO().hasNewline()} if (this.isToken || this.linebreakContainer) {return false} diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index 7924bf508..4e04e58d5 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -1333,6 +1333,16 @@ } else if (options.forceChild) {cnode = HTML.addElement(node,"mjx-box")} return cnode; }, + + CHTMLchildNode: function (node,i) { + node = node.childNodes[i]; + if (node.nodeName.toLowerCase() === "a") node = node.firstChild; + return node; + }, + CHTMLcoreNode: function (node) { + return this.CHTMLchildNode(node,this.CoreIndex()); + }, + CHTMLstretchChildV: function (i,H,D) { var data = this.data[i]; if (data) { @@ -1355,7 +1365,7 @@ var bbox = this.CHTML, dbox = data.CHTML; if (dbox.stretch || (dbox.stretch == null && data.CHTMLcanStretch("Horizontal",W))) { var w = dbox.w; - dbox = data.CHTMLstretchH(node,W); + dbox = data.CHTMLstretchH(this.CHTMLchildNode(node,i),W); bbox.w += dbox.w - w; if (bbox.w > bbox.r) bbox.r = bbox.w; if (dbox.h > bbox.h) bbox.h = dbox.h; @@ -1380,9 +1390,12 @@ return this.CHTML; }, CHTMLstretchH: function (node,w) { - this.CHTML.updateFrom(this.Core().CHTMLstretchH(node,w)); + this.CHTML.updateFrom(this.CHTMLstretchCoreH(node,w)); return this.CHTML; }, + CHTMLstretchCoreH: function (node,w) { + return this.Core().CHTMLstretchH(this.CHTMLcoreNode(node),w); + }, CHTMLcreateNode: function (node) { if (!this.CHTML) this.CHTML = {}; @@ -1599,7 +1612,7 @@ return this.CHTML; }, CHTMLstretchH: function (node,w) { - this.Core().CHTMLstretchH(node,w); + this.CHTMLstretchCoreH(node,w); this.toCommonHTML(node,true); return this.CHTML; } @@ -2477,10 +2490,7 @@ return this.CHTML; }, CHTMLstretchH: function (node,w) { - var i = this.CoreIndex() - node = node.childNodes[i]; - if (node.nodeName.toLowerCase() === "a") node = node.firstChild; - this.CHTMLstretchChildH(i,w,node); + this.CHTMLstretchChildH(this.CoreIndex(),w,node); return this.CHTML; } }); @@ -2516,7 +2526,7 @@ return this.CHTML; }, CHTMLstretchH: function (node,w) { - this.CHTML.updateFrom(this.Core().CHTMLstretchH(node.firstChild,w)); + this.CHTML.updateFrom(this.CHTMLstretchCoreH(node,w)); this.toCommonHTML(node,true); return this.CHTML; } From d400e00812b90b969015d090b569298f29c3b2a5 Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Mon, 24 Aug 2015 10:08:24 -0400 Subject: [PATCH 171/186] Handle math italic with mtextFontInherit, record unkown character axis properly, and get correct scaling for unknown characters. --- unpacked/jax/output/CommonHTML/jax.js | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index 4e04e58d5..058f99ee8 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -829,8 +829,9 @@ // WARNING: causes reflow of the page! // getHDW: function (c,name,styles) { - var test1 = HTML.addElement(CHTML.CHTMLnode,"mjx-chartest",{className:name,style:styles},[["mjx-char",{},[c]]]); - var test2 = HTML.addElement(CHTML.CHTMLnode,"mjx-chartest",{className:name,style:styles},[["mjx-char",{},[c,["mjx-box"]]]]); + var test1 = HTML.addElement(CHTML.CHTMLnode,"mjx-chartest",{className:name},[["mjx-char",{style:styles},[c]]]); + var test2 = HTML.addElement(CHTML.CHTMLnode,"mjx-chartest",{className:name},[["mjx-char",{style:styles},[c,["mjx-box"]]]]); + test1.firstChild.style.fontSize = test2.firstChild.style.fontSize = ""; var em = 5*CHTML.em; var d = (test2.offsetHeight-1000)/em; var w = test1.offsetWidth/em, h = test1.offsetHeight/em - d; @@ -901,7 +902,10 @@ unknown: function (item,node,bbox,state) { this.char(item,node,bbox,state,0); var C = item.font[item.n]; - if (C[5].a) {state.a = C[5].a; if (state.a > bbox.a) bbox.a = state.a} + if (C[5].a) { + state.a = C[5].a; + if (bbox.a == null || state.a > bbox.a) bbox.a = state.a; + } node = this.flushText(node,state,item.style); node.style.width = CHTML.Em(C[2]); }, @@ -1881,7 +1885,7 @@ style:{"font-size":CHTML.Percent(scale)}}; var name = this.Get("mathvariant"); if (name.match(/bold/)) variant.style["font-weight"] = "bold"; - if (name.match(/italic/)) variant.style["font-style"] = "italic"; + if (name.match(/italic|-tex-mathit/)) variant.style["font-style"] = "italic"; if (name === "monospace") variant.className += " MJXc-monospace-font"; if (name === "double-struck") variant.className += " MJXc-double-struck-font"; if (name.match(/fraktur/)) variant.className += " MJXc-fraktur-font"; From 3100f10c4a5ebf25af5cee51685285d9e4312e39 Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Mon, 24 Aug 2015 10:45:47 -0400 Subject: [PATCH 172/186] Don't count spacing (in paddingLeft and Right) as part of the width of an element --- unpacked/jax/output/CommonHTML/jax.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index 058f99ee8..08b79e3d0 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -1738,8 +1738,8 @@ } this.CHTML.clean(); - this.CHTMLhandleSpace(node); this.CHTMLhandleBBox(node); + this.CHTMLhandleSpace(node); this.CHTMLhandleColor(node); return node; From 5296f1111f448736596f6a05b26caa0e77674e2f Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Mon, 24 Aug 2015 10:59:07 -0400 Subject: [PATCH 173/186] Make mtextFontInherit take the math scaling factor into account (issue 826). --- unpacked/jax/output/CommonHTML/jax.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index 08b79e3d0..db89cd099 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -1880,7 +1880,7 @@ MML.mtext.Augment({ CHTMLgetVariant: function () { if (CHTML.config.mtextFontInherit || this.Parent().type === "merror") { - var scale = 1/CHTML.scale; + var scale = (CHTML.config.scale/100)/CHTML.scale; var variant = {cache:{}, fonts:[], className:"MJXc-font-inherit", rscale:scale, style:{"font-size":CHTML.Percent(scale)}}; var name = this.Get("mathvariant"); From e59f6d648401bf1441d9a75751914b6622b3c5c0 Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Mon, 24 Aug 2015 13:11:47 -0400 Subject: [PATCH 174/186] Make sure parents of percentage-width elements have percentage widths. --- unpacked/jax/output/CommonHTML/jax.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index db89cd099..09dd254d2 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -1333,6 +1333,7 @@ bbox.append(cbox); if (cbox.ic) {bbox.ic = cbox.ic} else {delete bbox.ic} if (cbox.skew) bbox.skew = cbox.skew; + if (cbox.pwidth) bbox.pwidth = cbox.pwidth; } } else if (options.forceChild) {cnode = HTML.addElement(node,"mjx-box")} return cnode; @@ -1476,6 +1477,9 @@ BBOX.pwidth = this.data[0].CHTML.pwidth; BBOX.mwidth = this.data[0].CHTML.mwidth; style.width = "100%"; + } else if (BBOX.pwidth) { + BBOX.mwidth = BBOX.w; + style.width = "100%"; } if (!this.style) return; // ### FIXME: adjust for width, height, vertical-align? From bf330af3f746e026fd912c50bc1551d4811e1e76 Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Mon, 24 Aug 2015 13:12:47 -0400 Subject: [PATCH 175/186] Make sure tables with labels are properly aligned (in case they are in an mrow with other stuff, though they shouldn't be). --- unpacked/jax/output/CommonHTML/autoload/mtable.js | 1 + 1 file changed, 1 insertion(+) diff --git a/unpacked/jax/output/CommonHTML/autoload/mtable.js b/unpacked/jax/output/CommonHTML/autoload/mtable.js index fafa1b247..6bf05c094 100644 --- a/unpacked/jax/output/CommonHTML/autoload/mtable.js +++ b/unpacked/jax/output/CommonHTML/autoload/mtable.js @@ -459,6 +459,7 @@ MathJax.Hub.Register.StartupHook("CommonHTML Jax Ready",function () { var labels = HTML.Element("mjx-stack"); table.style.display = "inline-table"; if (!table.style.width) table.style.width = "auto"; labels.style.verticalAlign = "top"; + table.style.verticalAlign = CHTML.Em(state.T-state.B-state.H[0]); node.style.verticalAlign = ""; if (shift) { if (indent.indentalign === MML.INDENTALIGN.CENTER) { From d139834179dbd71ae18c65d493060908d4669b61 Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Mon, 24 Aug 2015 13:56:58 -0400 Subject: [PATCH 176/186] Make sure mspace and mfrac set their scaling factors. --- unpacked/jax/output/CommonHTML/jax.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index 09dd254d2..291d4eaa1 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -1928,6 +1928,7 @@ toCommonHTML: function (node) { node = this.CHTMLcreateNode(node); this.CHTMLhandleStyle(node); + this.CHTMLhandleScale(node); var values = this.getValues("height","depth","width"); var w = CHTML.length2em(values.width), h = CHTML.length2em(values.height), @@ -2453,6 +2454,7 @@ toCommonHTML: function (node) { node = this.CHTMLcreateNode(node); this.CHTMLhandleStyle(node); + this.CHTMLhandleScale(node); // // Make row of open, data, sep, ... data, close // From b80e69967b95c4e407ed7af19f99334d894e5296 Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Mon, 24 Aug 2015 18:00:28 -0400 Subject: [PATCH 177/186] Add scaling factor to length2em computations (since containers set font-size, the absolute dimensions need to be adjusted to compensate). Make an mbase version to make that easier. --- .../output/CommonHTML/autoload/menclose.js | 4 +- .../jax/output/CommonHTML/autoload/mglyph.js | 6 +- .../CommonHTML/autoload/mmultiscripts.js | 4 +- .../jax/output/CommonHTML/autoload/mtable.js | 24 ++--- .../output/CommonHTML/autoload/multiline.js | 8 +- unpacked/jax/output/CommonHTML/jax.js | 88 ++++++++++--------- 6 files changed, 70 insertions(+), 64 deletions(-) diff --git a/unpacked/jax/output/CommonHTML/autoload/menclose.js b/unpacked/jax/output/CommonHTML/autoload/menclose.js index d97c92bd8..2a5291b93 100644 --- a/unpacked/jax/output/CommonHTML/autoload/menclose.js +++ b/unpacked/jax/output/CommonHTML/autoload/menclose.js @@ -46,8 +46,8 @@ MathJax.Hub.Register.StartupHook("CommonHTML Jax Ready",function () { // // Get the padding and rule thickness // - var p = CHTML.length2em(values.padding,1/CHTML.em); // padding for enclosure - var t = CHTML.length2em(values.thickness,1/CHTML.em); // thickness of lines + var p = this.CHTMLlength2em(values.padding,1/CHTML.em); // padding for enclosure + var t = this.CHTMLlength2em(values.thickness,1/CHTML.em); // thickness of lines t = Math.max(1,Math.round(t*CHTML.em))/CHTML.em; var SOLID = CHTML.Px(t)+" solid"; var bb = {L:p, R:p, T:p, B:p, H:cbox.h+p, D:cbox.d+p, W:cbox.w+2*p}; diff --git a/unpacked/jax/output/CommonHTML/autoload/mglyph.js b/unpacked/jax/output/CommonHTML/autoload/mglyph.js index d7e1dfb58..cf4c8cea0 100644 --- a/unpacked/jax/output/CommonHTML/autoload/mglyph.js +++ b/unpacked/jax/output/CommonHTML/autoload/mglyph.js @@ -61,14 +61,14 @@ MathJax.Hub.Register.StartupHook("CommonHTML Jax Ready",function () { isMathJax:true, src:values.src, alt:values.alt, title:values.alt }); var w = bbox.img.img.width/CHTML.em, h = bbox.img.img.height/CHTML.em; - if (values.width !== "") img.style.width = CHTML.Em(CHTML.length2em(values.width,w)); - if (values.height !== "") img.style.height = CHTML.Em(CHTML.length2em(values.height,h)); + if (values.width !== "") img.style.width = CHTML.Em(this.CHTMLlength2em(values.width,w)); + if (values.height !== "") img.style.height = CHTML.Em(this.CHTMLlength2em(values.height,h)); // // Warning: causes page reflows // bbox.w = bbox.r = img.offsetWidth/CHTML.em; bbox.h = bbox.t = img.offsetHeight/CHTML.em; if (values.valign) { - bbox.d = bbox.b = -CHTML.length2em(values.valign,h); + bbox.d = bbox.b = -this.CHTMLlength2em(values.valign,h); img.style.verticalAlign = CHTML.Em(-bbox.d); bbox.h -= bbox.d; bbox.t = bbox.h; } diff --git a/unpacked/jax/output/CommonHTML/autoload/mmultiscripts.js b/unpacked/jax/output/CommonHTML/autoload/mmultiscripts.js index fcfda3b6f..bac06bb83 100644 --- a/unpacked/jax/output/CommonHTML/autoload/mmultiscripts.js +++ b/unpacked/jax/output/CommonHTML/autoload/mmultiscripts.js @@ -80,8 +80,8 @@ MathJax.Hub.Register.StartupHook("CommonHTML Jax Ready",function () { !bmml.Get("largeop")) {u = v = 0} } values = this.getValues("displaystyle","subscriptshift","superscriptshift","texprimestyle"); - values.subscriptshift = (values.subscriptshift === "" ? 0 : CHTML.length2em(values.subscriptshift)); - values.superscriptshift = (values.superscriptshift === "" ? 0 : CHTML.length2em(values.superscriptshift)); + values.subscriptshift = (values.subscriptshift === "" ? 0 : this.CHTMLlength2em(values.subscriptshift)); + values.superscriptshift = (values.superscriptshift === "" ? 0 : this.CHTMLlength2em(values.superscriptshift)); var dx = (presub ? s+pbox.w : presup ? s+Pbox.w-delta : 0); this.CHTML.combine(bbox,dx,0); var x = this.CHTML.w; diff --git a/unpacked/jax/output/CommonHTML/autoload/mtable.js b/unpacked/jax/output/CommonHTML/autoload/mtable.js index 6bf05c094..c18c70b2f 100644 --- a/unpacked/jax/output/CommonHTML/autoload/mtable.js +++ b/unpacked/jax/output/CommonHTML/autoload/mtable.js @@ -122,8 +122,8 @@ MathJax.Hub.Register.StartupHook("CommonHTML Jax Ready",function () { RLINES = SPLIT(values.rowlines), CWIDTH = SPLIT(values.columnwidth), RCALIGN = [], i, m, J = state.J, M = state.rows.length-1; - for (i = 0, m = CSPACE.length; i < m; i++) CSPACE[i] = CHTML.length2em(CSPACE[i]); - for (i = 0, m = RSPACE.length; i < m; i++) RSPACE[i] = CHTML.length2em(RSPACE[i]); + for (i = 0, m = CSPACE.length; i < m; i++) CSPACE[i] = this.CHTMLlength2em(CSPACE[i]); + for (i = 0, m = RSPACE.length; i < m; i++) RSPACE[i] = this.CHTMLlength2em(RSPACE[i]); while (CSPACE.length < J) CSPACE.push(CSPACE[CSPACE.length-1]); while (CALIGN.length <= J) CALIGN.push(CALIGN[CALIGN.length-1]); while (CLINES.length < J) CLINES.push(CLINES[CLINES.length-1]); @@ -148,8 +148,8 @@ MathJax.Hub.Register.StartupHook("CommonHTML Jax Ready",function () { // var FSPACE = SPLIT(values.framespacing); if (FSPACE.length != 2) FSPACE = SPLIT(this.defaults.framespacing); - FSPACE[0] = Math.max(0,CHTML.length2em(FSPACE[0])); - FSPACE[1] = Math.max(0,CHTML.length2em(FSPACE[1])); + FSPACE[0] = Math.max(0,this.CHTMLlength2em(FSPACE[0])); + FSPACE[1] = Math.max(0,this.CHTMLlength2em(FSPACE[1])); if (values.columnlines.replace(/none/g,"").replace(/ /g,"") !== "" || values.rowlines.replace(/none/g,"").replace(/ /g,"") !== "") values.fspace = true; // @@ -306,7 +306,7 @@ MathJax.Hub.Register.StartupHook("CommonHTML Jax Ready",function () { // Handle equal columns by adjusting the CWIDTH array // if (values.width !== "auto" && !relWidth) { - WW = Math.max(0,CHTML.length2em(values.width,state.R)); + WW = Math.max(0,this.CHTMLlength2em(values.width,state.R)); setWidths = true; } if (values.equalcolumns) { @@ -344,7 +344,7 @@ MathJax.Hub.Register.StartupHook("CommonHTML Jax Ready",function () { if (CWIDTH[j] === "auto") auto.push(j) else if (CWIDTH[j] === "fit") fit.push(j) else if (CWIDTH[j].match(/%$/)) percent.push(j) - else W[j] = CHTML.length2em(CWIDTH[j],W[j]); + else W[j] = this.CHTMLlength2em(CWIDTH[j],W[j]); TW += W[j] + CSPACE[j]; if (row[j]) row[j].style.width = CHTML.Em(W[j]); } @@ -373,7 +373,7 @@ MathJax.Hub.Register.StartupHook("CommonHTML Jax Ready",function () { var extra = 0; for (i = 0, m = percent.length; i < m; i++) { j = percent[i]; - w = Math.max(W[j],CHTML.length2em(CWIDTH[j],WW)); + w = Math.max(W[j],this.CHTMLlength2em(CWIDTH[j],WW)); extra += w-W[j]; W[j] = w; row[j].style.width = CHTML.Em(w); } @@ -434,10 +434,10 @@ MathJax.Hub.Register.StartupHook("CommonHTML Jax Ready",function () { if (indent.indentalign === MML.INDENTALIGN.AUTO) indent.indentalign = CONFIG.displayAlign; if (indent.indentshiftfirst !== MML.INDENTSHIFT.INDENTSHIFT) indent.indentshift = indent.indentshiftfirst; if (indent.indentshift === "auto") indent.indentshift = "0"; - var shift = CHTML.length2em(indent.indentshift,CHTML.cwidth); - var labelspace = CHTML.length2em(values.minlabelspacing,this.defaults.minlabelspacing); + var shift = this.CHTMLlength2em(indent.indentshift,CHTML.cwidth); + var labelspace = this.CHTMLlength2em(values.minlabelspacing,this.defaults.minlabelspacing); var labelW = labelspace + state.W[LABEL], labelshift = 0, tw = state.R; - var dIndent = CHTML.length2em(CONFIG.displayIndent,CHTML.cwidth); + var dIndent = this.CHTMLlength2em(CONFIG.displayIndent,CHTML.cwidth); var s = (state.CALIGN[LABEL] === MML.INDENTALIGN.RIGHT ? -1 : 1); if (indent.indentalign === MML.INDENTALIGN.CENTER) { tw += 2 * (labelW - s*(shift + dIndent)); @@ -574,11 +574,11 @@ MathJax.Hub.Register.StartupHook("CommonHTML Jax Ready",function () { if (BBOX.stretch === "V") { var HD = BBOX.h + BBOX.d; if (HD) { - var r = CHTML.length2em(min,HD)/HD; + var r = this.CHTMLlength2em(min,HD)/HD; if (r > 1) {BBOX.h *= r; BBOX.d *= r} } } else { - BBOX.w = Math.max(BBOX.w,CHTML.length2em(min,BBOX.w)); + BBOX.w = Math.max(BBOX.w,this.CHTMLlength2em(min,BBOX.w)); } } } diff --git a/unpacked/jax/output/CommonHTML/autoload/multiline.js b/unpacked/jax/output/CommonHTML/autoload/multiline.js index 2c7be1542..a07b54d4a 100644 --- a/unpacked/jax/output/CommonHTML/autoload/multiline.js +++ b/unpacked/jax/output/CommonHTML/autoload/multiline.js @@ -84,7 +84,7 @@ MathJax.Hub.Register.StartupHook("CommonHTML Jax Ready",function () { ); if (VALUES.linebreakstyle === MML.LINEBREAKSTYLE.INFIXLINEBREAKSTYLE) VALUES.linebreakstyle = this.Get("infixlinebreakstyle"); - VALUES.lineleading = CHTML.length2em(VALUES.lineleading,0.5); + VALUES.lineleading = this.CHTMLlength2em(VALUES.lineleading,0.5); // // Break the math at its best line breaks @@ -242,9 +242,9 @@ MathJax.Hub.Register.StartupHook("CommonHTML Jax Ready",function () { else shift = prev.indentshift || def.indentshift; if (shift === MML.INDENTSHIFT.INDENTSHIFT) shift = prev.indentshift || def.indentshift; if (shift === "auto" || shift === "") shift = "0"; - shift = CHTML.length2em(shift,CHTML.cwidth); + shift = this.CHTMLlength2em(shift,CHTML.cwidth); if (state.isTop && CONFIG.displayIndent !== "0") { - var indent = CHTML.length2em(CONFIG.displayIndent,CHTML.cwidth); + var indent = this.CHTMLlength2em(CONFIG.displayIndent,CHTML.cwidth); shift += (align === MML.INDENTALIGN.RIGHT ? -indent : indent); } return (align === MML.INDENTALIGN.RIGHT && !noadjust ? -shift : shift); @@ -674,7 +674,7 @@ MathJax.Hub.Register.StartupHook("CommonHTML Jax Ready",function () { // if (penalty >= info.penalty) return false; info.penalty = penalty; info.values = values; info.W = W; info.w = w; - values.lineleading = CHTML.length2em(values.lineleading,state.VALUES.lineleading); + values.lineleading = this.CHTMLlength2em(values.lineleading,state.VALUES.lineleading); values.id = this.CHTMLnodeID; return true; } diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index 291d4eaa1..19530be7d 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -393,7 +393,7 @@ jax.CHTML.scale = scale/100; jax.CHTML.fontSize = scale+"%"; jax.CHTML.outerEm = em; jax.CHTML.em = this.em = em * scale/100; jax.CHTML.ex = ex; jax.CHTML.cwidth = cwidth/this.em; - jax.CHTML.lineWidth = (linebreak ? this.length2em(width,maxwidth/this.em) : maxwidth); + jax.CHTML.lineWidth = (linebreak ? this.length2em(width,maxwidth/this.em,1) : maxwidth); } // // Remove the test spans used for determining scales and linebreak widths @@ -1133,34 +1133,36 @@ // // ### FIXME: Handle mu's // - length2em: function (length,size) { - if (typeof(length) !== "string") {length = length.toString()} - if (length === "") {return ""} - if (length === MML.SIZE.NORMAL) {return 1} - if (length === MML.SIZE.BIG) {return 2} - if (length === MML.SIZE.SMALL) {return .71} - if (this.MATHSPACE[length]) {return this.MATHSPACE[length]} + length2em: function (length,size,scale) { + if (typeof(length) !== "string") length = length.toString(); + if (length === "") return ""; + if (length === MML.SIZE.NORMAL) return 1; + if (length === MML.SIZE.BIG) return 2; + if (length === MML.SIZE.SMALL) return .71; + if (this.MATHSPACE[length]) return this.MATHSPACE[length]; var match = length.match(/^\s*([-+]?(?:\.\d+|\d+(?:\.\d*)?))?(pt|em|ex|mu|px|pc|in|mm|cm|%)?/); var m = parseFloat(match[1]||"1"), unit = match[2]; - if (size == null) {size = 1} - if (unit === "em") {return m} - if (unit === "ex") {return m * this.TEX.x_height} - if (unit === "%") {return m / 100 * size} - if (unit === "px") {return m / this.em} - if (unit === "pt") {return m / 10} // 10 pt to an em - if (unit === "pc") {return m * 1.2} // 12 pt to a pc - if (unit === "in") {return m * this.pxPerInch / this.em} - if (unit === "cm") {return m * this.pxPerInch / this.em / 2.54} // 2.54 cm to an inch - if (unit === "mm") {return m * this.pxPerInch / this.em / 25.4} // 10 mm to a cm - if (unit === "mu") {return m / 18} // 18mu to an em for the scriptlevel + if (size == null) size = 1; if (!scale) scale = 1; + scale = 1 /this.em / scale; + if (unit === "em") return m; + if (unit === "ex") return m * this.TEX.x_height; + if (unit === "%") return m / 100 * size; + if (unit === "px") return m * scale; + if (unit === "pt") return m / 10; // 10 pt to an em + if (unit === "pc") return m * 1.2; // 12 pt to a pc + scale *= this.pxPerInch; + if (unit === "in") return m * scale; + if (unit === "cm") return m * scale / 2.54; // 2.54 cm to an inch + if (unit === "mm") return m * scale / 25.4; // 10 mm to a cm + if (unit === "mu") return m / 18; // 18mu to an em for the scriptlevel return m*size; // relative to given size (or 1em as default) }, - thickness2em: function (length) { - var thick = CHTML.TEX.rule_thickness; + thickness2em: function (length,scale) { + var thick = CHTML.TEX.rule_thickness/(scale||1); if (length === MML.LINETHICKNESS.MEDIUM) return thick; if (length === MML.LINETHICKNESS.THIN) return .67*thick; if (length === MML.LINETHICKNESS.THICK) return 1.67*thick; - return this.length2em(length,thick); + return this.length2em(length,thick,scale); }, Em: function (m) { @@ -1255,7 +1257,7 @@ if (cbox.D) this.D = cbox.D; else delete this.D; }, adjust: function (m,x,X,M) { - this[x] += CHTML.length2em(m); + this[x] += CHTML.length2em(m,1,this.scale); if (M == null) { if (this[x] > this[X]) this[X] = this[x]; } else { @@ -1415,6 +1417,10 @@ return document.getElementById((this.id||"MJXc-Node-"+this.CHTMLnodeID)+CHTML.idPostfix); }, + CHTMLlength2em: function (length,size) { + return CHTML.length2em(length,size,this.CHTML.scale); + }, + CHTMLhandleAttributes: function (node) { if (this["class"]) node.className = this["class"]; // @@ -1445,13 +1451,13 @@ if (values.scriptlevel !== 0) { if (values.scriptlevel > 2) values.scriptlevel = 2; scale = Math.pow(this.Get("scriptsizemultiplier"),values.scriptlevel); - values.scriptminsize = CHTML.length2em(this.Get("scriptminsize")); + values.scriptminsize = CHTML.length2em(this.Get("scriptminsize"),.8,1); if (scale < values.scriptminsize) scale = values.scriptminsize; } if (this.removedStyles && this.removedStyles.fontSize && !values.fontsize) values.fontsize = this.removedStyles.fontSize; if (values.fontsize && !this.mathsize) values.mathsize = values.fontsize; - if (values.mathsize !== 1) scale *= CHTML.length2em(values.mathsize); + if (values.mathsize !== 1) scale *= CHTML.length2em(values.mathsize,1,1); this.CHTML.scale = scale; pscale = this.CHTML.rscale = scale/pscale; if (Math.abs(pscale-1) < .001) pscale = 1; if (node && pscale !== 1) node.style.fontSize = CHTML.Percent(pscale); @@ -1500,7 +1506,7 @@ if (!this.useMMLspacing) { var space = this.texSpacing(); if (space !== "") { - this.CHTML.L = CHTML.length2em(space); + this.CHTML.L = this.CHTMLlength2em(space); node.className += " "+CHTML.SPACECLASS[space]; } } @@ -1659,9 +1665,9 @@ if (values.indentalign === MML.INDENTALIGN.AUTO) values.indentalign = CONFIG.displayAlign; if (values.indentshiftfirst !== MML.INDENTSHIFT.INDENTSHIFT) values.indentshift = values.indentshiftfirst; if (values.indentshift === "auto") values.indentshift = "0"; - var shift = CHTML.length2em(values.indentshift,CHTML.cwidth); + var shift = this.CHTMLlength2em(values.indentshift,CHTML.cwidth); if (CONFIG.displayIndent !== "0") { - var indent = CHTML.length2em(CONFIG.displayIndent,CHTML.cwidth); + var indent = this.CHTMLlength2em(CONFIG.displayIndent,CHTML.cwidth); shift += (values.indentalign === MML.INDENTALIGN.RIGHT ? -indent : indent); } var styles = node.parentNode.parentNode.style; @@ -1751,8 +1757,8 @@ CHTMLhandleSpace: function (node) { if (this.useMMLspacing) { var values = this.getValues("scriptlevel","lspace","rspace"); - values.lspace = Math.max(0,CHTML.length2em(values.lspace)); - values.rspace = Math.max(0,CHTML.length2em(values.rspace)); + values.lspace = Math.max(0,this.CHTMLlength2em(values.lspace)); + values.rspace = Math.max(0,this.CHTMLlength2em(values.rspace)); if (values.scriptlevel > 0) { if (!this.hasValue("lspace")) values.lspace = .15; if (!this.hasValue("rspace")) values.rspace = .15; @@ -1832,8 +1838,8 @@ // var H, a = CHTML.TEX.axis_height; if (values.symmetric) {H = 2*Math.max(h-a,d+a)} else {H = h + d} - values.maxsize = CHTML.length2em(values.maxsize,bbox.h+bbox.d); - values.minsize = CHTML.length2em(values.minsize,bbox.h+bbox.d); + values.maxsize = this.CHTMLlength2em(values.maxsize,bbox.h+bbox.d); + values.minsize = this.CHTMLlength2em(values.minsize,bbox.h+bbox.d); H = Math.max(values.minsize,Math.min(values.maxsize,H)); // // If we are not already stretched to this height @@ -1866,8 +1872,8 @@ if ((values.fontweight === "bold" || (this.removedStyles||{}).fontWeight === "bold" || parseInt(values.fontweight) >= 600) && !this.Get("mathvariant",true)) values.mathvariant = MML.VARIANT.BOLD; - values.maxsize = CHTML.length2em(values.maxsize,bbox.w); - values.minsize = CHTML.length2em(values.minsize,bbox.w); + values.maxsize = this.CHTMLlength2em(values.maxsize,bbox.w); + values.minsize = this.CHTMLlength2em(values.minsize,bbox.w); W = Math.max(values.minsize,Math.min(values.maxsize,W)); if (W !== bbox.sW) { while (node.firstChild) node.removeChild(node.firstChild); @@ -1930,9 +1936,9 @@ this.CHTMLhandleStyle(node); this.CHTMLhandleScale(node); var values = this.getValues("height","depth","width"); - var w = CHTML.length2em(values.width), - h = CHTML.length2em(values.height), - d = CHTML.length2em(values.depth); + var w = this.CHTMLlength2em(values.width), + h = this.CHTMLlength2em(values.height), + d = this.CHTMLlength2em(values.depth); var bbox = this.CHTML; bbox.w = bbox.r = w; bbox.h = bbox.t = h; bbox.d = bbox.b = d; bbox.l = 0; if (w < 0) {node.style.marginRight = CHTML.Em(w); w = 0} @@ -1995,7 +2001,7 @@ length = String(length); var match = length.match(/width|height|depth/); var size = (match ? this.CHTML[match[0].charAt(0)] : (d ? this.CHTML[d] : 0)); - var dimen = (CHTML.length2em(length,size)||0); + var dimen = (this.CHTMLlength2em(length,size)||0); if (length.match(/^[-+]/) && D != null) dimen += D; if (m != null) dimen = Math.max(m,dimen); return dimen; @@ -2259,8 +2265,8 @@ if (bmml.data.join("").length === 1 && bbox.rscale === 1 && !bbox.sH && !bmml.Get("largeop")) {u = v = 0} } - values.subscriptshift = (values.subscriptshift === "" ? 0 : CHTML.length2em(values.subscriptshift)); - values.superscriptshift = (values.superscriptshift === "" ? 0 : CHTML.length2em(values.superscriptshift)); + values.subscriptshift = (values.subscriptshift === "" ? 0 : this.CHTMLlength2em(values.subscriptshift)); + values.superscriptshift = (values.superscriptshift === "" ? 0 : this.CHTMLlength2em(values.superscriptshift)); // // Add the super- and subscripts // @@ -2331,7 +2337,7 @@ // var nbox = this.CHTMLbboxFor(0), dbox = this.CHTMLbboxFor(1), BBOX = CHTML.BBOX.empty(this.CHTML), nscale = nbox.rscale, dscale = dbox.rscale; - values.linethickness = Math.max(0,CHTML.thickness2em(values.linethickness||"0")); + values.linethickness = Math.max(0,CHTML.thickness2em(values.linethickness||"0",BBOX.scale)); var mt = CHTML.TEX.min_rule_thickness/CHTML.em/BBOX.scale, a = CHTML.TEX.axis_height; var t = values.linethickness, p,q, u,v; if (values.bevelled) { From 0714de53362da5bb71b63295f07bb779f8826e9b Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Mon, 24 Aug 2015 18:03:45 -0400 Subject: [PATCH 178/186] Force a little more space in fractions, and get the spacing right for \atop --- unpacked/jax/output/CommonHTML/jax.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index 19530be7d..414434b77 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -2364,7 +2364,7 @@ if (q < p) {u += (p - q)/2; v += (p - q)/2} frac.style.verticalAlign = CHTML.Em(-v); } else { // \over - p = Math.max((isDisplay ? 3 : 0) * t, mt); // force to be at least 1px + p = Math.max((isDisplay ? 3 : 0) * t, 2*mt); // force to be at least 2px t = Math.max(t,mt); q = (u - nbox.d*nscale) - (a + t/2); if (q < p) u += (p - q); q = (a - t/2) - (dbox.h*dscale - v); if (q < p) v += (p - q); @@ -2380,8 +2380,8 @@ BBOX.combine(dbox,0,-v); BBOX.clean(); u -= nscale*nbox.d + a + t/2; v -= dscale*dbox.h - a + t/2; - if (u > 0) num.style.paddingBottom = CHTML.Em(u/nscale); - if (v > 0) denom.style.paddingTop = CHTML.Em(v/dscale); + if (u) num.style[u > 0 ? "paddingBottom" : "marginBottom"] = CHTML.Em(u/nscale); + if (v) denom.style[v > 0 ? "paddingTop" : "marginTop"] = CHTML.Em(v/dscale); } // // Add nulldelimiterspace around the fraction From bea44b3029036242ee56cc2ebf1ea2f209c769ac Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Mon, 24 Aug 2015 19:32:27 -0400 Subject: [PATCH 179/186] Avoid problem with empty base element --- unpacked/jax/output/CommonHTML/jax.js | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index 414434b77..370d6c0a7 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -2260,10 +2260,12 @@ delta = 1.3*bbox.ic + .05; // make faked IC be closer to expeted results } var bmml = this.data[this.base]; - if ((bmml.type === "mrow" || bmml.type === "mstyle") && bmml.data.length === 1) bmml = bmml.data[0]; - if (bmml && (bmml.type === "mi" || bmml.type === "mo")) { - if (bmml.data.join("").length === 1 && bbox.rscale === 1 && !bbox.sH && - !bmml.Get("largeop")) {u = v = 0} + if (bmml) { + if ((bmml.type === "mrow" || bmml.type === "mstyle") && bmml.data.length === 1) bmml = bmml.data[0]; + if (bmml.type === "mi" || bmml.type === "mo") { + if (bmml.data.join("").length === 1 && bbox.rscale === 1 && !bbox.sH && + !bmml.Get("largeop")) {u = v = 0} + } } values.subscriptshift = (values.subscriptshift === "" ? 0 : this.CHTMLlength2em(values.subscriptshift)); values.superscriptshift = (values.superscriptshift === "" ? 0 : this.CHTMLlength2em(values.superscriptshift)); From 37d7a91a69b8e4dcc69161b1e8e732c5b57fe995 Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Tue, 25 Aug 2015 08:09:43 -0400 Subject: [PATCH 180/186] Only use mathsize on token elements --- unpacked/jax/output/CommonHTML/jax.js | 1 + 1 file changed, 1 insertion(+) diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index 370d6c0a7..9a60c5527 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -1448,6 +1448,7 @@ CHTMLhandleScale: function (node) { var scale = 1, parent = this.parent, pscale = (parent ? parent.CHTML.scale : 1); var values = this.getValues("scriptlevel","fontsize","mathsize"); + if (!this.isToken) values.mathsize = 1; if (values.scriptlevel !== 0) { if (values.scriptlevel > 2) values.scriptlevel = 2; scale = Math.pow(this.Get("scriptsizemultiplier"),values.scriptlevel); From 3032239f7ed7208959a492924506c55a14f81aa4 Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Tue, 25 Aug 2015 12:12:51 -0400 Subject: [PATCH 181/186] Make fraction spacing consistent with HTML-CSS and SVG output --- unpacked/jax/output/CommonHTML/jax.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index 9a60c5527..6a51ee26b 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -2367,7 +2367,7 @@ if (q < p) {u += (p - q)/2; v += (p - q)/2} frac.style.verticalAlign = CHTML.Em(-v); } else { // \over - p = Math.max((isDisplay ? 3 : 0) * t, 2*mt); // force to be at least 2px + p = Math.max((isDisplay ? 2 : 0) * mt + t, t/2 + 1.5*mt); t = Math.max(t,mt); q = (u - nbox.d*nscale) - (a + t/2); if (q < p) u += (p - q); q = (a - t/2) - (dbox.h*dscale - v); if (q < p) v += (p - q); From 930c5d3fb3745b17aa23709fbe9b9869ab58ff1e Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Tue, 25 Aug 2015 12:13:15 -0400 Subject: [PATCH 182/186] Make maction use the correct core node --- unpacked/jax/output/CommonHTML/autoload/maction.js | 1 + 1 file changed, 1 insertion(+) diff --git a/unpacked/jax/output/CommonHTML/autoload/maction.js b/unpacked/jax/output/CommonHTML/autoload/maction.js index ef2bffef0..040365b35 100644 --- a/unpacked/jax/output/CommonHTML/autoload/maction.js +++ b/unpacked/jax/output/CommonHTML/autoload/maction.js @@ -62,6 +62,7 @@ MathJax.Hub.Register.StartupHook("CommonHTML Jax Ready",function () { return node; }, + CHTMLcoreNode: function (node) {return this.CHTMLchildNode(node,0)}, // // Implementations for the various actions From 0a4da7e3b4665830a49dcae82d7d8b868c7aaaee Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Tue, 25 Aug 2015 15:13:16 -0400 Subject: [PATCH 183/186] Do quotes and text in one shot, like HTML-CSS and SVG (resolves some problems with the ms tests in the test suite). --- unpacked/jax/output/CommonHTML/autoload/ms.js | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/unpacked/jax/output/CommonHTML/autoload/ms.js b/unpacked/jax/output/CommonHTML/autoload/ms.js index ddd702230..798730662 100644 --- a/unpacked/jax/output/CommonHTML/autoload/ms.js +++ b/unpacked/jax/output/CommonHTML/autoload/ms.js @@ -50,11 +50,9 @@ MathJax.Hub.Register.StartupHook("CommonHTML Jax Ready",function () { if (values.rquote === "\u201D" && values.mathvariant === "monospace") values.rquote = '"'; // // Add the left quote, the child nodes, and the right quote - // FIXME: should the quotation marks be in MML.VARIANT.NORMAL? // - this.CHTMLhandleText(node,values.lquote,this.CHTMLvariant); - for (var i = 0, m = this.data.length; i < m; i++) this.CHTMLaddChild(node,i,{}); - this.CHTMLhandleText(node,values.rquote,this.CHTMLvariant); + var text = values.lquote+this.data.join("")+values.rquote; // FIXME: handle mglyph? + this.CHTMLhandleText(node,text,this.CHTMLvariant); // // Finish the bbox, add any needed space and color // From 52ba4e6fa9fc2f667c393aad9502d32ee0189940 Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Wed, 26 Aug 2015 17:23:58 -0400 Subject: [PATCH 184/186] Fix default value for minlabelspacing (failed if unitless values were used) --- unpacked/jax/output/CommonHTML/autoload/mtable.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/unpacked/jax/output/CommonHTML/autoload/mtable.js b/unpacked/jax/output/CommonHTML/autoload/mtable.js index c18c70b2f..496f1f975 100644 --- a/unpacked/jax/output/CommonHTML/autoload/mtable.js +++ b/unpacked/jax/output/CommonHTML/autoload/mtable.js @@ -435,7 +435,7 @@ MathJax.Hub.Register.StartupHook("CommonHTML Jax Ready",function () { if (indent.indentshiftfirst !== MML.INDENTSHIFT.INDENTSHIFT) indent.indentshift = indent.indentshiftfirst; if (indent.indentshift === "auto") indent.indentshift = "0"; var shift = this.CHTMLlength2em(indent.indentshift,CHTML.cwidth); - var labelspace = this.CHTMLlength2em(values.minlabelspacing,this.defaults.minlabelspacing); + var labelspace = this.CHTMLlength2em(values.minlabelspacing,.8); var labelW = labelspace + state.W[LABEL], labelshift = 0, tw = state.R; var dIndent = this.CHTMLlength2em(CONFIG.displayIndent,CHTML.cwidth); var s = (state.CALIGN[LABEL] === MML.INDENTALIGN.RIGHT ? -1 : 1); From 944000c76f85a7d6261142d848ba67631876a17a Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Wed, 26 Aug 2015 19:21:47 -0400 Subject: [PATCH 185/186] Set min-width properly on tables with labels so that they don't overlap (596). --- unpacked/jax/output/CommonHTML/autoload/mtable.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/unpacked/jax/output/CommonHTML/autoload/mtable.js b/unpacked/jax/output/CommonHTML/autoload/mtable.js index 496f1f975..f6528025c 100644 --- a/unpacked/jax/output/CommonHTML/autoload/mtable.js +++ b/unpacked/jax/output/CommonHTML/autoload/mtable.js @@ -504,7 +504,7 @@ MathJax.Hub.Register.StartupHook("CommonHTML Jax Ready",function () { // Propagate full-width equations, and reserve room for equation plus label // node.style.width = this.CHTML.pwidth = "100%"; - this.CHTML.mwidth = CHTML.Em(tw); + node.style.minWidth = this.CHTML.mwidth = CHTML.Em(tw); } }); From e6f15a4becf27ece8d859d10e6a3c30eb4100f76 Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Sat, 29 Aug 2015 08:24:44 -0400 Subject: [PATCH 186/186] Convert use of custom tags to span-with-class --- .../CommonHTML/autoload/annotation-xml.js | 2 +- .../jax/output/CommonHTML/autoload/maction.js | 2 +- .../output/CommonHTML/autoload/menclose.js | 6 +- .../jax/output/CommonHTML/autoload/mglyph.js | 2 +- .../CommonHTML/autoload/mmultiscripts.js | 8 +- .../jax/output/CommonHTML/autoload/mtable.js | 10 +- .../output/CommonHTML/autoload/multiline.js | 8 +- unpacked/jax/output/CommonHTML/jax.js | 207 +++++++++--------- 8 files changed, 126 insertions(+), 119 deletions(-) diff --git a/unpacked/jax/output/CommonHTML/autoload/annotation-xml.js b/unpacked/jax/output/CommonHTML/autoload/annotation-xml.js index bc4956370..651e1b802 100644 --- a/unpacked/jax/output/CommonHTML/autoload/annotation-xml.js +++ b/unpacked/jax/output/CommonHTML/autoload/annotation-xml.js @@ -47,7 +47,7 @@ MathJax.Hub.Register.StartupHook("CommonHTML Jax Ready",function () { // Warning: causes reflow // var w = node.offsetWidth, h = node.offsetHeight; - var strut = MathJax.HTML.addElement(node,"mjx-hd-test",{style:{height:h+"px"}}); + var strut = CHTML.addElement(node,"mjx-hd-test",{style:{height:h+"px"}}); bbox.d = bbox.b = (node.offsetHeight - h)/CHTML.em; bbox.w = bbox.r = w/CHTML.em; bbox.h = bbox.t = h/CHTML.em - bbox.d; node.removeChild(strut); diff --git a/unpacked/jax/output/CommonHTML/autoload/maction.js b/unpacked/jax/output/CommonHTML/autoload/maction.js index 040365b35..c344d58f4 100644 --- a/unpacked/jax/output/CommonHTML/autoload/maction.js +++ b/unpacked/jax/output/CommonHTML/autoload/maction.js @@ -42,7 +42,7 @@ MathJax.Hub.Register.StartupHook("CommonHTML Jax Ready",function () { MML.maction.Augment({ - CHTMLtooltip: HTML.addElement(document.body,"div",{id:"MathJax_CHTML_Tooltip"}), + CHTMLtooltip: CHTML.addElement(document.body,"div",{id:"MathJax_CHTML_Tooltip"}), toCommonHTML: function (node) { var selected = this.Get("selection"); diff --git a/unpacked/jax/output/CommonHTML/autoload/menclose.js b/unpacked/jax/output/CommonHTML/autoload/menclose.js index 2a5291b93..69456ea3a 100644 --- a/unpacked/jax/output/CommonHTML/autoload/menclose.js +++ b/unpacked/jax/output/CommonHTML/autoload/menclose.js @@ -94,7 +94,7 @@ MathJax.Hub.Register.StartupHook("CommonHTML Jax Ready",function () { roundedbox: function (child,cbox,bb,p,t,SOLID) { var r = Math.min(cbox.w,cbox.h+cbox.d+2*p)/4; - HTML.addElement(child.parentNode,"mjx-box",{ + CHTML.addElement(child.parentNode,"mjx-box",{ style: { padding:CHTML.Em(p-t), border:SOLID, "border-radius":CHTML.Em(r), height:CHTML.Em(cbox.h+cbox.d), "vertical-align":CHTML.Em(-bb.D), @@ -159,7 +159,7 @@ MathJax.Hub.Register.StartupHook("CommonHTML Jax Ready",function () { /********************************************************/ verticalstrike: function (child,cbox,bb,p,t,SOLID) { - HTML.addElement(child.parentNode,"mjx-box",{ + CHTML.addElement(child.parentNode,"mjx-box",{ style: { "border-left":SOLID, height:CHTML.Em(bb.H+bb.D), "vertical-align":CHTML.Em(-bb.D), @@ -171,7 +171,7 @@ MathJax.Hub.Register.StartupHook("CommonHTML Jax Ready",function () { /********************************************************/ horizontalstrike: function (child,cbox,bb,p,t,SOLID) { - HTML.addElement(child.parentNode,"mjx-box",{ + CHTML.addElement(child.parentNode,"mjx-box",{ style: { "border-top":SOLID, height:CHTML.Em((bb.H+bb.D)/2-t/2), "vertical-align":CHTML.Em(-bb.D), diff --git a/unpacked/jax/output/CommonHTML/autoload/mglyph.js b/unpacked/jax/output/CommonHTML/autoload/mglyph.js index cf4c8cea0..fbc943932 100644 --- a/unpacked/jax/output/CommonHTML/autoload/mglyph.js +++ b/unpacked/jax/output/CommonHTML/autoload/mglyph.js @@ -57,7 +57,7 @@ MathJax.Hub.Register.StartupHook("CommonHTML Jax Ready",function () { this.Append(err); err.toCommonHTML(node); this.data.pop(); bbox.combine(err.CHTML,0,0,1); } else { - var img = MathJax.HTML.addElement(node,"img",{ + var img = CHTML.addElement(node,"img",{ isMathJax:true, src:values.src, alt:values.alt, title:values.alt }); var w = bbox.img.img.width/CHTML.em, h = bbox.img.img.height/CHTML.em; diff --git a/unpacked/jax/output/CommonHTML/autoload/mmultiscripts.js b/unpacked/jax/output/CommonHTML/autoload/mmultiscripts.js index bac06bb83..e412a1c91 100644 --- a/unpacked/jax/output/CommonHTML/autoload/mmultiscripts.js +++ b/unpacked/jax/output/CommonHTML/autoload/mmultiscripts.js @@ -178,7 +178,7 @@ MathJax.Hub.Register.StartupHook("CommonHTML Jax Ready",function () { if (data && data.type !== "none" && data.type !== "mprescripts") { BOX = state.BOX[type]; if (!BOX) { - BOX = state.BOX[type] = HTML.Element("mjx-"+type); + BOX = state.BOX[type] = CHTML.Element("mjx-"+type); BBOX = state.BBOX[type] = CHTML.BBOX.empty(); if (state.w) { BOX.style.paddingLeft = CHTML.Em(state.w); @@ -203,7 +203,7 @@ MathJax.Hub.Register.StartupHook("CommonHTML Jax Ready",function () { if (BBOX) { if (bbox.rscale*bbox.w < w) { var BOX = state.BOX[type]; dw = w-bbox.rscale*bbox.w; - var space = HTML.Element("mjx-spacer",{style:{width:CHTML.Em(dw)}}); + var space = CHTML.Element("mjx-spacer",{style:{width:CHTML.Em(dw)}}); if (type.substr(0,3) === "pre" && !bbox.fake) { BOX.insertBefore(space,BOX.lastChild); dx = dw; dw = 0; @@ -221,14 +221,14 @@ MathJax.Hub.Register.StartupHook("CommonHTML Jax Ready",function () { CHTMLaddBoxes: function (node,base,BOX) { var sub = BOX.sub, sup = BOX.sup, presub = BOX.presub, presup = BOX.presup; if (presub && presup) { - var prestack = HTML.Element("mjx-prestack"); node.insertBefore(prestack,base); + var prestack = CHTML.Element("mjx-prestack"); node.insertBefore(prestack,base); prestack.appendChild(presup); prestack.appendChild(presub); } else { if (presub) node.insertBefore(presub,base); if (presup) node.insertBefore(presup,base); } if (sub && sup) { - var stack = HTML.addElement(node,"mjx-stack"); + var stack = CHTML.addElement(node,"mjx-stack"); stack.appendChild(sup); stack.appendChild(sub); } else { if (sub) node.appendChild(sub); diff --git a/unpacked/jax/output/CommonHTML/autoload/mtable.js b/unpacked/jax/output/CommonHTML/autoload/mtable.js index f6528025c..8bb848424 100644 --- a/unpacked/jax/output/CommonHTML/autoload/mtable.js +++ b/unpacked/jax/output/CommonHTML/autoload/mtable.js @@ -42,7 +42,7 @@ MathJax.Hub.Register.StartupHook("CommonHTML Jax Ready",function () { // var state = {rows:[], labels:[], labeled: false}; node = this.CHTMLdefaultNode(node,{noBBox:true, childOptions:state}); - var table = HTML.Element("mjx-table"); + var table = CHTML.Element("mjx-table"); while (node.firstChild) table.appendChild(node.firstChild); node.appendChild(table); // @@ -235,7 +235,7 @@ MathJax.Hub.Register.StartupHook("CommonHTML Jax Ready",function () { // (setting style.height seems to work very strangely) // if (state.HD && j === 0) { - HTML.addElement(row[j].parentNode,"mjx-mtd",{style:{padding:T+" 0 "+B}}, + CHTML.addElement(row[j].parentNode,"mjx-mtd",{style:{padding:T+" 0 "+B}}, [["mjx-box",{style:{ height:CHTML.Em(state.HH+state.DD), "vertical-align":CHTML.Em(-state.DD) @@ -453,10 +453,10 @@ MathJax.Hub.Register.StartupHook("CommonHTML Jax Ready",function () { // // Create boxes for table and labels // - var box = HTML.addElement(node,"mjx-box",{ + var box = CHTML.addElement(node,"mjx-box",{ style:{width:"100%","text-align":indent.indentalign} }); box.appendChild(table); - var labels = HTML.Element("mjx-stack"); + var labels = CHTML.Element("mjx-stack"); table.style.display = "inline-table"; if (!table.style.width) table.style.width = "auto"; labels.style.verticalAlign = "top"; table.style.verticalAlign = CHTML.Em(state.T-state.B-state.H[0]); @@ -545,7 +545,7 @@ MathJax.Hub.Register.StartupHook("CommonHTML Jax Ready",function () { // if (!options) options = {rows:[],labels:[]}; var row = []; options.rows.push(row); - var label = HTML.Element("mjx-label"); options.labels.push(label); + var label = CHTML.Element("mjx-label"); options.labels.push(label); this.CHTMLaddChild(label,0,options); options.labeled = true; // diff --git a/unpacked/jax/output/CommonHTML/autoload/multiline.js b/unpacked/jax/output/CommonHTML/autoload/multiline.js index a07b54d4a..3b30c07f4 100644 --- a/unpacked/jax/output/CommonHTML/autoload/multiline.js +++ b/unpacked/jax/output/CommonHTML/autoload/multiline.js @@ -90,7 +90,7 @@ MathJax.Hub.Register.StartupHook("CommonHTML Jax Ready",function () { // Break the math at its best line breaks // CHTML.BBOX.empty(this.CHTML); - var stack = HTML.addElement(node,"mjx-stack"); + var stack = CHTML.addElement(node,"mjx-stack"); var state = { BBOX: this.CHTML, n: 0, Y: 0, @@ -188,7 +188,7 @@ MathJax.Hub.Register.StartupHook("CommonHTML Jax Ready",function () { // fill it with the proper elements, // and clean up the bbox // - var block = HTML.addElement(stack,"mjx-block",{},[["mjx-box"]]), line = block.firstChild; + var block = CHTML.addElement(stack,"mjx-block",{},[["mjx-box"]]), line = block.firstChild; var bbox = state.bbox = CHTML.BBOX.empty(); state.first = broken; state.last = true; this.CHTMLmoveLine(start,end,line,state,values); @@ -490,7 +490,7 @@ MathJax.Hub.Register.StartupHook("CommonHTML Jax Ready",function () { // Move the proper part of the base // if (this.data[this.base]) { - var base = HTML.addElement(node,"mjx-base"); + var base = CHTML.addElement(node,"mjx-base"); if (start.length > 1) { this.data[this.base].CHTMLmoveSlice(start.slice(1),end.slice(1),base,state,values,"marginLeft"); } else { @@ -583,7 +583,7 @@ MathJax.Hub.Register.StartupHook("CommonHTML Jax Ready",function () { // Move the proper part of the base // if (this.data[this.base]) { - var base = HTML.addElement(node,"mjx-base"); + var base = CHTML.addElement(node,"mjx-base"); if (start.length > 1) { this.data[this.base].CHTMLmoveSlice(start.slice(1),end.slice(1),base,state,values,"marginLeft"); } else { diff --git a/unpacked/jax/output/CommonHTML/jax.js b/unpacked/jax/output/CommonHTML/jax.js index 6a51ee26b..991be9d85 100644 --- a/unpacked/jax/output/CommonHTML/jax.js +++ b/unpacked/jax/output/CommonHTML/jax.js @@ -37,65 +37,73 @@ HFUZZ = .025, DFUZZ = .025; // adjustments to bounding box of character boxes var STYLES = { - "mjx-chtml": { + ".mjx-chtml": { display: "inline-block", "line-height": 0, "text-indent": 0, - "white-space": "nowrap", + "text-align": "left", + "text-transform": "none", "font-style": "normal", "font-weight": "normal", "font-size": "100%", "font-size-adjust":"none", - "text-transform": "none", "letter-spacing": "normal", + "word-wrap": "normal", "word-spacing": "normal", + "white-space": "nowrap", "float": "none", "direction": "ltr", - "word-wrap": "normal", + "max-width": "none", + "max-height": "none", + "min-width": 0, + "min-height": 0, + border: 0, + margin: 0, padding: "1px 0" }, ".MJXc-display": { display: "block", "text-align": "center", - "margin": "1em 0" + "margin": "1em 0", + padding: 0 }, - "mjx-math": { + ".mjx-math": { "display": "inline-block", "border-collapse": "separate", "border-spacing": 0, }, - "mjx-math *": {display:"inline-block", "text-align":"left"}, + ".mjx-math *": {display:"inline-block", "text-align":"left"}, - "mjx-numerator": {display:"block", "text-align":"center"}, - "mjx-denominator": {display:"block", "text-align":"center"}, + ".mjx-numerator": {display:"block", "text-align":"center"}, + ".mjx-denominator": {display:"block", "text-align":"center"}, ".MJXc-fpad": {"padding-left":".1em", "padding-right":".1em"}, ".MJXc-bevelled > *": {display:"inline-block"}, - "mjx-stack": {display:"inline-block"}, - "mjx-op": {display:"block"}, - "mjx-under": {display:"table-cell"}, - "mjx-over": {display:"block"}, - "mjx-over > *": {"padding-left":"0px!important", "padding-right":"0px!important"}, - "mjx-under > *": {"padding-left":"0px!important", "padding-right":"0px!important"}, + ".mjx-stack": {display:"inline-block"}, + ".mjx-op": {display:"block"}, + ".mjx-under": {display:"table-cell"}, + ".mjx-over": {display:"block"}, + ".mjx-over > *": {"padding-left":"0px!important", "padding-right":"0px!important"}, + ".mjx-under > *": {"padding-left":"0px!important", "padding-right":"0px!important"}, - "mjx-stack > mjx-sup": {display:"block"}, - "mjx-stack > mjx-sub": {display:"block"}, - "mjx-prestack > mjx-presup": {display:"block"}, - "mjx-prestack > mjx-presub": {display:"block"}, + ".mjx-stack > .mjx-sup": {display:"block"}, + ".mjx-stack > .mjx-sub": {display:"block"}, + ".mjx-prestack > .mjx-presup": {display:"block"}, + ".mjx-prestack > .mjx-presub": {display:"block"}, - "mjx-delim-v > mjx-char": {transform:"scale(1)"}, // for Firefox to get horizontal alignment better - "mjx-delim-h": {display:"block"}, - "mjx-delim-h > mjx-char": { + ".mjx-delim-v > .mjx-char": {transform:"scale(1)"}, // for Firefox to get horizontal alignment better + ".mjx-delim-h": {display:"block"}, + ".mjx-delim-h > .mjx-char": { transform:"scale(1)", display:"inline-block" }, - "mjx-surd": {"vertical-align":"top"}, + ".mjx-surd": {"vertical-align":"top"}, - "mjx-mphantom *": {visibility:"hidden"}, + ".mjx-mphantom *": {visibility:"hidden"}, - "mjx-merror": { + ".mjx-merror": { "background-color":"#FFFF88", color: "#CC0000", border: "1px solid #CC0000", @@ -104,39 +112,39 @@ "font-size": "90%" }, - "mjx-annotation-xml": {"line-height":"normal"}, + ".mjx-annotation-xml": {"line-height":"normal"}, - "mjx-menclose > svg": {fill:"none", stroke:"currentColor"}, + ".mjx-menclose > svg": {fill:"none", stroke:"currentColor"}, - "mjx-mtr": {display:"table-row"}, - "mjx-mlabeledtr": {display:"table-row"}, - "mjx-mtd": {display:"table-cell", "text-align":"center"}, - "mjx-label": {display:"block"}, + ".mjx-mtr": {display:"table-row"}, + ".mjx-mlabeledtr": {display:"table-row"}, + ".mjx-mtd": {display:"table-cell", "text-align":"center"}, + ".mjx-label": {display:"block"}, - "mjx-box": {display:"inline-block"}, - "mjx-block": {display:"block"}, - "mjx-span": {display:"span"}, - "mjx-char": {display:"block", "white-space":"pre"}, - "mjx-itable": {display:"inline-table"}, - "mjx-row": {display:"table-row"}, - "mjx-cell": {display:"table-cell"}, - "mjx-table": {display:"table", width:"100%"}, - "mjx-line": {display:"block", width:"100%", "border-top":"0 solid"}, - "mjx-strut": {width:0, "padding-top":STRUTHEIGHT+"em"}, + ".mjx-box": {display:"inline-block"}, + ".mjx-block": {display:"block"}, + ".mjx-span": {display:"span"}, + ".mjx-char": {display:"block", "white-space":"pre"}, + ".mjx-itable": {display:"inline-table"}, + ".mjx-row": {display:"table-row"}, + ".mjx-cell": {display:"table-cell"}, + ".mjx-table": {display:"table", width:"100%"}, + ".mjx-line": {display:"block", width:"100%", "border-top":"0 solid"}, + ".mjx-strut": {width:0, "padding-top":STRUTHEIGHT+"em"}, ".MJXc-space1": {"margin-left":".167em"}, ".MJXc-space2": {"margin-left":".222em"}, ".MJXc-space3": {"margin-left":".278em"}, - "mjx-chartest": { + ".mjx-chartest": { display:"block", visibility: "hidden", position:"absolute", top:0, "line-height":"normal", "font-size":"500%" }, - "mjx-chartest mjx-char": {display:"inline"}, - "mjx-chartest mjx-box": {"padding-top": "1000px"}, + ".mjx-chartest .mjx-char": {display:"inline"}, + ".mjx-chartest .mjx-box": {"padding-top": "1000px"}, ".MJXc-processing": { visibility: "hidden", position:"fixed", @@ -144,7 +152,7 @@ }, ".MJXc-processed": {display:"none"}, - "mjx-test": { + ".mjx-test": { display: "block", "font-style": "normal", "font-weight": "normal", @@ -157,7 +165,7 @@ overflow: "hidden", height: "1px" }, - "mjx-ex-box-test": { + ".mjx-ex-box-test": { position: "absolute", width:"1px", height:"60ex" }, @@ -216,13 +224,13 @@ // // Determine pixels per inch // - var div = HTML.addElement(document.body,"mjx-block",{style:{display:"block",width:"5in"}}); + var div = CHTML.addElement(document.body,"mjx-block",{style:{display:"block",width:"5in"}}); this.pxPerInch = div.offsetWidth/5; div.parentNode.removeChild(div); // // Used in preTranslate to get scaling factors and line width // - this.TestSpan = HTML.Element("mjx-test",{style:{left:"1em"}},[["mjx-ex-box-test"]]); + this.TestSpan = CHTML.Element("mjx-test",{style:{left:"1em"}},[["mjx-ex-box-test"]]); // // Set up styles and preload web fonts @@ -312,6 +320,20 @@ ); }, + Element: function (type,def,content) { + if (type.substr(0,4) === "mjx-") { + if (!def) def = {}; + if (def.className) def.className = type+" "+def.className; else def.className = type; + } + return this.HTMLElement("span",def,content); + }, + addElement: function (node,type,def,content) { + return node.appendChild(this.Element(type,def,content)); + }, + HTMLElement: HTML.Element, + ucMatch: HTML.ucMatch, + setScript: HTML.setScript, + /********************************************/ @@ -345,7 +367,7 @@ // jax = script.MathJax.elementJax; if (!jax) continue; jax.CHTML = {display: (jax.root.Get("display") === "block")} - node = HTML.Element("mjx-chtml",{ + node = CHTML.Element("mjx-chtml",{ id:jax.inputID+"-Frame", isMathJax:true, jaxID:this.id, oncontextmenu:EVENT.Menu, onmousedown: EVENT.Mousedown, onmouseover:EVENT.Mouseover, onmouseout:EVENT.Mouseout, onmousemove:EVENT.Mousemove, @@ -355,7 +377,7 @@ // // Zoom box requires an outer container to get the positioning right. // - var NODE = HTML.Element("mjx-chtml",{className:"MJXc-display"}); + var NODE = CHTML.Element("mjx-chtml",{className:"MJXc-display"}); NODE.appendChild(node); node = NODE; } if (HUB.Browser.noContextMenu) { @@ -450,7 +472,7 @@ // Put it in place, and remove the processing marker // if (jax.CHTML.display) node = node.parentNode; - node.className = node.className.split(/ /)[0]; + node.className = node.className.replace(/ [^ ]+$/,""); // // Hide the math and don't let its preview be removed // @@ -474,7 +496,7 @@ // // MathML previews can contain the same ID's as the HTML output, - // which confuses HTMLspanElement(), so remove the preview temporarily + // which confuses CHTMLnodeElement(), so remove the preview temporarily // and restore it after typesetting the math. // savePreview: function (script) { @@ -508,25 +530,6 @@ postTranslate: function (state) { var scripts = state.jax[this.id]; - for (var i = 0, m = scripts.length; i < m; i++) { - var script = scripts[i]; - if (script && script.MathJax.elementJax) { - // - // Remove the processed marker - // - script.previousSibling.className = script.previousSibling.className.split(/ /)[0]; - var data = script.MathJax.elementJax.CHTML; - // - // Remove the preview, if any - // - if (data.preview) { - data.preview.innerHTML = ""; - script.MathJax.preview = data.preview; - delete data.preview; - } - } - } - // // Reveal this chunk of math // @@ -536,7 +539,7 @@ // // Remove the processed marker // - script.previousSibling.className = script.previousSibling.className.split(/ /)[0]; + script.previousSibling.className = script.previousSibling.className.replace(/ [^ ]+$/,""); var data = script.MathJax.elementJax.CHTML; // // Remove the preview, if any @@ -557,7 +560,7 @@ /********************************************/ getJaxFromMath: function (math) { - if (math.parentNode.className === "MJXc-display") math = math.parentNode; + if (math.parentNode.className.match(/MJXc-display/)) math = math.parentNode; do {math = math.nextSibling} while (math && math.nodeName.toLowerCase() !== "script"); return HUB.getJaxFor(math); }, @@ -574,7 +577,7 @@ // Re-render at larger size // this.getMetrics(jax); - var node = HTML.addElement(span,"mjx-chtml",{style:{"font-size":Math.floor(CHTML.scale*100)+"%"}}); + var node = CHTML.addElement(span,"mjx-chtml",{style:{"font-size":Math.floor(CHTML.scale*100)+"%"}}); this.idPostfix = "-zoom"; jax.root.toCommonHTML(node); this.idPostfix = ""; // // Adjust margins to prevent overlaps at the edges @@ -829,8 +832,8 @@ // WARNING: causes reflow of the page! // getHDW: function (c,name,styles) { - var test1 = HTML.addElement(CHTML.CHTMLnode,"mjx-chartest",{className:name},[["mjx-char",{style:styles},[c]]]); - var test2 = HTML.addElement(CHTML.CHTMLnode,"mjx-chartest",{className:name},[["mjx-char",{style:styles},[c,["mjx-box"]]]]); + var test1 = CHTML.addElement(CHTML.CHTMLnode,"mjx-chartest",{className:name},[["mjx-char",{style:styles},[c]]]); + var test2 = CHTML.addElement(CHTML.CHTMLnode,"mjx-chartest",{className:name},[["mjx-char",{style:styles},[c,["mjx-box"]]]]); test1.firstChild.style.fontSize = test2.firstChild.style.fontSize = ""; var em = 5*CHTML.em; var d = (test2.offsetHeight-1000)/em; @@ -858,7 +861,8 @@ this.charList.flushText(node,state); } else { HTML.addText(node,state.text); - node.className = state.className; + if (node.className) node.className += " "+state.className; + else node.className = state.className; } } bbox.b = (state.flushed ? 0 : bbox.a); @@ -914,7 +918,7 @@ // reset the data about the text. // flushText: function (node,state,style) { - node = HTML.addElement(node,"mjx-charbox", + node = CHTML.addElement(node,"mjx-charbox", {className:state.className,style:style},[state.text]); if (state.a) node.style.paddingBottom = CHTML.Em(state.a); state.text = ""; state.className = null; state.a = 0; state.flushed = true; @@ -929,7 +933,7 @@ // handleText: function (node,text,variant,bbox) { if (node.childNodes.length === 0) { - HTML.addElement(node,"mjx-char"); + CHTML.addElement(node,"mjx-char"); bbox = CHTML.BBOX.empty(bbox); } if (typeof(variant) === "string") variant = this.FONTDATA.VARIANT[variant]; @@ -957,7 +961,7 @@ if (!code) { var bbox = this.BBOX.zero(); bbox.w = bbox.r = this.TEX.nulldelimiterspace; - HTML.addElement(node,"mjx-box",{style:{width:bbox.w}}); + CHTML.addElement(node,"mjx-box",{style:{width:bbox.w}}); return bbox; } if (!(HW instanceof Array)) HW = [HW,HW]; @@ -981,7 +985,7 @@ return this["extendDelimiter"+delim.dir](node,hw,delim.stretch,BBOX,font); }, extendDelimiterV: function (node,H,delim,BBOX,font) { - node = HTML.addElement(node,"mjx-delim-v"); var tmp = HTML.Element("span"); + node = CHTML.addElement(node,"mjx-delim-v"); var tmp = CHTML.Element("span"); var top, bot, mid, ext, tbox, bbox, mbox, ebox, k = 1; tbox = this.createChar(tmp,(delim.top||delim.ext),1,font); top = tmp.removeChild(tmp.firstChild); bbox = this.createChar(tmp,(delim.bot||delim.ext),1,font); bot = tmp.removeChild(tmp.firstChild); @@ -1032,7 +1036,7 @@ return vbox; }, extendDelimiterH: function (node,W,delim,BBOX,font) { - node = HTML.addElement(node,"mjx-delim-h"); var tmp = HTML.Element("span"); + node = CHTML.addElement(node,"mjx-delim-h"); var tmp = CHTML.Element("span"); var left, right, mid, ext, ext2, lbox, rbox, mbox, ebox, k = 1; lbox = this.createChar(tmp,(delim.left||delim.rep),1,font); left = tmp.removeChild(tmp.firstChild); rbox = this.createChar(tmp,(delim.right||delim.rep),1,font); right = tmp.removeChild(tmp.firstChild); @@ -1322,7 +1326,7 @@ var type = options.childNodes; if (type) { if (type instanceof Array) type = type[i]; - node = HTML.addElement(node,type); + node = CHTML.addElement(node,type); } cnode = child.toCommonHTML(node,options.childOptions); if (type && child.CHTML.rscale !== 1) { @@ -1337,7 +1341,7 @@ if (cbox.skew) bbox.skew = cbox.skew; if (cbox.pwidth) bbox.pwidth = cbox.pwidth; } - } else if (options.forceChild) {cnode = HTML.addElement(node,"mjx-box")} + } else if (options.forceChild) {cnode = CHTML.addElement(node,"mjx-box")} return cnode; }, @@ -1407,10 +1411,10 @@ CHTMLcreateNode: function (node) { if (!this.CHTML) this.CHTML = {}; this.CHTML = CHTML.BBOX.zero(); - if (this.href) node = HTML.addElement(node,"a",{href:this.href, isMathJax:true}); + if (this.href) node = CHTML.addElement(node,"a",{href:this.href, isMathJax:true}); if (!this.CHTMLnodeID) this.CHTMLnodeID = CHTML.GetID(); var id = (this.id || "MJXc-Node-"+this.CHTMLnodeID)+CHTML.idPostfix; - return this.CHTMLhandleAttributes(HTML.addElement(node,"mjx-"+this.type,{id:id})); + return this.CHTMLhandleAttributes(CHTML.addElement(node,"mjx-"+this.type,{id:id})); }, CHTMLnodeElement: function () { if (!this.CHTMLnodeID) {return null} @@ -1422,7 +1426,10 @@ }, CHTMLhandleAttributes: function (node) { - if (this["class"]) node.className = this["class"]; + if (this["class"]) { + if (node.className) node.className += " "+this["class"]; + else node.className = this["class"]; + } // // Copy RDFa, aria, and other tags from the MathML to the CHTML // output nodes. Don't copy those in the MML.nocopyAttributes list, @@ -1584,7 +1591,7 @@ // CHTMLdrawBBox: function (node,bbox) { if (!bbox) bbox = this.CHTML; - var box = HTML.Element("mjx-box", + var box = CHTML.Element("mjx-box", {style:{"font-size":node.style.fontSize, opacity:.25,"margin-left":CHTML.Em(-(bbox.w+(bbox.R||0)))}},[ ["mjx-box",{style:{ height:CHTML.Em(bbox.h),width:CHTML.Em(bbox.w), @@ -1803,7 +1810,7 @@ // node = node.firstChild; var char = node.textContent; - var space = HTML.Element("mjx-span",{style:{width:".25em","margin-left":"-.25em"}}); + var space = CHTML.Element("mjx-span",{style:{width:".25em","margin-left":"-.25em"}}); node.insertBefore(space,node.firstChild); }, CHTMLcenterOp: function (node) { @@ -1961,8 +1968,8 @@ node = node.firstChild; child = node.firstChild; } else { node = this.CHTMLdefaultNode(node,{childNodes:"mjx-box", forceChild:true}); - child = node.firstChild; node = HTML.addElement(node,"mjx-block"); - node.appendChild(child); HTML.addElement(node,"mjx-strut"); // force proper alignment of short heights + child = node.firstChild; node = CHTML.addElement(node,"mjx-block"); + node.appendChild(child); CHTML.addElement(node,"mjx-strut"); // force proper alignment of short heights } var cbox = this.CHTMLbboxFor(0); var values = this.getValues("width","height","depth","lspace","voffset"); @@ -2100,7 +2107,7 @@ // Put the base and script into a stack // if (!stretch) { - var stack = HTML.Element("mjx-stack"); + var stack = CHTML.Element("mjx-stack"); stack.appendChild(over); stack.appendChild(base); } if (obox.D) obox.d = obox.D; @@ -2147,7 +2154,7 @@ // Create a table for the underscript // if (!stretch) { - HTML.addElement(node,"mjx-itable",{},[ + CHTML.addElement(node,"mjx-itable",{},[ ["mjx-row",{},[["mjx-cell"]]], ["mjx-row"] ]); @@ -2236,7 +2243,7 @@ if (!this.CHTMLnotEmpty(this.data[this.sub])) {node.removeChild(sub); sub = null} if (!this.CHTMLnotEmpty(this.data[this.sup])) {node.removeChild(sup); sup = null} if (node.childNodes.length === 3) { - var stack = HTML.addElement(node,"mjx-stack"); + var stack = CHTML.addElement(node,"mjx-stack"); stack.appendChild(sup); stack.appendChild(sub); } } @@ -2330,7 +2337,7 @@ // Create the table for the fraction and set the alignment // var num = node.firstChild, denom = node.lastChild; - var frac = HTML.addElement(node,"mjx-box"); + var frac = CHTML.addElement(node,"mjx-box"); frac.appendChild(num); frac.appendChild(denom); node.appendChild(frac); if (values.numalign !== "center") num.style.textAlign = values.numalign; if (values.denomalign !== "center") denom.style.textAlign = values.denomalign; @@ -2344,10 +2351,10 @@ var mt = CHTML.TEX.min_rule_thickness/CHTML.em/BBOX.scale, a = CHTML.TEX.axis_height; var t = values.linethickness, p,q, u,v; if (values.bevelled) { - frac.className = "MJXc-bevelled"; + frac.className += " MJXc-bevelled"; var delta = (isDisplay ? .4 : .15); var H = Math.max(nscale*(nbox.h+nbox.d),dscale*(dbox.h+dbox.d)) + 2*delta; - var bevel = HTML.Element("mjx-bevel"); frac.insertBefore(bevel,denom); + var bevel = CHTML.Element("mjx-bevel"); frac.insertBefore(bevel,denom); var bbox = CHTML.createDelimiter(bevel,0x2F,H); u = nscale*(nbox.d-nbox.h)/2+a+delta; v = dscale*(dbox.d-dbox.h)/2+a-delta; @@ -2410,14 +2417,14 @@ node = this.CHTMLdefaultNode(node,{ childNodes:["mjx-box","mjx-root"], forceChild:true, noBBox:true }); - var base = node.firstChild || HTML.Element("mjx-box"); - var sqrt = HTML.addElement(node,"mjx-box"); sqrt.appendChild(base); + var base = node.firstChild || CHTML.Element("mjx-box"); + var sqrt = CHTML.addElement(node,"mjx-box"); sqrt.appendChild(base); var bbox = this.CHTMLbboxFor(0), BBOX = CHTML.BBOX.empty(this.CHTML); var t = CHTML.TEX.rule_thickness, T = CHTML.TEX.surd_height, p = t, q, H; if (this.Get("displaystyle")) p = CHTML.TEX.x_height; q = t + p/4; H = bbox.h + bbox.d + q + t; - var surd = HTML.Element("mjx-surd"); sqrt.insertBefore(surd,base); + var surd = CHTML.Element("mjx-surd"); sqrt.insertBefore(surd,base); var sbox = CHTML.createDelimiter(surd,0x221A,[H-.04,H]); if (sbox.h + sbox.d > H) q = ((sbox.h+sbox.d) - (H-t))/2; H = bbox.h + q + t;

^ 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 LSO5ShL;<(}x6DK? delta 40243 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 diff --git a/fonts/HTML-CSS/TeX/woff/MathJax_Caligraphic-Bold.woff b/fonts/HTML-CSS/TeX/woff/MathJax_Caligraphic-Bold.woff index 8f7552f2888c9ea64aad13af9492d011504fd4e2..fb6373aba1623793785597ae77a69a64bb4baf13 100644 GIT binary patch delta 8657 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 Hq6P3j)-RAe delta 8639 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 diff --git a/fonts/HTML-CSS/TeX/woff/MathJax_Caligraphic-Regular.woff b/fonts/HTML-CSS/TeX/woff/MathJax_Caligraphic-Regular.woff index dcb26bbc59dd1bc01a9cb467d42dce1417ae6302..7c901da7c2fbe38787498ff83844a34cf257d4f1 100644 GIT binary patch delta 8469 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 delta 8492 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 delta 21408 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 diff --git a/fonts/HTML-CSS/TeX/woff/MathJax_Fraktur-Regular.woff b/fonts/HTML-CSS/TeX/woff/MathJax_Fraktur-Regular.woff index 4f8ea15aecc8a3aa81c0762620d25318742e5695..1cf84bc007206d4bbae3a563a3372091d1e152c1 100644 GIT binary patch delta 20531 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 ArvLx| diff --git a/fonts/HTML-CSS/TeX/woff/MathJax_Main-Bold.woff b/fonts/HTML-CSS/TeX/woff/MathJax_Main-Bold.woff index f6e65a57edbb7f82e9555a548794b8e10143965d..9576a44a80a9c1147979cecd60383e884334b4a1 100644 GIT binary patch delta 33266 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%0DcGG>g_EFK+(;dlySDy^ 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 BG|~V7 diff --git a/fonts/HTML-CSS/TeX/woff/MathJax_Main-Italic.woff b/fonts/HTML-CSS/TeX/woff/MathJax_Main-Italic.woff index f143cbb38e498cd0cb3fe12d4633bf7b9c88fec7..d2ee10a67f66e198cfc859613e51717aa9ea3dda 100644 GIT binary patch delta 19949 zcmZU4V{oR;^L1?7$;P%e-q^{;w!N{h*yhHztvhyhV>{W{w*JrW{rXPTsi{8I(^E5F z=5$xjP9gYyAvoZnBq^z+rltf2_R|au5$wNV{|*NEzxn?kVv>?%U|`^IU|_PyU|`1M z^Ac*=l9Fl)U|@21|9KPr4`#7*MpEJulK*j>|JlUJ(ni&&W(n}LDJ@BioYzX06Ogo653|B+x|3jf=L>_1S# zq=J1~*}HoF$MOERR^vZhKk$)R+8cZR7f&(aKOdO?2VZ3{2V;Bl|G3}(#c%nKR!n`) zaB*^UasBVW%3xps80LSDWM5%m?4H>m5bST=#TM>r;{?zirC2@r+*k}I1_V?DTL?xc z-ADkjovL2L=w3sahfL9Id7H}=pG0>IXVFQwm0oFkaO{au=eOnrNwO5MbfzQTrX&%kB2vGiZ% zEr$A*b)~>!=qiKSD#Kl)W=`6Ny8q+p{J}5nciqPjRX=xw_n0R2O2-_(OxMHJ%IK-B zW4-*>#9QP-KCuV=#dx)&3g(~s6`cldRW==`4vXH4IE(J;sg(xiY8h%4srm=1zvzEp zt5K=tRDuJG?KUb8nWtil66|1LQn3)8|$eqjyzM{Oc_31*4Dq=+-@dI)D?z3(o?yyx3%@U&24Wo zZ@VTm(;e%Wd&+7XK$WeBwT-u31b+a1{myQ@-d5l_NuurFI#b)0_ua-ilZ#`Uf%i>e zmd%+w^1=F_Oq^Uz=g)!RXdHdF*?$u0j5?k!)}}9ynW0s36LPk)vMhS-)usFY0Fxt@ zFDnUqF}Gi-2w(qQuj)aSqNcUlotk-NUBzKlPwi{iX;vjf^JSZwWhG8|bERXIYh{z# z_7A`oP9|$Ysp*zy6KhjrL+tIYnhT(I6ONhQt_U!r-aZR_Q~H~H`|cG8GBTiL z$;KUzJ{-RN=M@QR1(_Mp*9q2%saKh(^O!WJRK<9mfTlpTAP4m-3=!dx0$sI8P}yyr z;K%MfP}C#2S#&e?wk0qR61*d!AYgxOal0$)`P|@f_igI#b02Zr)^R;-n+CoA1^S`4 zbwzr+wc9SMU$3fPE<3hOdwZ{7f!E!+f%k#_P+{HYiTGZRDW&OMf0K`sIF~Q~EuN`7 zkNy)}0gv4aT;k5>VMABO3EgJ5MB~JZq_E*-=Fhv5a28X*x*c>IMXG<(m%3F|>fiG3 z6mq$*1$y~oztghzX+zn0kH^s$a37z@Vg|i*W}VcOZF*nU9IHeHBo7QTYXUv2K^t z$)hI<`6w@9{t+TW7anipElx~d5Q2u?XDtn;WY-YaWFiX$&bx~MsCrszU+w^R-?0De zp5S4~MJzsmY>0@B-?Q(+bhTqU7v(hc88Xc6#n+)PeIJ31oG^SF@GgUBh*Ak(aZ zd%-IUHkPfn6>a?epK>(S)7ND;2zLeAy%2-~9N36~j2JVFCWvBPSbIMa7&2ldDplf& zZ+O&uuLbs@Yptkl)pdK(U~9r8yx9c!SzGY<$F->wky$yTL8v(ePn`JqX`HRPou&Nl z=UygfpX&&0m%J=(U;jde*Rb zsAkWIP!bts1OnK zi0mKLs1Bvr?AWm(XQ;)rr0 zYXw#M(qajSuat3)(o4llNKGKJ2obkn>2W#&|w2Q+~0s*QTqkjm{?N7tqu1Cup>al;nC9l--j2316Hkz?j; z^DO-jUZ{^j`Mdck-RQOtFHEK0q8l9kqV=7!l)w-+&e+!vM<4DhWP{jiFYT3O;bRIVS*nax{#)> zuffxJ@K*;$;1&ZfmE=7%ezhlBiugF`Uy}EASp)L#*9YG$5WoLw42wL6uf{DSE(mAGpOd$P=zi%JRvX^X1s=IUtC5-JJR2J_}&tU>Ubgm-SO{a~>cp5s{C%EMoc z&5a4lBXoCP7GVo?UY{U%vDH10i}5)A6TA5EsuR9>WJIhCflc8QfYoQ`en9eSZ%T5| z#JyP*Sn)09Jhf5VuTF2*-WWe``RvZwy)=_4oLU~93QFLabO!-oM7-^1?SRB1*+DDCd%YVw z!Q;TVX~)hx8577wQEx*2Ea2_hM$tz#Q~J8S#*y-8#>t{zjw6}F@oF`#0NT+&xJod; zQ2qXi@8_MG(P#s(U@8hH#t%h&8H2xR=Wu|Rwu?Wm(EN7cAHD+xOIxwugw4aa-S;~X z`3HZq9C1Tp0S}4yeE}Xk{5K)EHzOm44Ook%eGc9$8>Tw?3Pw6+UGRH*F?1^#0QjU^|V=ERXfi$ zhVhdFVKB1)GqE7h&mQ$Tnehldfm(q9?1-z)p>m~X^6~&=6zI(wRaGQz+v13-E+aW? z6HowCxP5g+LP9`rViPSHoH4b>p(?hwXC{zLf_Ra(7K-IO@^tC@Xi^?xq14?n>(F@o zu->{@&9ez8WV>ml$q#YWRhJnz*NfzNJ?Ota2%^f*m1KZCgt071vNpcFkB5Evr1O?L zsJK-kSo@`nBQO)EANVn0$^-ZetD34Gm~HJ%#iCcuc-p0_rU$fUtkfxT@dsp1jVsD9 zsejjMFluJyn-f-x?eTjmnGD~j;m*iC|6{9fumS<0T5za5@@bDr;v#-#PLD>TVu8&e zae6_zh;8J~o z=!cXFlM2Wd)YeO;k)bpq-qKbLUyr9su0Q8~@oiQL^gnGQoy%gs|0}E~ z!-e>1iW=Kp;g?riAm#c?0b`UfF6J`#avL!@p*o~yW~ZucW8OKsrnExGP}jWL9TVU= z>bL2DsT>7yP|{8j65tVCaMKVj{pQ*B87^pH!3zEM4GK-Kt31pf(h6O`Y-$08+ih_q zF;}FbVM(OZzbfuB@*E86=l&q$tbe8%-wMi56D{d(d{`dIdV^RJ1RWgu#arR>G!}iy z%;XL%PX>2KLd`&_l^fxw3Z0p3SUoU?thJ4OOWJU0nn_N%t5()zI4$txFdYYdPdHj} zGpRso^(85$9gFh3q6p|-MGwN3j)uR%{M)OCB##Aqm>R)}aW&PILrs7x4w|(h-&N{k zJ$F3cAiBA=Fnb%SUES%fyZN-2)2IfuAL^}Jj1o*+O!edUL&;%g!Blk;zyeHNf%1cw z`?a%DsOO&fd-jEbbZ&5X8?5`6ZAhmc>L|4kjb@t{zUbZVStvTI7D_p7{jSMf4F?W# z`rTVb?Codycu0fwh?1(k3R6j+=^j_xm53{B8oQByD~T zplg+vTc%rV15B8fXrAVlM?jR2@)vbt1Qr5Hl2rMJLMIO7d6bd38eH^ovR2@4u2{VO z$E63ks#6A5r$l>r=3bU_Lf5NXxAZO$?cn`8Y~RGKK7dzih}b(T+`;#r?-f_Hxz{pVzgdEyS!GFt-JdH& zR{@o|A1d+{5fs^EzHp5x4)j`Bu0hn%qWp1mD*qVcz%8i(D zw5w8@=8e$&xW2D_f~0od$=syN{wW_+#3JrPym(c+7JDPFjX-9NxtqBn?wPnNd$4vh zg}zG|nl$B)8ox4zgv%iCq}F1BHg0uC`UU^fY*>x{v$i(%_^ii%l9jBj-o27h($~A4 z(FzKCr9su}^u{CH7kCI#oZnozvB@y1OF22 zACb_TN3&f8DK$fQOD|kf1gDx5K*_H;`#WFmwxH`qWdd8@psn$*asV~2P=-ERM?l(~ zqkhX(ERb>ZNbz^Ak>?}~=4~Xpos2rs?1~jGfFizv-yQW5@A&fSG~yy8XU0B8?UrOK ztfg|ImWM|>OF!3EBf*eKlZX2^Ju9xmfV%w+PQnz z@K#L3uy}(rRdCL%xF+t$NS407S$&<4l&gv?0svp#KJCco*<>P@LWE;=vkJm7OrAU? z_eibo{`tkQ6k0MXc3-h{IdGZGbJCp0oNef|lIta$ytvbQdmP$SM^d)6O_DP?{h7nO z{KF*0-*EFrbe#gP{u_@YgR60-H-(MI8vf{OYHhT7VM)Zh{R`|ZbUI1SWQnZ*OO0vCTofV+S##THjK!MpyO)*Cc$+-OW(^KCX^Z>q6v z(PiH6JgSE)GmUGm=@p=g#RE51hia6*mlyZOxSqmjUDd_0V(n3jGr!^!6E`slG5eg= zeO9l(2y7S|pRe3N!BS;q9$}GV6p4LoQk(FIba;W<-otjScrtIdfV@z* z+RQ~5c+3pcby5ljrhtk*j!Xq45(r$3gi?s?_2&Z>tjeI-K3omh7e-5csOFfoOG_Qm zy#BqnZhaWVE_mD6@Ha^Q=Nu7tV+hnH%G$(Yr?NsuXTAyvRaozS1}}*%t75=yMmOi) zlIRK^ZYE|os08+Badb;#N~so zj=L8mSoC7aZ7aolF623eKE*wLqL4A7G*lzO-7M~l<;a_w**_0DZz8RGlYaYFBlxRe z%67jaA-vgEGCw`lw~tO159GW%4jHp->cW23p;1p(a@#;_r2`-JBX8gmxDL+V`Q=0k z`BD{@cEhycbd0LcLVWfTn}W8Mkkwu9z1>LLfcW$0hsx0%s=JUxvmnXxH*F*Yi;kV%5~j{;O;n87Gn|Gq+-~Lc~Trm zI2;hvp4EPl77XM@2qN}6phKQVmwwhvdijWC7wEHdyU4Rq$kYB^3n~3>f*t{G^qBSP z=*68k>;T%GqL&idfADW4hsEtNG%#74J1+c7X{n$-oVxhQVJcK~l`ddkEHp{dfeOlt z?L})8@#EeV%f=te7(_lWgJ(sSJZ?p{F1x682Bl&1H|24I)cs}>m_djj=V`BH>9ube z?x|U@(DoM_r+OUDM!p+FYEh{%-1fM1Y4e?vg}~#7k6GZ|J}Eox7xrUSR1f65I-*>f zHtIXTG1ifud`X|UJMhwiXe+G>uN-0I-x(*GMT91~^lmzmUjFRKG2JtBf9=Rf-+f~B zrg#s+k}uNw*tFXMBCED1%ecO5d-*$_0zgFtnm6zf*FK_MNnNmU79^flx8pZbZ+U@j zfw_L0{LTgoliT3DD&*V6-w(DUlWAOc%7mwcsGpCBPQs1-@$h%yj>4CT-ZTb>t$>u+ zp{7+QiL;RjxuvhyrCVeL7dt3@8fV6-QP5<;+CC^+BV1cFAboB`Xk*i<;q(Rytm}jSSvjCc;GRaexe=GQ5NJ zDWs?y{t^na>}e760%$}L$042lBo-)-^et8>`j}2>%s}tUyZJ}Pl&8xsVwWgJ(1CtX zDZ2Sx51+Z>-KaG?jtv?+$r41y!M`sjDOsJIeyn4Xt8g^+6R61P9rEHn z`PLu$sUCsVLFunSb2?8yZAJ`!k0>O37gyd90iY85 z3y0y5IGxq?@a=-%5-lCk?PTG84UPKZ=ZiBV7wgWij;}@|>|=-hjRa+Y(of#s&-G~% zQ1A{o6uBF=4!PD_Q`SJ$gtJ{JF~+tVm`=lY_;24u?*FGqjXhQ2{p zC9M#lBtNvU*LWgIIw8)$njK;BMj?=hzM=U0ew{;H6j*w0Qp(@Xvj*3}D8To5fx6s=!^@+C z4!orCoOh@Mq!`n}h~$f1=zAO4uLgs3@SPf z-i(a{nl(l9RI$JII&cV3?%xA6?(=&PU4j0cF#H7o-hx5M zz}OD)Xttd>`KPB{m{hJuK};+{fZVxj`=`vR;&e^ErWJ^UF|=lVsseNY>ZGp2tvbz_ zKq!PFXPO|i3<`O zJxe&xSE89|`|cOOY+k%im!8SBD5?MkBXa&Z@8JFM(+2S|NU8Bk&`Zy`$YE!#{!|tu zECThZuJbI^ojFr-Ur!+NxjQacebuXTsdjI|DUr%MajnW4n#ebmG^FXMUsZ9y1kyF~ zjMIFyJXD?~MS=GNM1L!ZYJoFjaTppEfkcb!j2mb*)5f-S7!B*SK3_0ikj&lu?A;{` zqN@A8!9DNbiuiv5T=`O;Q{xVGgF1#6wB{}w@KW(VkEt9YBlqdUOuEl^^^b4rOI1Zu zL+jw(u`c>$KBt=rgW~XQurMDnBXcvLd#;7|tsmB%IrWGE_oS3kK`HP6(xUCnA1pp8 z&JEg>g^606|CB=3N=QilY-=I}$nEVB>CuhefIneZSMDC0@D`y6GnNx_^&vk`o@Awou%tc{}m-Zq=(118Z<% zzUo|B&(d7fZ?b<0LoO+yQW#dm)$r_UoQ5OG-B@cqpnC>edtnwL@G5!o2u7U-eVnVZ zxDO4tqXi51Z=LOyQI0ltJ>--O@!;n=J?u;n67`bC@?^h}ewt~OH9MY@WzH1FKY+`6kjja)v zEcw_W!-$!hYTGtU$AYyXk2zCoCj5j&(CVQ4nV2Z{&U-F(fGx`AsnwHyDA;-z9BC)b zb_J^hD9&y7=H)TDoT1@dR4=w6b5zN+cQxJqfHr4MiVLwICGw_Opa}Uvo=xi3Jts8C z%Iw&*Y1V*;Bzfju@&$v}!)*z_4=hyzuILQS8 zKuUz4Bg<(=Pj9uXlxcaQ9ELKU;Co^Mx!%WWGTVrH-JQo&M|yBL=?)hq}fBj zQc$qBX-S||iMh@eStRLDJepGExS=+~Nf9WyF)4m-)70c^kHQi7^sPQmU)M{5=o}-KriDPIt z{BeLXqHygBNFX4C`hnV>YDfpv*kw=7*-$@losL9Kb~9iX{}BAuvbScAt+`?=;C9^0 zwMjTip!$e*my&2k^g)~P$`na$rYmWr)n$Gn$Z*-vsSRCN8{pRE*ZU3HKjeMc0yld_ zNcAP=5wDx8OP;6Di2?4(RdAL&SN17ZQHnI!;rKvY5zOGE%(TkvLgNJ>cdimBM10~ zFk_{K8ff_eZy-cCCSwlhL*eJWki5vA;czzYU}{0{O5HcDVm5i*Zwc>PBHnjmxx&$X zX<4xguHnYJJ`MeY+|%dBRPC>AqeU(`ti*lMJowXJ8zM;?YSI(-RTgSX6sDISUK)K6 z@AsPKQ@Nb3kuW#$7JIhiPP>UbN=8>a)QooiVw5n&FB%*3@s$cB{rWiHUu9&+3a#(^ z&Z4KN1eyIF$t6k+p(Jyu;Hj$qJaXXK#qglm>Us z;w=8&KhebYQf7Y}o6|_+DL5VVyzYJsmN*&>@xlAnibbYB7)6R3gby6h$>$ zavdgh;7IYs1moxN-Ge6^TuLrR-t;$q#jOlemY%O`72;Wo?1fU4Vefa-=bt336w0Jg z@Icgo3uABSe|78`(F5NPqVNAC>RzI`8o5QZ7f@srX8}+o4|)%%M1{$aO1RmcE+PsG zpU1pKix~otrBPa*gj9q&GY~6WB*YX*Q}#Y6<`AaIVIyw6aqlNKfnFc` zxaT+H>ejohO6`IZwJhxQqXns2sZvKP4vy2yiQ$dQCx~6hGwMNW#$gnTR`(I1qT$K?#{RPJHGGn9Uzgw(O)f)JYct8Rb_UE}QguZHYa3O9p7L|$>^@`RZxJ-~w*{=(1H#&xS+s4F`WE^e3@n$ni;$MF_i{M|goG6_FCJ2w|v>f(pJO62S4jKDsdpfwzFNz**XzjA)qBoYCk!_GedWX zf$%oB-9zsE#Cv6c+ESa>J#qTP<1^yOD-4Vd&*9?>b*sq6@C7hQ3q+j*-<7=XArat8 zOnlolK**Ce&tal=wu9Ub#2T`U<%xbKo=@>$H0o)%-M8cEY{)u5vtyhq0IS&5*>Jc| zO-VB5v>{m?FR!TCV4Z&!kan=t8T{`LXQN z&pmEuO~{U%G6BK-Qp>I!h-k_t0e)DT>tUv2OrKlB^tNN(ZS4HV7d?$^3`rnxE|k~f zTWC}W#KK3LNr+J(`uESKtZC@RRO{Vt8M4957%)5Z(ecSIFO&hXAFbh^^zkFsmj10g zKFS`K??DF{pr^Dmf9~GC-0|GR@waO?ozL`lyI+r*ofcNDuhp0J45x4zrllgpIBhtZ z$seVShK4nU=M_&}qL_ha>{S3M>##2ycNn=7c`CkY=M(lmT-&ptj99!qmNafL`OR~m zh_951Fsb-4`j7vL$UQ0Qs&%E%$y=uN8y8mf&7G|L*@X%s`bk5p!y(E>|E%eMWKt^3 zE)7sIxF&6GBQYCosF!Bh?0bE-S2RdCvSyxZKrs+T35Fk!>?q_zkE8+`4?=+EKdUFw z^^x$f`5gTQ&M@CfDwXhJ)kY-?M0ULFpL-CM-eC@2`fs?M&qEJH;R$Z$TIX#Z~; z_$7FRY0e*9rdIm1jSB{=I!f}XZn3e7Jb#RQv4g1~IVRMIGVJ=rx1=0r_?26krfl3$ z>ehDt%SV(5`0aA`1R?nmQXeIk9JAJz9&AOVtzo*mhP%t(59NT^qnFI@uuFZzK9}AF zTz?BY67@!2n#EB@QBYzpVn(1MhtugUetOnTU)Yp0S8Y4kyK-{Giu{cbb0}c6AQ4R@ z3S=ckP;>*KkzVqpWNhR_yqOB5MKe=h%C5*T&ru%}3?Jh;@NerkO1-6@Q+-XH+V0br ze6KQJu1o!Jc4`2kv+DHJX!0Zv$#1?$BFvaEjvx}P3^Sr78jw>iYXRa=4fKCngo9|i zko#2LS~Y$T@C1l)f87ea1APxiVO}IQz3yBL@@?7g%Q8SphD9T=x7KX-3&UJ_eOLeZ zXII=7yDA zV=I)^Q@6G z%T#A@{{ohU&DrmBT$!1&f`sc7E%CFu(!xx9P^iH5>Bg_UUh6>H z^=AEs8Cut;nrsRSndl@Nb4yOO+Qs&JO@~}#3(31{GPCnlclL84s6wgFoTX>xgPk(vEp-}?b+c{_Za_0^0c3q;|odTD>twf zcZ2s3J~#_^mXR+^g?UdjvbDtHZRYGry>pbR(Z?Lo3L_8VX}h(6WH_VDt(p8|Ti1Wi z5A-|^&(tpji+@(UamW=wwKi)kVWdmN8oh|W@(kV+s+2Wi#45i?#2M@HQDf~tzXDx| zR{c$o)0+=V&$)Ul~tUG}x~eh*(O19{{TK~0SyfCNgXVWZ;9)-k;nZtey z3}K=aSYUH*-(xHMI1YMQJD)zvn*g#b*Redkf6zHpBF0WB=Q2ffi&>Vim8iPBy~6^nlu9AEP0>w)gWVcyj`H4f zr%%frYPmC*G@|9K?VoOtwsB<0dTI10e~Gy%3_hBqOodK(|0mALKUV^4X#l8-w`oYu z_;az=g|aYS!t0T0ik6%#bc&RH{WB0CcR-9%RHps|10LG5mfFJViT`F?b(ih+-<+nT zP`gjwBgNtuqbRR?K(6FJRB=nzg_rHDUFH}w{@IoPC`83ieO<$XuOaG(8 z*UTFEh*(dt(!{7ow|b0LE_F4uu1VaVZ~t=ZDQpz+1|Nb{wWkkT`3dP`{|HWAN=^me zs{Uot9X~n}QD^hq>4-mMeVAt<6yPI1MJyS(n6=U(E2PG+KfGNZ|0j{<$g0<)FO=R8 zeAK&^^G-PU0SR<|BF{d|PtUlSTHq^|HaAp8Y1NQb{1kloJ|2Wu4^L3AXl!k7-9Tu! zF31$eUgD4q5%`@cKrhLUBTvK9t@AC4XWOFV088rqWmk7g;%(&Rx3t^G)eI>_4(ip% z>k2uU$G~gnoQ(>T$8nE5q))u!)fT1($`Et{n1ld4q6(l(p@z0%WMI$0_R-m6W*gjZ zA|Bg@lj%dcyEH~+?_Wmh)t z=2<{UP&GCT{FKWKjUa~1g8<=-1$`?Iq*EOimKtvtJ`%Auu0 zK&WkW@0()T+QRli$4v?W$l{E+*Xnybn@i2_i1aJ{TLd(3?X>-s>&x?(3<2oCOw!LN z*!8?<)Uv{)@*!u8VvX$Ebd13FdHIORdyv?O)z5N;O~A^^iZVZeL|7EJa|D`b@Kr1M zj|mVEMpPXCgrY#C$5UTA1A()2y4aO?i61dp+8VF^V5f%i5E#$kvZQ%%+YY|_+{EdR zX4-4y+%I=^mIoY#W(KbvoeMQFR_I8(SsUYem)O;7M zF*e;ua+eeUcNok073#}IINL+qAm`30Cjrbq(l@P|U*i{GoRZhjy{FKUwd)mj>-n1i`6wdv!lm|}n zCsP{vz~uJ(UwvrWNa$t7EXjy3?9Z;0;zKZIYemQtz-AdH3##XWPpqk4)vXfXP)%w& zf<5@<6Y*xO-;QAA+zloXE$d$Y>j852dX5adcNeuU-elqQBX$m}Zx;)8x{Ph^{;)!B z+JAHh25e6U@4&A@T$;(PEsiFU93u^{zj`Ni6*ZZNkJ)3;5hs+$s?bRy$hdSIO;>GkY+yr>awOdphNcemKf zVvWLP%aIe42OOvZbsd zmby+*$Mi+O4SZA5Jgc`wgQWR3RD5&1V>JC4H{P0Y&p`Q7ER3AoQALN#@ILXo0g3m& ze^VLU+!`6N7U6*s#JXF&tlC&v;qWK87$5g%nD^^5kJw!u8h^a=0$l)S?x`Pr=WgY? ze=@UT9H^H?dcfsP>v0Qx)gqur3Nr%t#NX(rURiW;`C5&W^gHUFnaJMqduaqCcELL^ zT6PLhYjX>mu2}MBNeX&f&iKAvT*Z)!KY1Vx&)FxVeft?^&uj-CuZtYh)PH2PrJ}BX zATG5hSk*rln1DCpBUud82D>I>QO)+7Y5MTe(q|EVpfwuJ9KFuX!op})p*KnQr$^=% zjCWIs5h9-DZ!Hyjbb(0XtIVqlZ3WdtifRfv3M;&W?W30&^CP~|Dd5&;<00;jshm94 z*2ewB3kX5CNq{E5WMg_7*Y)EzS)EfejE6UQ^dX-JCQK@@8rTLDn|r?+i5x1|TKzR2 zatH8_NzadIPEG?~yT_i)y7dHPSiYxnVw2j9G#B7@7k@mfExj8v+eRdD`Gmc-iyCz+ zkVKm&8~ccL|8%t4j0=e4UBW>bDmEfRLmC-^oBe!|Yul=daS)@hCO1>!>?Cne114Il`A(xXd+Xw*lY~aWdeYyC@*c~IOfLp0h`S1j0~N7c zj8T6dc@Nt!+3U9M*=O~gE{C6r)u=Eio%_-jUY?VXWUK)nhi655dp=1ypH7SysE89u z#pP&@CX%n^t#qJu6OPO*0fYGTUA-W6Cz!0R82v}(=>0uGkkt2EWB0Zdn=Hbr3-g%Z zK?DYNjP&d?q^TUOJqe6sBI$h2a5A3#2zE?GESjy@Gl!0cAjIfp&FcROsz1dP;pZT9 zyjMKTz@Y(ey{-)RnVL?+zsv5-nRT1K@I5RePjW{L(*a&%pF4t>Ql$BREQP(p56yAj zF9Yp7C2fnqUrQBN7Y5`6QNsQ#j@WK;O(+(zX~DJ)bW^n=m%r3s2kKr&TuQrinIcIO zMf+;4pl4o^;E`==v^?&pZI*w6KQjs3=q^%Wc{|0q08Rg3h4(;}!`RD8%Hlb~hh;vCxKwmJx$L z-siyZ<6GozrE@LPLd^1N#A`oQxSLK^L+zaMBu2DujK`xpGM1aj-1_00?~ReeLBM*| zM}me~`qy+C?3&2E5%M?_N&?Wucl`)`*Fs8P1!*~!#j$Fd0os`BYctF?6*oNoYL#zf z*<797BAK$E)4|q>z8xC;JuU3jx-5I1$_;dno3-%iD~Ray|EWrD&?1=2`vXv-`0M^n zMeCz6MM4G7$qcEp^vjRft%cEn$sVqhr8wdn)*%y=jq6d5v zilL0NQ|}8KlF*;W^+_bovNEU{lS0qabCAL)ph&!(7m+q+ILTEV zGsthB=_0i=W7|Q_2j2u3|FAAiKL9`Ce0L;FU{lHn$Kr^a{iS+*CAmxAn1}$55Av%c zXpr*CpzaZ$hOWZXmdmn=7Hn#fQ-FwG484Av!F`^Xwyy<9sLrGztMt+f$5}JCVEb=! zUE%gbx{SMI8!OK~q-!qw@=N?o-N7G~M?rmswhE8Y>tnNT^Og>E&?+h|-9Tdm0rxSC z$Acm&-r89-Xd;(i^Pf>?HZnqlK4_KAGP7@tp0Gl)SxlHZrac z-n1$wES!APl3}l8E$l_PY|{dZvSTaEA6=;C#T!K{Yn`nX68H-60x7#?602f`q(2Z0 z0%C?J2(ficI zDKD*j+{@$Jj6LU5{L3}E>K>#ct?Ko%Z5|E)#3vGd1B-w}r%;aPMIUC@ld#t_l_zc~ zOR!7iyS`V`)XC8r;(CgyNN${^Y4{M{TxdcT4{qy}y<{r}Fmh|ET(^-ACd|^pfckKA zTRNa&UbJvglQ=yf(;lSPSa0tT+#DMbsU-3-Lt;J}aF+qL+l6nT#K_G&R{J%NOlr05 z`&b=OPdLX4(UsB~c3ja4LswFcExGRuF+KR!N483ifI}Vy8@W@~dX4}O#}jW^5}H&^ zv1a;hwbXqT$YdSS#X95mn++h5a*Vm1m<{;hjwfBa*eV8hkeiD(^0JF750R!ql0!_j z#`DcWfNh%4j55u!|2DrpYWJGuPvfl%&9(&yxkPf0fQ%&c=ReXmaJ`{egqnIINRTYk zsP)MWG|T@5fen80JW;Xh&;k0#gZn15f13iFl3jcRBfc;BQw85kYAfQI;?zQmJt|rGVjAr1?6v z-^H?N6!CK%9N~Xa5S7OSeGk<1%wTTknRT&FUrWxW9;G`eIoBy5gvTSh69@f0pe*7s z3O6{}fAV%64QMEb$*WY|TnCvnO@FTJRefc1A6Yr;QXYb3^V+rMx}}4O_a!& zzPI~>{C|Hy=d)upQrpqPv}uz5VwCFUo|JSJn&1q@1nB)Ao_xS-|6d=~iPMGIX+T~a z7WeUk%IbmtD=i}OlNz}nw*GHG=`$<%;Yjx9IjlWVv^P9edQAJtTW8UPa@HVsyioCt z6die%uKj$Q;j+4&?BIoh+r?g1@)@w%}$^kpZAS23z z?m%S5;CdGh!-EjxjxeLn_7;+A2{pnt1Y|I?%}f*90&K4DC-*o*B-RpQvVfRe1wo}N zLYaO-BP%`XpLK4Wdf*T@a_x?b$g}cwYT$0Wm>n?qdSl^)+HkAfUN zu6}>!e5eA0Q*Yi`svt^YBsS95I}r^D$|B_<=&B2^ z!xTV>A__`z4*L~X$xkp0>-G9PoYPmymZCKJyge~@@Gq_z5)Ppgj=&*S5tM$I{UnpU zN6Cc`Y00y{`)hu7`-#(a;9>0UYGU7HXVrfz+_yDsu3EWm`+CP3PU(nsC~H^#*3_Cq z#ZR}i`MQ06Ai~@;=1f<5z5o994`2)&V)y)ugIJ9~<{aSQbLCu2zb;5TuY5EBBY`&Y znf6CVr)Ee`Pg^%Kl{O)U*68vj9Uc0qjibv`HnHCCRV;{xCJ1XU2>!WaFkd+ZGuMA~ z7jh#|LKFdgM_2t^2Nm{>E#>-+B~_~|cE-%0Px<5YsM0L$=K|aT`$PlWH5ZvB znLi@w(f@Ag+mpvu{!#ljEy<>I;Ff=wFxSTVJrWj3bt%9uQLm=~@xMoEOrcCUN9 zG2-j=ggMMGCAv7n<)6g>`G4SrxirA!?F{sg=uARTzY#w+v*)>s>enBWgJhUf?^e2l>uY-8V>W$U_rcWrNPZ_n+= z?beUmwd+d9=-3xqK^FFr@#Rp75F-B2s0oQAA~OBsEx9E6p1Tn-8A$Grrsv+i=bYYi z-uHRl^S-a*E|?K7=j8&!-cxJ@hwxcc_!YixzkwI9uwioX_QKG>Snq#$fP)<##6RMx zJ$M@~H}7fr1eu!j4b>m*e6{0{emA9MnQjXGr1+jJagUe1DQqSQ7t6W9(i|D7GKb#U zW@>fX9agOyUP`^9%Pw(iJ{64irQ;`Nu8yANW6}PZ>w{l#^DHO9{iwT_38MBtwq6AS zncuJfV{mmpi+>T+!IFn&~c2LL*c;|LGr z72aY~z!|+poTn!>6~UU`bu$ieBQ~PtyyLY3dnV_1fhF-}!q)-|=<@~mmffewz7DvG zOpc3?5H?twp5;I`b{Bs13Km7Yg(OS57|IAd*y(i0{bSM>Sl z#F=zQthv|BUKBmQ77rqwPKG#*^AFHbWj#BbaU((f}UBoSKMyCBHX*wdvjq%cPpS>f9^No z<6qSe3jeYSZ)IDHSiDzk$*UDNYTtnc(AH;40#4-p;ZVTG^?!JMoDXOGlp+A}0Sg6;N9^Ol765Wg0bVsR2HH&gz8V;7qfP5z zXcB?yaxRrFMy6gvSjFK>@c~MDpmQ4zYErHlx-@M6_NVb zFUcxoCuJ99-{!oW)0~sa`6c)LTw^YiJC*yhe6zen-YD;sv+`m2{mj_J=#Zwbxwr;5 zH_|nzA%CeGR4M!UAR$%`jnmS3p!Q&8oy|c@Zo#OL#9za%^zgxCe2$0g4QGbtBUhdxCNnlN z31e(6K8`z#W~1HWumEgnltwynW+an_d)0OI)qln6geI+0J}n{aqUIVN!o&XI(6z+n z@wr)a`O3L(25!gax=DJsP`v$5aZPMFtxSm}PXpDnRmhhjcUcKnk^Emq+$63i?2Mf7 zAlAiq0=i^4iI1d{BPY?d3u6^|eQhxfU``k7_5t!Z2?h=+1+_w;0c{a?lb^(-fXM~E z#(x3FDggMKuMj`Lha?U3gho^PtbQ#i7j-}^qa9{-W#wm98*O9k7}$Q$mY^bT4i7vl zh*fECOlLnu2sq@Y~@G7w17wj22l?=y;xrJ#5KtNm{HF9*wiIg1U0Zj$mJAaD9 z{#dv-7zw3Pi3G4AA9;_lE)`Aueek5g)X;Ps{#eS}k?8E};w)aIqyc3(@lvJsc1mNY zt!q`YET)iyH~Upe!U-5DZ<%H+4#ri!t!9T)DmUtNMW_Jn2NsW{>STbY!7gp!cpsoD zKvoH3NasPye*g}g%ya+%000000U7`R007KAqR#*T0074MGEV>i007Ze{Xuw~lg>{c zRh(mBX3}Gvz`)ADz|_UGhk=2i2SPJGU@&B4Vn6~73=HoD7~Z^v@dMIaQy3T-6yE=5 zdiPg|A&Ti8(>nzQhW zRE_7i`O3h}`~oP#a53z!6O8`%>^~bz3e!6VCI${51_A&>CJdE$oMT{QU|@RpSBN2s z`QN{1{|i}C7=R)upauZ5l?Ro0oGpjh zRkl{Qp05gATBjqtrm5=!#*Nbx-WgunY-ugb$BV(Ry>1W!9ON{AD^>Ta_1xcKz%J!?&|)~3*Vh4kp2L6RFT3G?+9}Q0d;a%ZQc?N?F58JO o00000PyhgY004NLv$_Gd0u!8LU}gY=|IG|W3|IgFC`19c08fY{N&o-= delta 19930 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 L00000$@C@C&Cd3` diff --git a/fonts/HTML-CSS/TeX/woff/MathJax_Main-Regular.woff b/fonts/HTML-CSS/TeX/woff/MathJax_Main-Regular.woff index 863f97d7947a7d0d029cef4b7b0a33c86e9f213c..b4520298f63b942b7c155cef62cc6884786fe5eb 100644 GIT binary patch delta 32223 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