From db3b0ef73117227dec277992f71cc3228c1620ee Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Sun, 14 Nov 2010 19:36:09 -0500 Subject: [PATCH 1/8] Allow jax files to be loaded in parallel rather than sequentially (need to synchronize output jax with modifications of element jax) --- mathjax/unpacked/MathJax.js | 31 ++++++++++++++++++-- mathjax/unpacked/jax/input/MathML/config.js | 1 - mathjax/unpacked/jax/input/TeX/config.js | 1 - mathjax/unpacked/jax/output/HTML-CSS/jax.js | 12 ++++++-- mathjax/unpacked/jax/output/NativeMML/jax.js | 12 ++++++-- 5 files changed, 46 insertions(+), 11 deletions(-) diff --git a/mathjax/unpacked/MathJax.js b/mathjax/unpacked/MathJax.js index e2990de07..d4a7a0a26 100644 --- a/mathjax/unpacked/MathJax.js +++ b/mathjax/unpacked/MathJax.js @@ -29,7 +29,7 @@ if (document.getElementById && document.childNodes && document.createElement) { if (!window.MathJax) {window.MathJax= {}} if (!MathJax.Hub) { // skip if already loaded -MathJax.version = "1.0.7"; +MathJax.version = "1.0.8"; /**********************************************************/ @@ -1684,12 +1684,33 @@ MathJax.Hub.Startup = { /***********************************/ BASE.InputJax = JAX.Subclass({ + elementJax: "mml", // the element jax to load for this input jax + Translate: function (element) { + // Make Translate produce an error message until the true one is loaded + this.constructor.prototype.Translate = this.noTranslate; + var queue = CALLBACK.Queue(); + // Load any needed the element jax + var jax = this.elementJax; if (!(jax instanceof Array)) {jax = [jax]} + for (var i = 0, m = jax.length; i < m; i++) { + var file = BASE.ElementJax.directory+"/"+jax[i]+"/jax.js"; + if (!this.require) {this.require = []} + else if (!(this.require instanceof Array)) {this.require = [this.require]}; + this.require.push(file); // so Startup will wait for it to be loaded + queue.Push(AJAX.Require(file)); + } + // Load the input jax + queue.Push(AJAX.Require(this.directory+"/jax.js")); + // Load the associated output jax + jax = HUB.config.outputJax["jax/"+jax[0]]; + if (jax) {queue.Push(AJAX.Require(jax[0].directory+"/jax.js"))} + return queue.Push({}); + }, Register: function (mimetype) { if (!BASE.Hub.config.inputJax) {HUB.config.inputJax = {}} HUB.config.inputJax[mimetype] = this; } },{ - version: "1.0", + version: "1.0.1", directory: JAX.directory+"/input", extensionDir: JAX.extensionDir }); @@ -1704,10 +1725,14 @@ MathJax.Hub.Startup = { if (!HUB.config.menuSettings.renderer) {HUB.config.menuSettings.renderer = this.id} } HUB.config.outputJax[mimetype].push(this); + // Make sure the element jax is loaded before Startup is called + if (!this.require) {this.require = []} + else if (!(this.require instanceof Array)) {this.require = [this.require]}; + this.require.push(BASE.ElementJax.directory+"/"+(mimetype.split(/\//)[1])+"/jax.js"); }, Remove: function (jax) {} },{ - version: "1.0", + version: "1.0.1", directory: JAX.directory+"/output", extensionDir: JAX.extensionDir, fontDir: ROOT+(BASE.isPacked?"":"/..")+"/fonts" diff --git a/mathjax/unpacked/jax/input/MathML/config.js b/mathjax/unpacked/jax/input/MathML/config.js index 08e455de7..60bce445f 100644 --- a/mathjax/unpacked/jax/input/MathML/config.js +++ b/mathjax/unpacked/jax/input/MathML/config.js @@ -28,7 +28,6 @@ MathJax.InputJax.MathML = MathJax.InputJax({ directory: MathJax.InputJax.directory + "/MathML", extensionDir: MathJax.InputJax.extensionDir + "/MathML", entityDir: MathJax.InputJax.directory + "/MathML/entities", - require: [MathJax.ElementJax.directory + "/mml/jax.js"], config: { useMathMLspacing: false // false means use TeX spacing, true means MML spacing diff --git a/mathjax/unpacked/jax/input/TeX/config.js b/mathjax/unpacked/jax/input/TeX/config.js index acfdcc9fc..6f0b389c2 100644 --- a/mathjax/unpacked/jax/input/TeX/config.js +++ b/mathjax/unpacked/jax/input/TeX/config.js @@ -27,7 +27,6 @@ MathJax.InputJax.TeX = MathJax.InputJax({ version: "1.0.3", directory: MathJax.InputJax.directory + "/TeX", extensionDir: MathJax.InputJax.extensionDir + "/TeX", - require: [MathJax.ElementJax.directory + "/mml/jax.js"], config: { TagSide: "right", diff --git a/mathjax/unpacked/jax/output/HTML-CSS/jax.js b/mathjax/unpacked/jax/output/HTML-CSS/jax.js index dad4d2c05..510d73338 100644 --- a/mathjax/unpacked/jax/output/HTML-CSS/jax.js +++ b/mathjax/unpacked/jax/output/HTML-CSS/jax.js @@ -23,7 +23,9 @@ * limitations under the License. */ -(function (MML,AJAX,HUB,HTMLCSS) { + +(function (AJAX,HUB,HTMLCSS) { + var MML; var FONTTEST = MathJax.Object.Subclass({ timeout: 5*1000, // timeout for loading web fonts @@ -179,7 +181,6 @@ }); HTMLCSS.Augment({ - config: { useOldImageData: true, // for now @@ -1138,6 +1139,10 @@ rfuzz: 0 // adjustment to rule placements in roots }); +MathJax.Hub.Register.StartupHook("mml Jax Ready",function () { + + MML = MathJax.ElementJax.mml; + MML.mbase.Augment({ toHTML: function (span) { var split = this.HTMLlineBreaks(); @@ -2082,6 +2087,7 @@ return span; } }); +}); // // Handle browser-specific setup @@ -2210,4 +2216,4 @@ HTMLCSS.loadComplete("jax.js"); -})(MathJax.ElementJax.mml, MathJax.Ajax, MathJax.Hub, MathJax.OutputJax["HTML-CSS"]); +})(MathJax.Ajax, MathJax.Hub, MathJax.OutputJax["HTML-CSS"]); diff --git a/mathjax/unpacked/jax/output/NativeMML/jax.js b/mathjax/unpacked/jax/output/NativeMML/jax.js index 772549db0..707a6d26b 100644 --- a/mathjax/unpacked/jax/output/NativeMML/jax.js +++ b/mathjax/unpacked/jax/output/NativeMML/jax.js @@ -22,8 +22,8 @@ * limitations under the License. */ -(function (MML,nMML,HUB,AJAX) { - var isMSIE = HUB.Browser.isMSIE; +(function (nMML,HUB,AJAX) { + var MML, isMSIE = HUB.Browser.isMSIE; nMML.Augment({ LEFTBUTTON: (isMSIE ? 1 : 0), // the event.button value for left button @@ -207,6 +207,10 @@ negativeveryverythickmathspace: "-.3889em" } }); + +MathJax.Hub.Register.StartupHook("mml Jax Ready",function () { + + MML = MathJax.ElementJax.mml; MML.mbase.Augment({ // @@ -435,9 +439,11 @@ }); }); +}); + if (HUB.config.menuSettings.zoom !== "None") {AJAX.Require("[MathJax]/extensions/MathZoom.js")} nMML.loadComplete("jax.js"); -})(MathJax.ElementJax.mml, MathJax.OutputJax.NativeMML, MathJax.Hub, MathJax.Ajax); +})(MathJax.OutputJax.NativeMML, MathJax.Hub, MathJax.Ajax); From 1b56b0602104142e97faee989c1fcb2ebaa3db7e Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Sun, 14 Nov 2010 19:42:52 -0500 Subject: [PATCH 2/8] Reformatting for new nesting due to synchronization with element jax --- mathjax/unpacked/jax/output/HTML-CSS/jax.js | 1828 +++++++++--------- mathjax/unpacked/jax/output/NativeMML/jax.js | 448 ++--- 2 files changed, 1138 insertions(+), 1138 deletions(-) diff --git a/mathjax/unpacked/jax/output/HTML-CSS/jax.js b/mathjax/unpacked/jax/output/HTML-CSS/jax.js index 510d73338..cb22988f2 100644 --- a/mathjax/unpacked/jax/output/HTML-CSS/jax.js +++ b/mathjax/unpacked/jax/output/HTML-CSS/jax.js @@ -1139,955 +1139,955 @@ rfuzz: 0 // adjustment to rule placements in roots }); -MathJax.Hub.Register.StartupHook("mml Jax Ready",function () { + MathJax.Hub.Register.StartupHook("mml Jax Ready",function () { - MML = MathJax.ElementJax.mml; - - MML.mbase.Augment({ - toHTML: function (span) { - var split = this.HTMLlineBreaks(); - if (split.length > 2) {return this.toHTMLmultiline(span,split)} - span = this.HTMLcreateSpan(span); if (this.type != "mrow") {span = this.HTMLhandleSize(span)} - for (var i = 0, m = this.data.length; i < m; i++) - {if (this.data[i]) {this.data[i].toHTML(span)}} - var stretchy = this.HTMLcomputeBBox(span); - var h = span.bbox.h, d = span.bbox.d; - for (i = 0, m = stretchy.length; i < m; i++) {stretchy[i].HTMLstretchV(span,h,d)} - if (stretchy.length) {this.HTMLcomputeBBox(span,true)} - this.HTMLhandleSpace(span); - this.HTMLhandleColor(span); - return span; - }, - HTMLlineBreaks: function () { - var split = [[0,this]]; - for (var i = 0, m = this.data.length; i < m; i++) { - if (this.data[i]) { - var lb = this.data[i].lineBreak(); - if (lb !== "none") { - var j = (lb === "after" ? i+1 : i); - if (split.length === 0 || split[split.length-1] !== j) - {split.push([j,this.data[i]])} else {split[split.length-1] = [j,this.data[i]]} - } - } - } - split.push([this.data.length,split[split.length-1][1]]); - return split; - }, - toHTMLmultiline: function (span) {MML.mbase.HTMLautoloadFile("multiline")}, - HTMLcomputeBBox: function (span,full,i,m) { - if (i == null) {i = 0}; if (m == null) {m = this.data.length} - var BBOX = span.bbox = {}, stretchy = []; - while (i < m) { - var core = this.data[i]; if (!core) continue; - if (!full && core.HTMLcanStretch("Vertical")) - {stretchy.push(core); core = (core.CoreMO()||core)} - this.HTMLcombineBBoxes(core,BBOX); i++; - } - this.HTMLcleanBBox(BBOX); - return stretchy; - }, - HTMLcombineBBoxes: function (core,BBOX) { - if (BBOX.w == null) {this.HTMLemptyBBox(BBOX)} - var child = core.HTMLspanElement(); if (!child || !child.bbox) return; - var bbox = child.bbox; - if (bbox.d > BBOX.d) {BBOX.d = bbox.d} - if (bbox.h > BBOX.h) {BBOX.h = bbox.h} - if (bbox.D != null && bbox.D > BBOX.D) {BBOX.D = bbox.D} - if (bbox.H != null && bbox.H > BBOX.H) {BBOX.H = bbox.H} - if (child.style.paddingLeft) {BBOX.w += parseFloat(child.style.paddingLeft)*(child.scale||1)} - if (BBOX.w + bbox.lw < BBOX.lw) {BBOX.lw = BBOX.w + bbox.lw} - if (BBOX.w + bbox.rw > BBOX.rw) {BBOX.rw = BBOX.w + bbox.rw} - BBOX.w += bbox.w; - if (child.style.paddingRight) {BBOX.w += parseFloat(child.style.paddingRight)*(child.scale||1)} - if (bbox.width) {BBOX.width = bbox.width} - }, - HTMLemptyBBox: function (BBOX) { - BBOX.h = BBOX.d = BBOX.H = BBOX.D = BBOX.rw = -HTMLCSS.BIGDIMEN; - BBOX.w = 0; BBOX.lw = HTMLCSS.BIGDIMEN; - return BBOX; - }, - HTMLcleanBBox: function (BBOX) { - if (BBOX.h === this.BIGDIMEN) - {BBOX.h = BBOX.d = BBOX.H = BBOX.D = BBOX.w = BBOX.rw = BBOX.lw = 0} - if (BBOX.D <= BBOX.d) {delete BBOX.D}; if (BBOX.H <= BBOX.h) {delete BBOX.H} - }, - HTMLzeroBBox: function () {return {h:0, d:0, w:0, lw: 0, rw:0}}, - HTMLcanStretch: function (direction) { - if (this.isEmbellished()) {return this.Core().HTMLcanStretch(direction)} - return false; - }, - HTMLstretchH: function (box,W) {return this.HTMLspanElement()}, - HTMLstretchV: function (box,h,d) {return this.HTMLspanElement()}, - HTMLnotEmpty: function (data) { - while (data) { - if ((data.type !== "mrow" && data.type !== "texatom") || - data.data.length > 1) {return true} - data = data.data[0]; - } - return false; - }, - - HTMLmeasureChild: function (n,box) { - if (this.data[n] != null) {HTMLCSS.Measured(this.data[n].toHTML(box),box)} - else {box.bbox = this.HTMLzeroBBox()} - }, + MML = MathJax.ElementJax.mml; - HTMLcreateSpan: function (span) { - if (this.spanID) { - var SPAN = this.HTMLspanElement(); - if (SPAN) { - while (SPAN.firstChild) {SPAN.removeChild(SPAN.firstChild)} - SPAN.bbox = {w:0, h:0, d:0, lw:0, rw:0}; - SPAN.scale = 1; SPAN.isMultChar = null; - SPAN.style.cssText = ""; - return SPAN; - } - } - if (this.href) {span = HTMLCSS.addElement(span,"a",{href:this.href})} - span = HTMLCSS.addElement(span,"span",{className: this.type}); - if (HTMLCSS.imgHeightBug) {span.style.display = "inline-block"} - if (this["class"] != null) {span.className += " "+this["class"]} - if (this.style) { - span.style.cssText = this.style; - if (span.style.fontSize) {this.mathsize = span.style.fontSize; span.style.fontSize = ""} - } - this.spanID = HTMLCSS.GetID(); - span.id = (this.id || "MathJax-Span-"+this.spanID) + HTMLCSS.idPostfix; - span.bbox = {w:0, h:0, d:0, lw:0, lr:0}; - if (this.href) {span.parentNode.bbox = span.bbox} - return span; - }, - HTMLspanElement: function () { - if (!this.spanID) {return null} - return document.getElementById((this.id||"MathJax-Span-"+this.spanID)+HTMLCSS.idPostfix); - }, + MML.mbase.Augment({ + toHTML: function (span) { + var split = this.HTMLlineBreaks(); + if (split.length > 2) {return this.toHTMLmultiline(span,split)} + span = this.HTMLcreateSpan(span); if (this.type != "mrow") {span = this.HTMLhandleSize(span)} + for (var i = 0, m = this.data.length; i < m; i++) + {if (this.data[i]) {this.data[i].toHTML(span)}} + var stretchy = this.HTMLcomputeBBox(span); + var h = span.bbox.h, d = span.bbox.d; + for (i = 0, m = stretchy.length; i < m; i++) {stretchy[i].HTMLstretchV(span,h,d)} + if (stretchy.length) {this.HTMLcomputeBBox(span,true)} + this.HTMLhandleSpace(span); + this.HTMLhandleColor(span); + return span; + }, + HTMLlineBreaks: function () { + var split = [[0,this]]; + for (var i = 0, m = this.data.length; i < m; i++) { + if (this.data[i]) { + var lb = this.data[i].lineBreak(); + if (lb !== "none") { + var j = (lb === "after" ? i+1 : i); + if (split.length === 0 || split[split.length-1] !== j) + {split.push([j,this.data[i]])} else {split[split.length-1] = [j,this.data[i]]} + } + } + } + split.push([this.data.length,split[split.length-1][1]]); + return split; + }, + toHTMLmultiline: function (span) {MML.mbase.HTMLautoloadFile("multiline")}, + HTMLcomputeBBox: function (span,full,i,m) { + if (i == null) {i = 0}; if (m == null) {m = this.data.length} + var BBOX = span.bbox = {}, stretchy = []; + while (i < m) { + var core = this.data[i]; if (!core) continue; + if (!full && core.HTMLcanStretch("Vertical")) + {stretchy.push(core); core = (core.CoreMO()||core)} + this.HTMLcombineBBoxes(core,BBOX); i++; + } + this.HTMLcleanBBox(BBOX); + return stretchy; + }, + HTMLcombineBBoxes: function (core,BBOX) { + if (BBOX.w == null) {this.HTMLemptyBBox(BBOX)} + var child = core.HTMLspanElement(); if (!child || !child.bbox) return; + var bbox = child.bbox; + if (bbox.d > BBOX.d) {BBOX.d = bbox.d} + if (bbox.h > BBOX.h) {BBOX.h = bbox.h} + if (bbox.D != null && bbox.D > BBOX.D) {BBOX.D = bbox.D} + if (bbox.H != null && bbox.H > BBOX.H) {BBOX.H = bbox.H} + if (child.style.paddingLeft) {BBOX.w += parseFloat(child.style.paddingLeft)*(child.scale||1)} + if (BBOX.w + bbox.lw < BBOX.lw) {BBOX.lw = BBOX.w + bbox.lw} + if (BBOX.w + bbox.rw > BBOX.rw) {BBOX.rw = BBOX.w + bbox.rw} + BBOX.w += bbox.w; + if (child.style.paddingRight) {BBOX.w += parseFloat(child.style.paddingRight)*(child.scale||1)} + if (bbox.width) {BBOX.width = bbox.width} + }, + HTMLemptyBBox: function (BBOX) { + BBOX.h = BBOX.d = BBOX.H = BBOX.D = BBOX.rw = -HTMLCSS.BIGDIMEN; + BBOX.w = 0; BBOX.lw = HTMLCSS.BIGDIMEN; + return BBOX; + }, + HTMLcleanBBox: function (BBOX) { + if (BBOX.h === this.BIGDIMEN) + {BBOX.h = BBOX.d = BBOX.H = BBOX.D = BBOX.w = BBOX.rw = BBOX.lw = 0} + if (BBOX.D <= BBOX.d) {delete BBOX.D}; if (BBOX.H <= BBOX.h) {delete BBOX.H} + }, + HTMLzeroBBox: function () {return {h:0, d:0, w:0, lw: 0, rw:0}}, + HTMLcanStretch: function (direction) { + if (this.isEmbellished()) {return this.Core().HTMLcanStretch(direction)} + return false; + }, + HTMLstretchH: function (box,W) {return this.HTMLspanElement()}, + HTMLstretchV: function (box,h,d) {return this.HTMLspanElement()}, + HTMLnotEmpty: function (data) { + while (data) { + if ((data.type !== "mrow" && data.type !== "texatom") || + data.data.length > 1) {return true} + data = data.data[0]; + } + return false; + }, - HTMLhandleVariant: function (span,variant,text) {HTMLCSS.handleVariant(span,variant,text)}, + HTMLmeasureChild: function (n,box) { + if (this.data[n] != null) {HTMLCSS.Measured(this.data[n].toHTML(box),box)} + else {box.bbox = this.HTMLzeroBBox()} + }, - HTMLhandleSize: function (span) { - if (!span.scale) { - span.scale = this.HTMLgetScale(); - if (span.scale !== 1) {span.style.fontSize = HTMLCSS.Percent(span.scale)} - } - return span; - }, + HTMLcreateSpan: function (span) { + if (this.spanID) { + var SPAN = this.HTMLspanElement(); + if (SPAN) { + while (SPAN.firstChild) {SPAN.removeChild(SPAN.firstChild)} + SPAN.bbox = {w:0, h:0, d:0, lw:0, rw:0}; + SPAN.scale = 1; SPAN.isMultChar = null; + SPAN.style.cssText = ""; + return SPAN; + } + } + if (this.href) {span = HTMLCSS.addElement(span,"a",{href:this.href})} + span = HTMLCSS.addElement(span,"span",{className: this.type}); + if (HTMLCSS.imgHeightBug) {span.style.display = "inline-block"} + if (this["class"] != null) {span.className += " "+this["class"]} + if (this.style) { + span.style.cssText = this.style; + if (span.style.fontSize) {this.mathsize = span.style.fontSize; span.style.fontSize = ""} + } + this.spanID = HTMLCSS.GetID(); + span.id = (this.id || "MathJax-Span-"+this.spanID) + HTMLCSS.idPostfix; + span.bbox = {w:0, h:0, d:0, lw:0, lr:0}; + if (this.href) {span.parentNode.bbox = span.bbox} + return span; + }, + HTMLspanElement: function () { + if (!this.spanID) {return null} + return document.getElementById((this.id||"MathJax-Span-"+this.spanID)+HTMLCSS.idPostfix); + }, - HTMLhandleColor: function (span) { - var values = this.getValues("mathcolor","color"); - if (this.mathbackground) {values.mathbackground = this.mathbackground} - if (this.background) {values.background = this.background} - // @@@ FIXME: handle border as well? - if (this.style && span.style.backgroundColor) { - values.mathbackground = span.style.backgroundColor; - span.style.backgroundColor = "transparent"; - } - if (values.color && !this.mathcolor) {values.mathcolor = values.color} - if (values.background && !this.mathbackground) {values.mathbackground = values.background} - if (values.mathcolor) {span.style.color = values.mathcolor} - if (values.mathbackground && values.mathbackground !== MML.COLOR.TRANSPARENT) { - var dd = 1/HTMLCSS.em, lW = 0, rW = 0; - if (this.isToken) {lW = span.bbox.lw; rW = span.bbox.rw - span.bbox.w} - if (span.style.paddingLeft !== "") {lW += parseFloat(span.style.paddingLeft)*(span.scale||1)} - if (span.style.paddingRight !== "") {rW -= parseFloat(span.style.paddingRight)*(span.scale||1)} - var W = Math.max(0,HTMLCSS.getW(span) + (HTMLCSS.PaddingWidthBug ? 0 : rW - lW)); - if (HTMLCSS.msieCharPaddingWidthBug && span.style.paddingLeft !== "") - {W += parseFloat(span.style.paddingLeft)*(span.scale||1)} - var H = span.bbox.h + span.bbox.d, D = -span.bbox.d; - if (W > 0) {W += 2*dd; lW -= dd}; if (H > 0) {H += 2*dd; D -= dd}; rW = -W-lW; - var frame = HTMLCSS.Element("span",{id:"MathJax-Color-"+this.spanID+HTMLCSS.idPostfix, - style:{display:"inline-block", backgroundColor:values.mathbackground, - width: HTMLCSS.Em(W), height:HTMLCSS.Em(H), verticalAlign: HTMLCSS.Em(D), - marginLeft: HTMLCSS.Em(lW), marginRight: HTMLCSS.Em(rW)} - }); - if (HTMLCSS.msieInlineBlockAlignBug) { - frame.style.position = "relative"; frame.style.width = frame.style.height = 0; - frame.style.verticalAlign = frame.style.marginLeft = frame.style.marginRight = ""; - HTMLCSS.placeBox(HTMLCSS.addElement(frame,"span",{ - noAdjust: true, - style: {display:"inline-block", position:"absolute", overflow:"hidden", - width: HTMLCSS.Em(W), height: HTMLCSS.Em(H), - background: values.mathbackground} - }),lW,span.bbox.h+dd); - } - span.parentNode.insertBefore(frame,span); - return frame; - } - return null; - }, - HTMLremoveColor: function () { - var color = document.getElementById("MathJax-Color-"+this.spanID+HTMLCSS.idPostfix); - if (color) {color.parentNode.removeChild(color)} - }, + HTMLhandleVariant: function (span,variant,text) {HTMLCSS.handleVariant(span,variant,text)}, - HTMLhandleSpace: function (span) { - if (this.useMMLspacing) { - if (this.type !== "mo") return; - var values = this.getValues("scriptlevel","lspace","rspace"); - if (values.scriptlevel <= 0 || this.hasValue("lspace") || this.hasValue("rspace")) { - values.lspace = Math.max(0,HTMLCSS.length2em(values.lspace)); - values.rspace = Math.max(0,HTMLCSS.length2em(values.rspace)); - var core = this, parent = this.Parent(); - while (parent && parent.isEmbellished() && parent.Core() === core) - {core = parent; parent = parent.Parent(); span = core.HTMLspanElement()} - if (values.lspace) {span.style.paddingLeft = HTMLCSS.Em(values.lspace)} - if (values.rspace) {span.style.paddingRight = HTMLCSS.Em(values.rspace)} - } - } else { - var space = this.texSpacing(); - if (space !== "") { - space = HTMLCSS.length2em(space)/(span.scale||1); - if (span.style.paddingLeft) {space += parseFloat(span.style.paddingLeft)} - span.style.paddingLeft = HTMLCSS.Em(space); - } - } - }, + HTMLhandleSize: function (span) { + if (!span.scale) { + span.scale = this.HTMLgetScale(); + if (span.scale !== 1) {span.style.fontSize = HTMLCSS.Percent(span.scale)} + } + return span; + }, - HTMLgetScale: function () { - var scale = 1, values = this.getValues("mathsize","scriptlevel","fontsize","scriptminsize"); - if (this.style) { - var span = this.HTMLspanElement(); - if (span.style.fontSize != "") {values.fontsize = span.style.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 = HTMLCSS.length2em(values.scriptminsize); - if (scale < values.scriptminsize) {scale = values.scriptminsize} - } - scale *= HTMLCSS.length2em(values.mathsize); - return scale; - }, + HTMLhandleColor: function (span) { + var values = this.getValues("mathcolor","color"); + if (this.mathbackground) {values.mathbackground = this.mathbackground} + if (this.background) {values.background = this.background} + // @@@ FIXME: handle border as well? + if (this.style && span.style.backgroundColor) { + values.mathbackground = span.style.backgroundColor; + span.style.backgroundColor = "transparent"; + } + if (values.color && !this.mathcolor) {values.mathcolor = values.color} + if (values.background && !this.mathbackground) {values.mathbackground = values.background} + if (values.mathcolor) {span.style.color = values.mathcolor} + if (values.mathbackground && values.mathbackground !== MML.COLOR.TRANSPARENT) { + var dd = 1/HTMLCSS.em, lW = 0, rW = 0; + if (this.isToken) {lW = span.bbox.lw; rW = span.bbox.rw - span.bbox.w} + if (span.style.paddingLeft !== "") {lW += parseFloat(span.style.paddingLeft)*(span.scale||1)} + if (span.style.paddingRight !== "") {rW -= parseFloat(span.style.paddingRight)*(span.scale||1)} + var W = Math.max(0,HTMLCSS.getW(span) + (HTMLCSS.PaddingWidthBug ? 0 : rW - lW)); + if (HTMLCSS.msieCharPaddingWidthBug && span.style.paddingLeft !== "") + {W += parseFloat(span.style.paddingLeft)*(span.scale||1)} + var H = span.bbox.h + span.bbox.d, D = -span.bbox.d; + if (W > 0) {W += 2*dd; lW -= dd}; if (H > 0) {H += 2*dd; D -= dd}; rW = -W-lW; + var frame = HTMLCSS.Element("span",{id:"MathJax-Color-"+this.spanID+HTMLCSS.idPostfix, + style:{display:"inline-block", backgroundColor:values.mathbackground, + width: HTMLCSS.Em(W), height:HTMLCSS.Em(H), verticalAlign: HTMLCSS.Em(D), + marginLeft: HTMLCSS.Em(lW), marginRight: HTMLCSS.Em(rW)} + }); + if (HTMLCSS.msieInlineBlockAlignBug) { + frame.style.position = "relative"; frame.style.width = frame.style.height = 0; + frame.style.verticalAlign = frame.style.marginLeft = frame.style.marginRight = ""; + HTMLCSS.placeBox(HTMLCSS.addElement(frame,"span",{ + noAdjust: true, + style: {display:"inline-block", position:"absolute", overflow:"hidden", + width: HTMLCSS.Em(W), height: HTMLCSS.Em(H), + background: values.mathbackground} + }),lW,span.bbox.h+dd); + } + span.parentNode.insertBefore(frame,span); + return frame; + } + return null; + }, + HTMLremoveColor: function () { + var color = document.getElementById("MathJax-Color-"+this.spanID+HTMLCSS.idPostfix); + if (color) {color.parentNode.removeChild(color)} + }, - HTMLgetVariant: function () { - var values = this.getValues("mathvariant","fontfamily","fontweight","fontstyle"); - if (this.style) { - var span = this.HTMLspanElement(); - if (span.style.fontFamily) {values.fontfamily = span.style.fontFamily} - if (span.style.fontWeight) {values.fontweight = span.style.fontWeight} - if (span.style.fontStyle) {values.fontStyle = span.style.fontStyle} - } - var variant = values.mathvariant; if (this.variantForm) {variant = "-"+HTMLCSS.fontInUse+"-variant"} - if (values.fontfamily && !this.mathvariant) { - if (!values.fontweight && values.mathvariant.match(/bold/)) {values.fontweight = "bold"} - if (!values.fontstyle && values.mathvariant.match(/italic/)) {values.fontstyle = "italic"} - return {FONTS:[], fonts:[], noRemap:true, - defaultFont: {family:values.fontfamily, style:values.fontstyle, weight:values.fontweight}}; - } - if (values.fontweight === "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.fontweight === "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.fontstyle === "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.fontstyle === "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; - } - return HTMLCSS.FONTDATA.VARIANT[variant]; - } - },{ - HTMLautoload: function () { - var file = HTMLCSS.autoloadDir+"/"+this.type+".js"; - HUB.RestartAfter(AJAX.Require(file)); - }, - HTMLautoloadFile: function (name) { - var file = HTMLCSS.autoloadDir+"/"+name+".js"; - HUB.RestartAfter(AJAX.Require(file)); - }, + HTMLhandleSpace: function (span) { + if (this.useMMLspacing) { + if (this.type !== "mo") return; + var values = this.getValues("scriptlevel","lspace","rspace"); + if (values.scriptlevel <= 0 || this.hasValue("lspace") || this.hasValue("rspace")) { + values.lspace = Math.max(0,HTMLCSS.length2em(values.lspace)); + values.rspace = Math.max(0,HTMLCSS.length2em(values.rspace)); + var core = this, parent = this.Parent(); + while (parent && parent.isEmbellished() && parent.Core() === core) + {core = parent; parent = parent.Parent(); span = core.HTMLspanElement()} + if (values.lspace) {span.style.paddingLeft = HTMLCSS.Em(values.lspace)} + if (values.rspace) {span.style.paddingRight = HTMLCSS.Em(values.rspace)} + } + } else { + var space = this.texSpacing(); + if (space !== "") { + space = HTMLCSS.length2em(space)/(span.scale||1); + if (span.style.paddingLeft) {space += parseFloat(span.style.paddingLeft)} + span.style.paddingLeft = HTMLCSS.Em(space); + } + } + }, - HTMLstretchH: function (box,w) { - this.HTMLremoveColor(); - return this.toHTML(box,w); - }, + HTMLgetScale: function () { + var scale = 1, values = this.getValues("mathsize","scriptlevel","fontsize","scriptminsize"); + if (this.style) { + var span = this.HTMLspanElement(); + if (span.style.fontSize != "") {values.fontsize = span.style.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 = HTMLCSS.length2em(values.scriptminsize); + if (scale < values.scriptminsize) {scale = values.scriptminsize} + } + scale *= HTMLCSS.length2em(values.mathsize); + return scale; + }, - HTMLstretchV: function (box,h,d) { - this.HTMLremoveColor(); - return this.toHTML(box,h,d); - } - }); - - MML.chars.Augment({ - toHTML: function (span,variant) { - this.HTMLhandleVariant(span,variant,this.data.join("").replace(/[\u2061-\u2064]/g,"")); // remove invisibles - } - }); - MML.entity.Augment({ - toHTML: function (span,variant) { - this.HTMLhandleVariant(span,variant,this.toString().replace(/[\u2061-\u2064]/g,"")); // remove invisibles - } - }); - - MML.mi.Augment({ - toHTML: function (span) { - span = this.HTMLhandleSize(this.HTMLcreateSpan(span)); span.bbox = null; - var variant = this.HTMLgetVariant(); - for (var i = 0, m = this.data.length; i < m; i++) - {if (this.data[i]) {this.data[i].toHTML(span,variant)}} - if (!span.bbox) {span.bbox = {w:0, h:0, d:0, rw:0, lw:0}} - if (this.data.join("").length !== 1) {delete span.bbox.skew} - this.HTMLhandleSpace(span); - this.HTMLhandleColor(span); - return span; - } - }); - - MML.mn.Augment({ - toHTML: function (span) { - span = this.HTMLhandleSize(this.HTMLcreateSpan(span)); span.bbox = null; - var variant = this.HTMLgetVariant(); - for (var i = 0, m = this.data.length; i < m; i++) - {if (this.data[i]) {this.data[i].toHTML(span,variant)}} - if (!span.bbox) {span.bbox = {w:0, h:0, d:0, rw:0, lw:0}} - if (this.data.join("").length !== 1) {delete span.bbox.skew} - this.HTMLhandleSpace(span); - this.HTMLhandleColor(span); - return span; - } - }); - - MML.mo.Augment({ - toHTML: function (span) { - span = this.HTMLhandleSize(this.HTMLcreateSpan(span)); - if (this.data.length == 0) {return span} else {span.bbox = null} - var text = this.data.join(""); - var variant = this.HTMLgetVariant(); - var values = this.getValues("largeop","displaystyle"); - if (values.largeop) - {variant = HTMLCSS.FONTDATA.VARIANT[values.displaystyle ? "-largeOp" : "-smallOp"]} - for (var i = 0, m = this.data.length; i < m; i++) - {if (this.data[i]) {this.data[i].toHTML(span,variant)}} - if (!span.bbox) {span.bbox = {w:0, h:0, d:0, rw:0, lw:0}} - if (text.length !== 1) {delete span.bbox.skew} - if (HTMLCSS.AccentBug && span.bbox.w === 0 && text.length === 1 && span.firstChild) { - // Handle combining characters by adding a non-breaking space and removing that width - span.firstChild.nodeValue += HTMLCSS.NBSP; - HTMLCSS.createSpace(span,0,0,-span.offsetWidth/HTMLCSS.em); + HTMLgetVariant: function () { + var values = this.getValues("mathvariant","fontfamily","fontweight","fontstyle"); + if (this.style) { + var span = this.HTMLspanElement(); + if (span.style.fontFamily) {values.fontfamily = span.style.fontFamily} + if (span.style.fontWeight) {values.fontweight = span.style.fontWeight} + if (span.style.fontStyle) {values.fontStyle = span.style.fontStyle} + } + var variant = values.mathvariant; if (this.variantForm) {variant = "-"+HTMLCSS.fontInUse+"-variant"} + if (values.fontfamily && !this.mathvariant) { + if (!values.fontweight && values.mathvariant.match(/bold/)) {values.fontweight = "bold"} + if (!values.fontstyle && values.mathvariant.match(/italic/)) {values.fontstyle = "italic"} + return {FONTS:[], fonts:[], noRemap:true, + defaultFont: {family:values.fontfamily, style:values.fontstyle, weight:values.fontweight}}; + } + if (values.fontweight === "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.fontweight === "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.fontstyle === "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.fontstyle === "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; + } + return HTMLCSS.FONTDATA.VARIANT[variant]; } - if (values.largeop) { - var p = (span.bbox.h - span.bbox.d)/2 - HTMLCSS.TeX.axis_height*span.scale; - if (HTMLCSS.safariVerticalAlignBug && span.lastChild.nodeName === "IMG") { - span.lastChild.style.verticalAlign = - HTMLCSS.Em(parseFloat(span.lastChild.style.verticalAlign||0)/HTMLCSS.em-p/span.scale); - } else if (HTMLCSS.konquerorVerticalAlignBug && span.lastChild.nodeName === "IMG") { - span.style.position = "relative"; - span.lastChild.style.position="relative"; - span.lastChild.style.top = HTMLCSS.Em(p/span.scale); - } else { - span.style.verticalAlign = HTMLCSS.Em(-p/span.scale); - } - span.bbox.h -= p; span.bbox.d += p; - if (span.bbox.rw > span.bbox.w) { - span.bbox.ic = span.bbox.rw-span.bbox.w; - HTMLCSS.createBlank(span,span.bbox.ic); - span.bbox.w = span.bbox.rw; - } - } - this.HTMLhandleSpace(span); - this.HTMLhandleColor(span); - return span; - }, - HTMLcanStretch: function (direction) { - if (!this.Get("stretchy")) {return false} - var c = this.data.join(""); - if (c.length > 1) {return false} - c = HTMLCSS.FONTDATA.DELIMITERS[c.charCodeAt(0)]; - return (c && c.dir == direction.substr(0,1)); - }, - HTMLstretchV: function (box,h,d) { - this.HTMLremoveColor(); - var values = this.getValues("symmetric","maxsize","minsize"); - var span = this.HTMLspanElement(), H; - var axis = HTMLCSS.TeX.axis_height, scale = span.scale; - if (values.symmetric) {H = 2*Math.max(h-axis,d+axis)} else {H = h + d} - values.maxsize = HTMLCSS.length2em(values.maxsize,span.bbox.h+span.bbox.d); - values.minsize = HTMLCSS.length2em(values.minsize,span.bbox.h+span.bbox.d); - H = Math.max(values.minsize,Math.min(values.maxsize,H)); - span = this.HTMLcreateSpan(box); // clear contents and attributes - HTMLCSS.createDelimiter(span,this.data.join("").charCodeAt(0),H,scale); - if (values.symmetric) {H = (span.bbox.h + span.bbox.d)/2 + axis} - else {H = (span.bbox.h + span.bbox.d) * h/(h + d)} - HTMLCSS.positionDelimiter(span,H); - this.HTMLhandleSpace(span); // add in lspace/rspace, if any - this.HTMLhandleColor(span); - return span; - }, - HTMLstretchH: function (box,W) { - this.HTMLremoveColor(); - var values = this.getValues("maxsize","minsize","mathvariant","fontweight"); - if (values.fontweight === "bold" && !this.mathvariant) {values.mathvariant = MML.VARIANT.BOLD} - var span = this.HTMLspanElement(), scale = span.scale; - values.maxsize = HTMLCSS.length2em(values.maxsize,span.bbox.w); - values.minsize = HTMLCSS.length2em(values.minsize,span.bbox.w); - W = Math.max(values.minsize,Math.min(values.maxsize,W)); - span = this.HTMLcreateSpan(box); // clear contents and attributes - HTMLCSS.createDelimiter(span,this.data.join("").charCodeAt(0),W,scale,values.mathvariant); - this.HTMLhandleSpace(span); // add in lspace/rspace, if any - this.HTMLhandleColor(span); - return span; - } - }); + },{ + HTMLautoload: function () { + var file = HTMLCSS.autoloadDir+"/"+this.type+".js"; + HUB.RestartAfter(AJAX.Require(file)); + }, + HTMLautoloadFile: function (name) { + var file = HTMLCSS.autoloadDir+"/"+name+".js"; + HUB.RestartAfter(AJAX.Require(file)); + }, - MML.mtext.Augment({ - toHTML: function (span) { - span = this.HTMLhandleSize(this.HTMLcreateSpan(span)); span.bbox = null; - if (this.Parent().type === "merror") { - // Avoid setting the font style for error text - HTMLCSS.addText(span,this.data.join("")); - var HD = HTMLCSS.getHD(span), W = HTMLCSS.getW(span); - span.bbox = {h: HD.h, d: HD.d, w: W, lw: 0, rw: W}; - } else { - var variant = this.HTMLgetVariant(); - for (var i = 0, m = this.data.length; i < m; i++) - {if (this.data[i]) {this.data[i].toHTML(span,variant)}} - if (!span.bbox) {span.bbox = {w:0, h:0, d:0, rw:0, lw:0}} - if (this.data.join("").length !== 1) {delete span.bbox.skew} - } - this.HTMLhandleSpace(span); - this.HTMLhandleColor(span); - return span; - } - }); + HTMLstretchH: function (box,w) { + this.HTMLremoveColor(); + return this.toHTML(box,w); + }, - MML.ms.Augment({toHTML: MML.mbase.HTMLautoload}); + HTMLstretchV: function (box,h,d) { + this.HTMLremoveColor(); + return this.toHTML(box,h,d); + } + }); - MML.mglyph.Augment({toHTML: MML.mbase.HTMLautoload}); + MML.chars.Augment({ + toHTML: function (span,variant) { + this.HTMLhandleVariant(span,variant,this.data.join("").replace(/[\u2061-\u2064]/g,"")); // remove invisibles + } + }); + MML.entity.Augment({ + toHTML: function (span,variant) { + this.HTMLhandleVariant(span,variant,this.toString().replace(/[\u2061-\u2064]/g,"")); // remove invisibles + } + }); - MML.mspace.Augment({ - toHTML: function (span) { - span = this.HTMLhandleSize(this.HTMLcreateSpan(span)); - var values = this.getValues("height","depth","width"); - values.mathbackground = this.mathbackground; - if (this.background && !this.mathbackground) {values.mathbackground = this.background} - var h = HTMLCSS.length2em(values.height), d = HTMLCSS.length2em(values.depth), - w = HTMLCSS.length2em(values.width); - HTMLCSS.createSpace(span,h,d,w,values.mathbackground); - return span; - } - }); + MML.mi.Augment({ + toHTML: function (span) { + span = this.HTMLhandleSize(this.HTMLcreateSpan(span)); span.bbox = null; + var variant = this.HTMLgetVariant(); + for (var i = 0, m = this.data.length; i < m; i++) + {if (this.data[i]) {this.data[i].toHTML(span,variant)}} + if (!span.bbox) {span.bbox = {w:0, h:0, d:0, rw:0, lw:0}} + if (this.data.join("").length !== 1) {delete span.bbox.skew} + this.HTMLhandleSpace(span); + this.HTMLhandleColor(span); + return span; + } + }); - MML.mphantom.Augment({ - toHTML: function (span,HW,D) { - span = this.HTMLcreateSpan(span); - if (this.data[0] != null) { - var box = HTMLCSS.Measured(this.data[0].toHTML(span),span); - if (D != null) {HTMLCSS.Remeasured(this.data[0].HTMLstretchV(span,HW,D),span)} - else if (HW != null) {HTMLCSS.Remeasured(this.data[0].HTMLstretchH(span,HW),span)} - span.bbox = {w: box.bbox.w, h: box.bbox.h, d: box.bbox.d, lw: 0, rw: 0}; - for (var i = 0, m = span.childNodes.length; i < m; i++) - {span.childNodes[i].style.visibility = "hidden"} + MML.mn.Augment({ + toHTML: function (span) { + span = this.HTMLhandleSize(this.HTMLcreateSpan(span)); span.bbox = null; + var variant = this.HTMLgetVariant(); + for (var i = 0, m = this.data.length; i < m; i++) + {if (this.data[i]) {this.data[i].toHTML(span,variant)}} + if (!span.bbox) {span.bbox = {w:0, h:0, d:0, rw:0, lw:0}} + if (this.data.join("").length !== 1) {delete span.bbox.skew} + this.HTMLhandleSpace(span); + this.HTMLhandleColor(span); + return span; } - this.HTMLhandleSpace(span); - this.HTMLhandleColor(span); - return span; - }, - HTMLstretchH: MML.mbase.HTMLstretchH, - HTMLstretchV: MML.mbase.HTMLstretchV - }); + }); - MML.mpadded.Augment({ - toHTML: function (span,HW,D) { - span = this.HTMLcreateSpan(span); - if (this.data[0] != null) { - var stack = HTMLCSS.createStack(span,true); - var box = HTMLCSS.createBox(stack); - HTMLCSS.Measured(this.data[0].toHTML(box),box); - if (D != null) {HTMLCSS.Remeasured(this.data[0].HTMLstretchV(box,HW,D),box)} - else if (HW != null) {HTMLCSS.Remeasured(this.data[0].HTMLstretchH(box,HW),box)} - var values = this.getValues("height","depth","width","lspace","voffset"), x = 0, y = 0; - if (values.lspace) {x = this.HTMLlength2em(box,values.lspace)} - if (values.voffset) {y = this.HTMLlength2em(box,values.voffset)} - HTMLCSS.placeBox(box,x,y); - span.bbox = { - h: box.bbox.h, d: box.bbox.d, w: box.bbox.w, - lw: Math.min(0,box.bbox.lw+x), rw: Math.max(box.bbox.w,box.bbox.rw+x), - H: Math.max((box.bbox.H == null ? -HTMLCSS.BIGDIMEN : box.bbox.H),box.bbox.h+y), - D: Math.max((box.bbox.D == null ? -HTMLCSS.BIGDIMEN : box.bbox.D),box.bbox.d-y) - }; - if (values.height !== "") {span.bbox.h = this.HTMLlength2em(box,values.height,"h",0)} - if (values.depth !== "") {span.bbox.d = this.HTMLlength2em(box,values.depth,"d",0)} - if (values.width !== "") {span.bbox.w = this.HTMLlength2em(box,values.width,"w",0)} - if (span.bbox.H <= span.bbox.h) {delete span.bbox.H} - if (span.bbox.D <= span.bbox.d) {delete span.bbox.D} - HTMLCSS.setStackWidth(stack,span.bbox.w); + MML.mo.Augment({ + toHTML: function (span) { + span = this.HTMLhandleSize(this.HTMLcreateSpan(span)); + if (this.data.length == 0) {return span} else {span.bbox = null} + var text = this.data.join(""); + var variant = this.HTMLgetVariant(); + var values = this.getValues("largeop","displaystyle"); + if (values.largeop) + {variant = HTMLCSS.FONTDATA.VARIANT[values.displaystyle ? "-largeOp" : "-smallOp"]} + for (var i = 0, m = this.data.length; i < m; i++) + {if (this.data[i]) {this.data[i].toHTML(span,variant)}} + if (!span.bbox) {span.bbox = {w:0, h:0, d:0, rw:0, lw:0}} + if (text.length !== 1) {delete span.bbox.skew} + if (HTMLCSS.AccentBug && span.bbox.w === 0 && text.length === 1 && span.firstChild) { + // Handle combining characters by adding a non-breaking space and removing that width + span.firstChild.nodeValue += HTMLCSS.NBSP; + HTMLCSS.createSpace(span,0,0,-span.offsetWidth/HTMLCSS.em); + } + if (values.largeop) { + var p = (span.bbox.h - span.bbox.d)/2 - HTMLCSS.TeX.axis_height*span.scale; + if (HTMLCSS.safariVerticalAlignBug && span.lastChild.nodeName === "IMG") { + span.lastChild.style.verticalAlign = + HTMLCSS.Em(parseFloat(span.lastChild.style.verticalAlign||0)/HTMLCSS.em-p/span.scale); + } else if (HTMLCSS.konquerorVerticalAlignBug && span.lastChild.nodeName === "IMG") { + span.style.position = "relative"; + span.lastChild.style.position="relative"; + span.lastChild.style.top = HTMLCSS.Em(p/span.scale); + } else { + span.style.verticalAlign = HTMLCSS.Em(-p/span.scale); + } + span.bbox.h -= p; span.bbox.d += p; + if (span.bbox.rw > span.bbox.w) { + span.bbox.ic = span.bbox.rw-span.bbox.w; + HTMLCSS.createBlank(span,span.bbox.ic); + span.bbox.w = span.bbox.rw; + } + } + this.HTMLhandleSpace(span); + this.HTMLhandleColor(span); + return span; + }, + HTMLcanStretch: function (direction) { + if (!this.Get("stretchy")) {return false} + var c = this.data.join(""); + if (c.length > 1) {return false} + c = HTMLCSS.FONTDATA.DELIMITERS[c.charCodeAt(0)]; + return (c && c.dir == direction.substr(0,1)); + }, + HTMLstretchV: function (box,h,d) { + this.HTMLremoveColor(); + var values = this.getValues("symmetric","maxsize","minsize"); + var span = this.HTMLspanElement(), H; + var axis = HTMLCSS.TeX.axis_height, scale = span.scale; + if (values.symmetric) {H = 2*Math.max(h-axis,d+axis)} else {H = h + d} + values.maxsize = HTMLCSS.length2em(values.maxsize,span.bbox.h+span.bbox.d); + values.minsize = HTMLCSS.length2em(values.minsize,span.bbox.h+span.bbox.d); + H = Math.max(values.minsize,Math.min(values.maxsize,H)); + span = this.HTMLcreateSpan(box); // clear contents and attributes + HTMLCSS.createDelimiter(span,this.data.join("").charCodeAt(0),H,scale); + if (values.symmetric) {H = (span.bbox.h + span.bbox.d)/2 + axis} + else {H = (span.bbox.h + span.bbox.d) * h/(h + d)} + HTMLCSS.positionDelimiter(span,H); + this.HTMLhandleSpace(span); // add in lspace/rspace, if any + this.HTMLhandleColor(span); + return span; + }, + HTMLstretchH: function (box,W) { + this.HTMLremoveColor(); + var values = this.getValues("maxsize","minsize","mathvariant","fontweight"); + if (values.fontweight === "bold" && !this.mathvariant) {values.mathvariant = MML.VARIANT.BOLD} + var span = this.HTMLspanElement(), scale = span.scale; + values.maxsize = HTMLCSS.length2em(values.maxsize,span.bbox.w); + values.minsize = HTMLCSS.length2em(values.minsize,span.bbox.w); + W = Math.max(values.minsize,Math.min(values.maxsize,W)); + span = this.HTMLcreateSpan(box); // clear contents and attributes + HTMLCSS.createDelimiter(span,this.data.join("").charCodeAt(0),W,scale,values.mathvariant); + this.HTMLhandleSpace(span); // add in lspace/rspace, if any + this.HTMLhandleColor(span); + return span; } - this.HTMLhandleSpace(span); - this.HTMLhandleColor(span); - return span; - }, - HTMLlength2em: function (span,length,d,m) { - if (m == null) {m = -HTMLCSS.BIGDIMEN} - var match = String(length).match(/width|height|depth/); - var size = (match ? span.bbox[match[0].charAt(0)] : (d ? span.bbox[d] : null)); - var v = HTMLCSS.length2em(length,size); - if (d && String(length).match(/^\s*[-+]/)) - {return Math.max(m,span.bbox[d]+v)} else {return v} - }, - HTMLstretchH: MML.mbase.HTMLstretchH, - HTMLstretchV: MML.mbase.HTMLstretchV - }); + }); - MML.mrow.Augment({ - HTMLstretchH: function (box,w) { - this.HTMLremoveColor(); - var span = this.HTMLspanElement(); - this.data[this.core].HTMLstretchH(span,w); - this.HTMLcomputeBBox(span,true); - this.HTMLhandleColor(span); - return span; - }, - HTMLstretchV: function (box,h,d) { - this.HTMLremoveColor(); - var span = this.HTMLspanElement(); - this.data[this.core].HTMLstretchV(span,h,d); - this.HTMLcomputeBBox(span,true); - this.HTMLhandleColor(span); - return span; - } - }); + MML.mtext.Augment({ + toHTML: function (span) { + span = this.HTMLhandleSize(this.HTMLcreateSpan(span)); span.bbox = null; + if (this.Parent().type === "merror") { + // Avoid setting the font style for error text + HTMLCSS.addText(span,this.data.join("")); + var HD = HTMLCSS.getHD(span), W = HTMLCSS.getW(span); + span.bbox = {h: HD.h, d: HD.d, w: W, lw: 0, rw: W}; + } else { + var variant = this.HTMLgetVariant(); + for (var i = 0, m = this.data.length; i < m; i++) + {if (this.data[i]) {this.data[i].toHTML(span,variant)}} + if (!span.bbox) {span.bbox = {w:0, h:0, d:0, rw:0, lw:0}} + if (this.data.join("").length !== 1) {delete span.bbox.skew} + } + this.HTMLhandleSpace(span); + this.HTMLhandleColor(span); + return span; + } + }); - MML.mstyle.Augment({ - toHTML: function (span) { - if (this.data[0] != null) { - span = this.data[0].toHTML(span); - this.spanID = this.data[0].spanID; - this.HTMLhandleSpace(span); - this.HTMLhandleColor(span); - } - return span; - }, - HTMLspanElement: function () { - return (this.data[0] != null ? this.data[0].HTMLspanElement() : null); - }, - HTMLstretchH: function (box,w) { - return (this.data[0] != null ? this.data[0].HTMLstretchH(box,w) : box); - }, - HTMLstretchV: function (box,h,d) { - return (this.data[0] != null ? this.data[0].HTMLstretchV(box,h,d) : box); - } - }); + MML.ms.Augment({toHTML: MML.mbase.HTMLautoload}); - MML.mfrac.Augment({ - toHTML: function (span) { - span = this.HTMLcreateSpan(span); - var frac = HTMLCSS.createStack(span); - var num = HTMLCSS.createBox(frac), den = HTMLCSS.createBox(frac); - this.HTMLmeasureChild(0,num); this.HTMLmeasureChild(1,den); - var values = this.getValues("displaystyle","linethickness","numalign","denomalign","bevelled"); - var scale = this.HTMLgetScale(), isDisplay = values.displaystyle; - var a = HTMLCSS.TeX.axis_height * scale; - if (values.bevelled) { - var delta = (isDisplay ? .4 : .15); - var H = Math.max(num.bbox.h+num.bbox.d,den.bbox.h+den.bbox.d)+2*delta; - var bevel = HTMLCSS.createBox(frac); - HTMLCSS.createDelimiter(bevel,0x2F,H); - HTMLCSS.placeBox(num,0,(num.bbox.d-num.bbox.h)/2+a+delta); - HTMLCSS.placeBox(bevel,num.bbox.w-delta/2,(bevel.bbox.d-bevel.bbox.h)/2+a); - HTMLCSS.placeBox(den,num.bbox.w+bevel.bbox.w-delta,(den.bbox.d-den.bbox.h)/2+a-delta); - } else { - var W = Math.max(num.bbox.w,den.bbox.w); - var t = HTMLCSS.thickness2em(values.linethickness), p,q, u,v; - var mt = HTMLCSS.TeX.min_rule_thickness/this.em; - if (isDisplay) {u = HTMLCSS.TeX.num1; v = HTMLCSS.TeX.denom1} - else {u = (t === 0 ? HTMLCSS.TeX.num3 : HTMLCSS.TeX.num2); v = HTMLCSS.TeX.denom2} - u *= scale; v *= scale; - if (t === 0) {// \atop - p = Math.max((isDisplay ? 7 : 3) * HTMLCSS.TeX.rule_thickness, 2*mt); // force to at least 2 px - q = (u - num.bbox.d) - (den.bbox.h - v); - if (q < p) {u += (p - q)/2; v += (p - q)/2} - } else {// \over - p = Math.max((isDisplay ? 2 : 0) * mt + t, t/2 + 1.5*mt); // force to be at least 1.5px - q = (u - num.bbox.d) - (a + t/2); if (q < p) {u += p - q} - q = (a - t/2) - (den.bbox.h - v); if (q < p) {v += p - q} - var rule = HTMLCSS.createBox(frac); - HTMLCSS.createRule(rule,t,0,W+2*t); - HTMLCSS.placeBox(rule,0,a-t/2); - } - HTMLCSS.alignBox(num,values.numalign,u); - HTMLCSS.alignBox(den,values.denomalign,-v); - } - this.HTMLhandleSpace(span); - this.HTMLhandleColor(span); - return span; - }, - HTMLcanStretch: function (direction) {return false}, - HTMLhandleSpace: function (span) { - if (!this.texWithDelims) { - var space = (this.useMMLspacing ? 0 : HTMLCSS.length2em(this.texSpacing()||0)) + .12; - span.style.paddingLeft = HTMLCSS.Em(space); - span.style.paddingRight = ".12em"; - } - } - }); + MML.mglyph.Augment({toHTML: MML.mbase.HTMLautoload}); - MML.msqrt.Augment({ - toHTML: function (span) { - span = this.HTMLcreateSpan(span); - var sqrt = HTMLCSS.createStack(span); - var base = HTMLCSS.createBox(sqrt), - rule = HTMLCSS.createBox(sqrt), - surd = HTMLCSS.createBox(sqrt); - this.HTMLmeasureChild(0,base); - var scale = this.HTMLgetScale(); - var t = HTMLCSS.TeX.rule_thickness * scale, p,q, H, W; - if (this.Get("displaystyle")) {p = HTMLCSS.TeX.x_height * scale} else {p = t} - q = Math.max(t + p/4,2*HTMLCSS.TeX.min_rule_thickness/this.em); // force to be at least 2px - H = base.bbox.h + base.bbox.d + q + t; - W = base.bbox.w; - HTMLCSS.createDelimiter(surd,0x221A,H,scale); HTMLCSS.Measured(surd); - var x = 0; - if (surd.isMultiChar || (HTMLCSS.AdjustSurd && HTMLCSS.imgFonts)) {surd.bbox.w *= .95} - if (surd.bbox.h + surd.bbox.d > H) {q += ((surd.bbox.h+surd.bbox.d) - (H-t))/2} - var ruleC = HTMLCSS.FONTDATA.DELIMITERS[HTMLCSS.FONTDATA.RULECHAR]; - if (!ruleC || W < ruleC.HW[0][0]*scale || scale < .75) { - HTMLCSS.createRule(rule,t,0,W); - } else { - HTMLCSS.createDelimiter(rule,HTMLCSS.FONTDATA.RULECHAR,W,scale); + MML.mspace.Augment({ + toHTML: function (span) { + span = this.HTMLhandleSize(this.HTMLcreateSpan(span)); + var values = this.getValues("height","depth","width"); + values.mathbackground = this.mathbackground; + if (this.background && !this.mathbackground) {values.mathbackground = this.background} + var h = HTMLCSS.length2em(values.height), d = HTMLCSS.length2em(values.depth), + w = HTMLCSS.length2em(values.width); + HTMLCSS.createSpace(span,h,d,w,values.mathbackground); + return span; } - H = base.bbox.h + q + t; - x = this.HTMLaddRoot(sqrt,surd,x,surd.bbox.h+surd.bbox.d-H,scale); - HTMLCSS.placeBox(surd,x,H-surd.bbox.h); - HTMLCSS.placeBox(rule,x+surd.bbox.w,H-rule.bbox.h+HTMLCSS.rfuzz); - HTMLCSS.placeBox(base,x+surd.bbox.w,0); - span.bbox.h += t; - this.HTMLhandleSpace(span); - this.HTMLhandleColor(span); - return span; - }, - HTMLaddRoot: function (sqrt,surd,x,d,scale) {return x} - }); + }); - MML.mroot.Augment({ - toHTML: MML.msqrt.prototype.toHTML, - HTMLaddRoot: function (sqrt,surd,x,d,scale) { - var box = HTMLCSS.createBox(sqrt); - if (this.data[1]) { - var root = this.data[1].toHTML(box); - root.style.paddingRight = root.style.paddingLeft = ""; // remove extra padding, if any - HTMLCSS.Measured(root,box); - } else {box.bbox = this.HTMLzeroBBox()} - var h = this.HTMLrootHeight(surd.bbox.h+surd.bbox.d,scale,box)-d; - var w = Math.min(box.bbox.w,box.bbox.rw); // remove extra right-hand padding, if any - x = Math.max(w,surd.offset); - HTMLCSS.placeBox(box,x-w,h); - return x - surd.offset; - }, - HTMLrootHeight: function (d,scale,root) { - return .45*(d-.9*scale)+.6*scale + Math.max(0,root.bbox.d-.075); - } - }); + MML.mphantom.Augment({ + toHTML: function (span,HW,D) { + span = this.HTMLcreateSpan(span); + if (this.data[0] != null) { + var box = HTMLCSS.Measured(this.data[0].toHTML(span),span); + if (D != null) {HTMLCSS.Remeasured(this.data[0].HTMLstretchV(span,HW,D),span)} + else if (HW != null) {HTMLCSS.Remeasured(this.data[0].HTMLstretchH(span,HW),span)} + span.bbox = {w: box.bbox.w, h: box.bbox.h, d: box.bbox.d, lw: 0, rw: 0}; + for (var i = 0, m = span.childNodes.length; i < m; i++) + {span.childNodes[i].style.visibility = "hidden"} + } + this.HTMLhandleSpace(span); + this.HTMLhandleColor(span); + return span; + }, + HTMLstretchH: MML.mbase.HTMLstretchH, + HTMLstretchV: MML.mbase.HTMLstretchV + }); - MML.mfenced.Augment({ - toHTML: function (span) { - span = this.HTMLcreateSpan(span); - if (this.data.open) {this.data.open.toHTML(span)} - if (this.data[0] != null) {this.data[0].toHTML(span)} - for (var i = 1, m = this.data.length; i < m; i++) { - if (this.data[i]) { - if (this.data["sep"+i]) {this.data["sep"+i].toHTML(span)} - this.data[i].toHTML(span); - } - } - if (this.data.close) {this.data.close.toHTML(span)} - var stretchy = this.HTMLcomputeBBox(span); - var h = span.bbox.h, d = span.bbox.d; - for (i = 0, m = stretchy.length; i < m; i++) {stretchy[i].HTMLstretchV(span,h,d)} - if (stretchy.length) {this.HTMLcomputeBBox(span,true)} - this.HTMLhandleSpace(span); - this.HTMLhandleColor(span); - return span; - }, - HTMLcomputeBBox: function (span,full) { - var BBOX = span.bbox = {}, stretchy = []; - this.HTMLcheckStretchy(this.data.open,BBOX,stretchy,full); - this.HTMLcheckStretchy(this.data[0],BBOX,stretchy,full); - for (var i = 1, m = this.data.length; i < m; i++) { - if (this.data[i]) { - this.HTMLcheckStretchy(this.data["sep"+i],BBOX,stretchy,full); - this.HTMLcheckStretchy(this.data[i],BBOX,stretchy,full); - } - } - this.HTMLcheckStretchy(this.data.close,BBOX,stretchy,full); - this.HTMLcleanBBox(BBOX); - return stretchy; - }, - HTMLcheckStretchy: function (core,BBOX,stretchy,full) { - if (core) { - if (!full && core.HTMLcanStretch("Vertical")) - {stretchy.push(core); core = (core.CoreMO()||core)} - this.HTMLcombineBBoxes(core,BBOX); - } - } - }); + MML.mpadded.Augment({ + toHTML: function (span,HW,D) { + span = this.HTMLcreateSpan(span); + if (this.data[0] != null) { + var stack = HTMLCSS.createStack(span,true); + var box = HTMLCSS.createBox(stack); + HTMLCSS.Measured(this.data[0].toHTML(box),box); + if (D != null) {HTMLCSS.Remeasured(this.data[0].HTMLstretchV(box,HW,D),box)} + else if (HW != null) {HTMLCSS.Remeasured(this.data[0].HTMLstretchH(box,HW),box)} + var values = this.getValues("height","depth","width","lspace","voffset"), x = 0, y = 0; + if (values.lspace) {x = this.HTMLlength2em(box,values.lspace)} + if (values.voffset) {y = this.HTMLlength2em(box,values.voffset)} + HTMLCSS.placeBox(box,x,y); + span.bbox = { + h: box.bbox.h, d: box.bbox.d, w: box.bbox.w, + lw: Math.min(0,box.bbox.lw+x), rw: Math.max(box.bbox.w,box.bbox.rw+x), + H: Math.max((box.bbox.H == null ? -HTMLCSS.BIGDIMEN : box.bbox.H),box.bbox.h+y), + D: Math.max((box.bbox.D == null ? -HTMLCSS.BIGDIMEN : box.bbox.D),box.bbox.d-y) + }; + if (values.height !== "") {span.bbox.h = this.HTMLlength2em(box,values.height,"h",0)} + if (values.depth !== "") {span.bbox.d = this.HTMLlength2em(box,values.depth,"d",0)} + if (values.width !== "") {span.bbox.w = this.HTMLlength2em(box,values.width,"w",0)} + if (span.bbox.H <= span.bbox.h) {delete span.bbox.H} + if (span.bbox.D <= span.bbox.d) {delete span.bbox.D} + HTMLCSS.setStackWidth(stack,span.bbox.w); + } + this.HTMLhandleSpace(span); + this.HTMLhandleColor(span); + return span; + }, + HTMLlength2em: function (span,length,d,m) { + if (m == null) {m = -HTMLCSS.BIGDIMEN} + var match = String(length).match(/width|height|depth/); + var size = (match ? span.bbox[match[0].charAt(0)] : (d ? span.bbox[d] : null)); + var v = HTMLCSS.length2em(length,size); + if (d && String(length).match(/^\s*[-+]/)) + {return Math.max(m,span.bbox[d]+v)} else {return v} + }, + HTMLstretchH: MML.mbase.HTMLstretchH, + HTMLstretchV: MML.mbase.HTMLstretchV + }); - MML.menclose.Augment({toHTML: MML.mbase.HTMLautoload}); - MML.maction.Augment({toHTML: MML.mbase.HTMLautoload}); + MML.mrow.Augment({ + HTMLstretchH: function (box,w) { + this.HTMLremoveColor(); + var span = this.HTMLspanElement(); + this.data[this.core].HTMLstretchH(span,w); + this.HTMLcomputeBBox(span,true); + this.HTMLhandleColor(span); + return span; + }, + HTMLstretchV: function (box,h,d) { + this.HTMLremoveColor(); + var span = this.HTMLspanElement(); + this.data[this.core].HTMLstretchV(span,h,d); + this.HTMLcomputeBBox(span,true); + this.HTMLhandleColor(span); + return span; + } + }); - MML.semantics.Augment({ - toHTML: function (span) { - if (this.data[0] != null) { - span = this.data[0].toHTML(span); - this.spanID = this.data[0].spanID; - this.HTMLhandleSpace(span); + MML.mstyle.Augment({ + toHTML: function (span) { + if (this.data[0] != null) { + span = this.data[0].toHTML(span); + this.spanID = this.data[0].spanID; + this.HTMLhandleSpace(span); + this.HTMLhandleColor(span); + } + return span; + }, + HTMLspanElement: function () { + return (this.data[0] != null ? this.data[0].HTMLspanElement() : null); + }, + HTMLstretchH: function (box,w) { + return (this.data[0] != null ? this.data[0].HTMLstretchH(box,w) : box); + }, + HTMLstretchV: function (box,h,d) { + return (this.data[0] != null ? this.data[0].HTMLstretchV(box,h,d) : box); } - return span; - }, - HTMLspanElement: function () { - return (this.data[0] != null ? this.data[0].HTMLspanElement() : null); - }, - HTMLstretchH: function (box,w) { - return (this.data[0] != null ? this.data[0].HTMLstretchH(box,w) : box); - }, - HTMLstretchV: function (box,h,d) { - return (this.data[0] != null ? this.data[0].HTMLstretchV(box,h,d) : box); - } - }); + }); - MML.munderover.Augment({ - toHTML: function (span,HW,D) { - var values = this.getValues("displaystyle","accent","accentunder","align"); - if (!values.displaystyle && this.data[this.base] != null && - this.data[this.base].Get("movablelimits")) - {return MML.msubsup.prototype.toHTML.call(this,span)} - span = this.HTMLcreateSpan(span); var scale = this.HTMLgetScale(); - var stack = HTMLCSS.createStack(span); - var boxes = [], stretch = [], box, i, m, W = -HTMLCSS.BIGDIMEN, WW = W; - for (i = 0, m = this.data.length; i < m; i++) { - if (this.data[i] != null) { - box = boxes[i] = HTMLCSS.createBox(stack); - HTMLCSS.Measured(this.data[i].toHTML(box),box); - if (i == this.base) { - if (D != null) {HTMLCSS.Remeasured(this.data[this.base].HTMLstretchV(box,HW,D),box)} - else if (HW != null) {HTMLCSS.Remeasured(this.data[this.base].HTMLstretchH(box,HW),box)} - stretch[i] = (D == null && HW != null ? false : - this.data[i].HTMLcanStretch("Horizontal")); - } else { - stretch[i] = this.data[i].HTMLcanStretch("Horizontal"); - } - if (box.bbox.w > WW) {WW = box.bbox.w} - if (!stretch[i] && WW > W) {W = WW} - } - } - if (W == -HTMLCSS.BIGDIMEN) {W = WW} - if (D == null && HW != null) {W = WW = HW} - var t = HTMLCSS.TeX.rule_thickness, factor = HTMLCSS.FONTDATA.TeX_factor; - var base = boxes[this.base] || {bbox: this.HTMLzeroBBox()}, delta = (base.bbox.ic || 0); - var x, y, z1, z2, z3, dw, k; - for (i = 0, m = this.data.length; i < m; i++) { - if (this.data[i] != null) { - box = boxes[i]; - if (stretch[i]) {box.bbox = this.data[i].HTMLstretchH(box,W).bbox} - z3 = HTMLCSS.TeX.big_op_spacing5 * scale; - var accent = (i != this.base && values[this.ACCENTS[i]]); - if (accent && box.bbox.w <= 1/HTMLCSS.em+.0001) { // images can get the width off by 1px - box.bbox.w = box.bbox.rw - box.bbox.lw; box.bbox.noclip = true; - if (box.bbox.lw && !HTMLCSS.zeroWidthBug) - {box.insertBefore(HTMLCSS.createSpace(box.parentNode,0,0,-box.bbox.lw),box.firstChild)} - HTMLCSS.createBlank(box,0,0,box.bbox.rw+.1); - } - dw = {left:0, center:(W-box.bbox.w)/2, right:W-box.bbox.w}[values.align]; - x = dw; y = 0; - if (i == this.over) { - if (accent) { - k = Math.max(t * scale * factor,2.5/this.em); z3 = 0; - if (base.bbox.skew) {x += base.bbox.skew} - } else { - z1 = HTMLCSS.TeX.big_op_spacing1 * scale * factor; - z2 = HTMLCSS.TeX.big_op_spacing3 * scale * factor; - k = Math.max(z1,z2-Math.max(0,box.bbox.d)); - } - k = Math.max(k,1.5/this.em); // force to be at least 1.5px - x += delta; y = base.bbox.h + box.bbox.d + k; - box.bbox.h += z3; - } else if (i == this.under) { - if (accent) { - k = 3*t * scale * factor; z3 = 0; - } else { - z1 = HTMLCSS.TeX.big_op_spacing2 * scale * factor; - z2 = HTMLCSS.TeX.big_op_spacing4 * scale * factor; - k = Math.max(z1,z2-box.bbox.h); - } - k = Math.max(k,1.5/this.em); // force to be at least 1.5px - x -= delta; y = -(base.bbox.d + box.bbox.h + k); - box.bbox.d += z3; - } - HTMLCSS.placeBox(box,x,y); - } - } - this.HTMLhandleSpace(span); - this.HTMLhandleColor(span); - return span; - }, - HTMLstretchH: MML.mbase.HTMLstretchH, - HTMLstretchV: MML.mbase.HTMLstretchV - }); - - MML.msubsup.Augment({ - toHTML: function (span,HW,D) { - span = this.HTMLcreateSpan(span); var scale = this.HTMLgetScale(); - var stack = HTMLCSS.createStack(span), values; - var base = HTMLCSS.createBox(stack); - this.HTMLmeasureChild(this.base,base); - if (this.data[this.base]) { - if (D != null) {HTMLCSS.Remeasured(this.data[this.base].HTMLstretchV(base,HW,D),base)} - else if (HW != null) {HTMLCSS.Remeasured(this.data[this.base].HTMLstretchH(base,HW),base)} - } - HTMLCSS.placeBox(base,0,0); - var sscale = (this.data[this.sup] || this.data[this.sub] || this).HTMLgetScale(); - var x_height = HTMLCSS.TeX.x_height * scale, - s = HTMLCSS.TeX.scriptspace * scale * .75; // FIXME: .75 can be removed when IC is right? - var sup, sub; - if (this.HTMLnotEmpty(this.data[this.sup])) { - sup = HTMLCSS.createBox(stack); - HTMLCSS.Measured(this.data[this.sup].toHTML(sup),sup); - sup.bbox.w += s; sup.bbox.rw = Math.max(sup.bbox.w,sup.bbox.rw); - } - if (this.HTMLnotEmpty(this.data[this.sub])) { - sub = HTMLCSS.createBox(stack); - HTMLCSS.Measured(this.data[this.sub].toHTML(sub),sub); - sub.bbox.w += s; sub.bbox.rw = Math.max(sub.bbox.w,sub.bbox.rw); - } - var q = HTMLCSS.TeX.sup_drop * sscale, r = HTMLCSS.TeX.sub_drop * sscale; - var u = base.bbox.h - q, v = base.bbox.d + r, delta = 0, p; - if (base.bbox.ic) {delta = base.bbox.ic} - if (this.data[this.base] && - (this.data[this.base].type === "mi" || this.data[this.base].type === "mo")) { - if (this.data[this.base].data.join("").length === 1 && base.bbox.scale === 1 && - !this.data[this.base].Get("largeop")) {u = v = 0} - } - var min = this.getValues("subscriptshift","superscriptshift"); - min.subscriptshift = (min.subscriptshift === "" ? 0 : HTMLCSS.length2em(min.subscriptshift)); - min.superscriptshift = (min.superscriptshift === "" ? 0 : HTMLCSS.length2em(min.superscriptshift)); - if (!sup) { - if (sub) { - v = Math.max(v,HTMLCSS.TeX.sub1*scale,sub.bbox.h-(4/5)*x_height,min.subscriptshift); - HTMLCSS.placeBox(sub,base.bbox.w+s-delta,-v,sub.bbox); - } - } else { - if (!sub) { - values = this.getValues("displaystyle","texprimestyle"); - p = HTMLCSS.TeX[(values.displaystyle ? "sup1" : (values.texprimestyle ? "sup3" : "sup2"))]; - u = Math.max(u,p*scale,sup.bbox.d+(1/4)*x_height,min.superscriptshift); - HTMLCSS.placeBox(sup,base.bbox.w+s,u,sup.bbox); - } else { - v = Math.max(v,HTMLCSS.TeX.sub2*scale); - var t = HTMLCSS.TeX.rule_thickness * scale; - if ((u - sup.bbox.d) - (sub.bbox.h - v) < 3*t) { - v = 3*t - u + sup.bbox.d + sub.bbox.h; - q = (4/5)*x_height - (u - sup.bbox.d); - if (q > 0) {u += q; v -= q} - } - HTMLCSS.placeBox(sup,base.bbox.w+s,Math.max(u,min.superscriptshift)); - HTMLCSS.placeBox(sub,base.bbox.w+s-delta,-Math.max(v,min.subscriptshift)); - } - } - this.HTMLhandleSpace(span); - this.HTMLhandleColor(span); - return span; - }, - HTMLstretchH: MML.mbase.HTMLstretchH, - HTMLstretchV: MML.mbase.HTMLstretchV - }); - - MML.mmultiscripts.Augment({toHTML: MML.mbase.HTMLautoload}); - - MML.mtable.Augment({toHTML: MML.mbase.HTMLautoload}); - - MML.math.Augment({ - toHTML: function (span,node) { - var alttext = this.Get("alttext"); if (alttext) {node.setAttribute("aria-label",alttext)} - var nobr = HTMLCSS.addElement(span,"nobr",{style:{visibility:"hidden"}}); - span = this.HTMLcreateSpan(nobr); - var stack = HTMLCSS.createStack(span), box = HTMLCSS.createBox(stack), math; - // Move font-size from outer span to stack to avoid line separation - // problem in strict HTML mode - stack.style.fontSize = nobr.parentNode.style.fontSize; nobr.parentNode.style.fontSize = ""; - if (this.data[0] != null) { - if (HTMLCSS.msieColorBug) { - if (this.background) {this.data[0].background = this.background; delete this.background} - if (this.mathbackground) {this.data[0].mathbackground = this.mathbackground; delete this.mathbackground} - } - MML.mbase.prototype.displayAlign = HUB.config.displayAlign; - MML.mbase.prototype.displayIndent = HUB.config.displayIndent; - math = HTMLCSS.Measured(this.data[0].toHTML(box),box); - } - HTMLCSS.placeBox(box,0,0); - // - // Adjust bbox to match outer em-size - // - var f = HTMLCSS.em / HTMLCSS.outerEm; HTMLCSS.em /= f; - span.bbox.h *= f; span.bbox.d *= f; span.bbox.w *= f; - span.bbox.lw *= f; span.bbox.rw *= f; - if (math && math.bbox.width != null) { - stack.style.width = math.bbox.width; - box.style.width = "100%"; - } - // - // Add color (if any) - // - this.HTMLhandleColor(span); - // - // Make math span be the correct height and depth - // - if (math) {HTMLCSS.createRule(span,math.bbox.h*f,math.bbox.d*f,0)} - // - // Handle indentalign and indentshift for single-line display equations - // - if (!this.isMultiline && this.Get("display") === "block" && span.bbox.width == null) { - 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 = this.displayAlign} - node.style.textAlign = values.indentalign; - if (values.indentshiftfirst !== MML.INDENTSHIFT.INDENTSHIFT) {values.indentshift = values.indentshiftfirst} - if (values.indentshift === "auto") {values.indentshift = this.displayIndent} - if (values.indentshift && values.indentalign !== MML.INDENTALIGN.CENTER) { - span.style[{left:"marginLeft",right:"marginRight"}[values.indentalign]] = - HTMLCSS.Em(HTMLCSS.length2em(values.indentshift)); + MML.mfrac.Augment({ + toHTML: function (span) { + span = this.HTMLcreateSpan(span); + var frac = HTMLCSS.createStack(span); + var num = HTMLCSS.createBox(frac), den = HTMLCSS.createBox(frac); + this.HTMLmeasureChild(0,num); this.HTMLmeasureChild(1,den); + var values = this.getValues("displaystyle","linethickness","numalign","denomalign","bevelled"); + var scale = this.HTMLgetScale(), isDisplay = values.displaystyle; + var a = HTMLCSS.TeX.axis_height * scale; + if (values.bevelled) { + var delta = (isDisplay ? .4 : .15); + var H = Math.max(num.bbox.h+num.bbox.d,den.bbox.h+den.bbox.d)+2*delta; + var bevel = HTMLCSS.createBox(frac); + HTMLCSS.createDelimiter(bevel,0x2F,H); + HTMLCSS.placeBox(num,0,(num.bbox.d-num.bbox.h)/2+a+delta); + HTMLCSS.placeBox(bevel,num.bbox.w-delta/2,(bevel.bbox.d-bevel.bbox.h)/2+a); + HTMLCSS.placeBox(den,num.bbox.w+bevel.bbox.w-delta,(den.bbox.d-den.bbox.h)/2+a-delta); + } else { + var W = Math.max(num.bbox.w,den.bbox.w); + var t = HTMLCSS.thickness2em(values.linethickness), p,q, u,v; + var mt = HTMLCSS.TeX.min_rule_thickness/this.em; + if (isDisplay) {u = HTMLCSS.TeX.num1; v = HTMLCSS.TeX.denom1} + else {u = (t === 0 ? HTMLCSS.TeX.num3 : HTMLCSS.TeX.num2); v = HTMLCSS.TeX.denom2} + u *= scale; v *= scale; + if (t === 0) {// \atop + p = Math.max((isDisplay ? 7 : 3) * HTMLCSS.TeX.rule_thickness, 2*mt); // force to at least 2 px + q = (u - num.bbox.d) - (den.bbox.h - v); + if (q < p) {u += (p - q)/2; v += (p - q)/2} + } else {// \over + p = Math.max((isDisplay ? 2 : 0) * mt + t, t/2 + 1.5*mt); // force to be at least 1.5px + q = (u - num.bbox.d) - (a + t/2); if (q < p) {u += p - q} + q = (a - t/2) - (den.bbox.h - v); if (q < p) {v += p - q} + var rule = HTMLCSS.createBox(frac); + HTMLCSS.createRule(rule,t,0,W+2*t); + HTMLCSS.placeBox(rule,0,a-t/2); + } + HTMLCSS.alignBox(num,values.numalign,u); + HTMLCSS.alignBox(den,values.denomalign,-v); + } + this.HTMLhandleSpace(span); + this.HTMLhandleColor(span); + return span; + }, + HTMLcanStretch: function (direction) {return false}, + HTMLhandleSpace: function (span) { + if (!this.texWithDelims) { + var space = (this.useMMLspacing ? 0 : HTMLCSS.length2em(this.texSpacing()||0)) + .12; + span.style.paddingLeft = HTMLCSS.Em(space); + span.style.paddingRight = ".12em"; } } - nobr.style.visibility = ""; - return span; - } - }); + }); - MML.TeXAtom.Augment({ - toHTML: function (span) { - span = this.HTMLcreateSpan(span); - if (this.data[0] != null) { - if (this.texClass === MML.TEXCLASS.VCENTER) { - var stack = HTMLCSS.createStack(span); - var box = HTMLCSS.createBox(stack); - HTMLCSS.Measured(this.data[0].toHTML(box),box); - // FIXME: should the axis height be scaled? - HTMLCSS.placeBox(box,0,HTMLCSS.TeX.axis_height-(box.bbox.h+box.bbox.d)/2+box.bbox.d); - } else { - span.bbox = this.data[0].toHTML(span).bbox; - } + MML.msqrt.Augment({ + toHTML: function (span) { + span = this.HTMLcreateSpan(span); + var sqrt = HTMLCSS.createStack(span); + var base = HTMLCSS.createBox(sqrt), + rule = HTMLCSS.createBox(sqrt), + surd = HTMLCSS.createBox(sqrt); + this.HTMLmeasureChild(0,base); + var scale = this.HTMLgetScale(); + var t = HTMLCSS.TeX.rule_thickness * scale, p,q, H, W; + if (this.Get("displaystyle")) {p = HTMLCSS.TeX.x_height * scale} else {p = t} + q = Math.max(t + p/4,2*HTMLCSS.TeX.min_rule_thickness/this.em); // force to be at least 2px + H = base.bbox.h + base.bbox.d + q + t; + W = base.bbox.w; + HTMLCSS.createDelimiter(surd,0x221A,H,scale); HTMLCSS.Measured(surd); + var x = 0; + if (surd.isMultiChar || (HTMLCSS.AdjustSurd && HTMLCSS.imgFonts)) {surd.bbox.w *= .95} + if (surd.bbox.h + surd.bbox.d > H) {q += ((surd.bbox.h+surd.bbox.d) - (H-t))/2} + var ruleC = HTMLCSS.FONTDATA.DELIMITERS[HTMLCSS.FONTDATA.RULECHAR]; + if (!ruleC || W < ruleC.HW[0][0]*scale || scale < .75) { + HTMLCSS.createRule(rule,t,0,W); + } else { + HTMLCSS.createDelimiter(rule,HTMLCSS.FONTDATA.RULECHAR,W,scale); + } + H = base.bbox.h + q + t; + x = this.HTMLaddRoot(sqrt,surd,x,surd.bbox.h+surd.bbox.d-H,scale); + HTMLCSS.placeBox(surd,x,H-surd.bbox.h); + HTMLCSS.placeBox(rule,x+surd.bbox.w,H-rule.bbox.h+HTMLCSS.rfuzz); + HTMLCSS.placeBox(base,x+surd.bbox.w,0); + span.bbox.h += t; + this.HTMLhandleSpace(span); + this.HTMLhandleColor(span); + return span; + }, + HTMLaddRoot: function (sqrt,surd,x,d,scale) {return x} + }); + + MML.mroot.Augment({ + toHTML: MML.msqrt.prototype.toHTML, + HTMLaddRoot: function (sqrt,surd,x,d,scale) { + var box = HTMLCSS.createBox(sqrt); + if (this.data[1]) { + var root = this.data[1].toHTML(box); + root.style.paddingRight = root.style.paddingLeft = ""; // remove extra padding, if any + HTMLCSS.Measured(root,box); + } else {box.bbox = this.HTMLzeroBBox()} + var h = this.HTMLrootHeight(surd.bbox.h+surd.bbox.d,scale,box)-d; + var w = Math.min(box.bbox.w,box.bbox.rw); // remove extra right-hand padding, if any + x = Math.max(w,surd.offset); + HTMLCSS.placeBox(box,x-w,h); + return x - surd.offset; + }, + HTMLrootHeight: function (d,scale,root) { + return .45*(d-.9*scale)+.6*scale + Math.max(0,root.bbox.d-.075); } - this.HTMLhandleSpace(span); - this.HTMLhandleColor(span); - return span; - } + }); + + MML.mfenced.Augment({ + toHTML: function (span) { + span = this.HTMLcreateSpan(span); + if (this.data.open) {this.data.open.toHTML(span)} + if (this.data[0] != null) {this.data[0].toHTML(span)} + for (var i = 1, m = this.data.length; i < m; i++) { + if (this.data[i]) { + if (this.data["sep"+i]) {this.data["sep"+i].toHTML(span)} + this.data[i].toHTML(span); + } + } + if (this.data.close) {this.data.close.toHTML(span)} + var stretchy = this.HTMLcomputeBBox(span); + var h = span.bbox.h, d = span.bbox.d; + for (i = 0, m = stretchy.length; i < m; i++) {stretchy[i].HTMLstretchV(span,h,d)} + if (stretchy.length) {this.HTMLcomputeBBox(span,true)} + this.HTMLhandleSpace(span); + this.HTMLhandleColor(span); + return span; + }, + HTMLcomputeBBox: function (span,full) { + var BBOX = span.bbox = {}, stretchy = []; + this.HTMLcheckStretchy(this.data.open,BBOX,stretchy,full); + this.HTMLcheckStretchy(this.data[0],BBOX,stretchy,full); + for (var i = 1, m = this.data.length; i < m; i++) { + if (this.data[i]) { + this.HTMLcheckStretchy(this.data["sep"+i],BBOX,stretchy,full); + this.HTMLcheckStretchy(this.data[i],BBOX,stretchy,full); + } + } + this.HTMLcheckStretchy(this.data.close,BBOX,stretchy,full); + this.HTMLcleanBBox(BBOX); + return stretchy; + }, + HTMLcheckStretchy: function (core,BBOX,stretchy,full) { + if (core) { + if (!full && core.HTMLcanStretch("Vertical")) + {stretchy.push(core); core = (core.CoreMO()||core)} + this.HTMLcombineBBoxes(core,BBOX); + } + } + }); + + MML.menclose.Augment({toHTML: MML.mbase.HTMLautoload}); + MML.maction.Augment({toHTML: MML.mbase.HTMLautoload}); + + MML.semantics.Augment({ + toHTML: function (span) { + if (this.data[0] != null) { + span = this.data[0].toHTML(span); + this.spanID = this.data[0].spanID; + this.HTMLhandleSpace(span); + } + return span; + }, + HTMLspanElement: function () { + return (this.data[0] != null ? this.data[0].HTMLspanElement() : null); + }, + HTMLstretchH: function (box,w) { + return (this.data[0] != null ? this.data[0].HTMLstretchH(box,w) : box); + }, + HTMLstretchV: function (box,h,d) { + return (this.data[0] != null ? this.data[0].HTMLstretchV(box,h,d) : box); + } + }); + + MML.munderover.Augment({ + toHTML: function (span,HW,D) { + var values = this.getValues("displaystyle","accent","accentunder","align"); + if (!values.displaystyle && this.data[this.base] != null && + this.data[this.base].Get("movablelimits")) + {return MML.msubsup.prototype.toHTML.call(this,span)} + span = this.HTMLcreateSpan(span); var scale = this.HTMLgetScale(); + var stack = HTMLCSS.createStack(span); + var boxes = [], stretch = [], box, i, m, W = -HTMLCSS.BIGDIMEN, WW = W; + for (i = 0, m = this.data.length; i < m; i++) { + if (this.data[i] != null) { + box = boxes[i] = HTMLCSS.createBox(stack); + HTMLCSS.Measured(this.data[i].toHTML(box),box); + if (i == this.base) { + if (D != null) {HTMLCSS.Remeasured(this.data[this.base].HTMLstretchV(box,HW,D),box)} + else if (HW != null) {HTMLCSS.Remeasured(this.data[this.base].HTMLstretchH(box,HW),box)} + stretch[i] = (D == null && HW != null ? false : + this.data[i].HTMLcanStretch("Horizontal")); + } else { + stretch[i] = this.data[i].HTMLcanStretch("Horizontal"); + } + if (box.bbox.w > WW) {WW = box.bbox.w} + if (!stretch[i] && WW > W) {W = WW} + } + } + if (W == -HTMLCSS.BIGDIMEN) {W = WW} + if (D == null && HW != null) {W = WW = HW} + var t = HTMLCSS.TeX.rule_thickness, factor = HTMLCSS.FONTDATA.TeX_factor; + var base = boxes[this.base] || {bbox: this.HTMLzeroBBox()}, delta = (base.bbox.ic || 0); + var x, y, z1, z2, z3, dw, k; + for (i = 0, m = this.data.length; i < m; i++) { + if (this.data[i] != null) { + box = boxes[i]; + if (stretch[i]) {box.bbox = this.data[i].HTMLstretchH(box,W).bbox} + z3 = HTMLCSS.TeX.big_op_spacing5 * scale; + var accent = (i != this.base && values[this.ACCENTS[i]]); + if (accent && box.bbox.w <= 1/HTMLCSS.em+.0001) { // images can get the width off by 1px + box.bbox.w = box.bbox.rw - box.bbox.lw; box.bbox.noclip = true; + if (box.bbox.lw && !HTMLCSS.zeroWidthBug) + {box.insertBefore(HTMLCSS.createSpace(box.parentNode,0,0,-box.bbox.lw),box.firstChild)} + HTMLCSS.createBlank(box,0,0,box.bbox.rw+.1); + } + dw = {left:0, center:(W-box.bbox.w)/2, right:W-box.bbox.w}[values.align]; + x = dw; y = 0; + if (i == this.over) { + if (accent) { + k = Math.max(t * scale * factor,2.5/this.em); z3 = 0; + if (base.bbox.skew) {x += base.bbox.skew} + } else { + z1 = HTMLCSS.TeX.big_op_spacing1 * scale * factor; + z2 = HTMLCSS.TeX.big_op_spacing3 * scale * factor; + k = Math.max(z1,z2-Math.max(0,box.bbox.d)); + } + k = Math.max(k,1.5/this.em); // force to be at least 1.5px + x += delta; y = base.bbox.h + box.bbox.d + k; + box.bbox.h += z3; + } else if (i == this.under) { + if (accent) { + k = 3*t * scale * factor; z3 = 0; + } else { + z1 = HTMLCSS.TeX.big_op_spacing2 * scale * factor; + z2 = HTMLCSS.TeX.big_op_spacing4 * scale * factor; + k = Math.max(z1,z2-box.bbox.h); + } + k = Math.max(k,1.5/this.em); // force to be at least 1.5px + x -= delta; y = -(base.bbox.d + box.bbox.h + k); + box.bbox.d += z3; + } + HTMLCSS.placeBox(box,x,y); + } + } + this.HTMLhandleSpace(span); + this.HTMLhandleColor(span); + return span; + }, + HTMLstretchH: MML.mbase.HTMLstretchH, + HTMLstretchV: MML.mbase.HTMLstretchV + }); + + MML.msubsup.Augment({ + toHTML: function (span,HW,D) { + span = this.HTMLcreateSpan(span); var scale = this.HTMLgetScale(); + var stack = HTMLCSS.createStack(span), values; + var base = HTMLCSS.createBox(stack); + this.HTMLmeasureChild(this.base,base); + if (this.data[this.base]) { + if (D != null) {HTMLCSS.Remeasured(this.data[this.base].HTMLstretchV(base,HW,D),base)} + else if (HW != null) {HTMLCSS.Remeasured(this.data[this.base].HTMLstretchH(base,HW),base)} + } + HTMLCSS.placeBox(base,0,0); + var sscale = (this.data[this.sup] || this.data[this.sub] || this).HTMLgetScale(); + var x_height = HTMLCSS.TeX.x_height * scale, + s = HTMLCSS.TeX.scriptspace * scale * .75; // FIXME: .75 can be removed when IC is right? + var sup, sub; + if (this.HTMLnotEmpty(this.data[this.sup])) { + sup = HTMLCSS.createBox(stack); + HTMLCSS.Measured(this.data[this.sup].toHTML(sup),sup); + sup.bbox.w += s; sup.bbox.rw = Math.max(sup.bbox.w,sup.bbox.rw); + } + if (this.HTMLnotEmpty(this.data[this.sub])) { + sub = HTMLCSS.createBox(stack); + HTMLCSS.Measured(this.data[this.sub].toHTML(sub),sub); + sub.bbox.w += s; sub.bbox.rw = Math.max(sub.bbox.w,sub.bbox.rw); + } + var q = HTMLCSS.TeX.sup_drop * sscale, r = HTMLCSS.TeX.sub_drop * sscale; + var u = base.bbox.h - q, v = base.bbox.d + r, delta = 0, p; + if (base.bbox.ic) {delta = base.bbox.ic} + if (this.data[this.base] && + (this.data[this.base].type === "mi" || this.data[this.base].type === "mo")) { + if (this.data[this.base].data.join("").length === 1 && base.bbox.scale === 1 && + !this.data[this.base].Get("largeop")) {u = v = 0} + } + var min = this.getValues("subscriptshift","superscriptshift"); + min.subscriptshift = (min.subscriptshift === "" ? 0 : HTMLCSS.length2em(min.subscriptshift)); + min.superscriptshift = (min.superscriptshift === "" ? 0 : HTMLCSS.length2em(min.superscriptshift)); + if (!sup) { + if (sub) { + v = Math.max(v,HTMLCSS.TeX.sub1*scale,sub.bbox.h-(4/5)*x_height,min.subscriptshift); + HTMLCSS.placeBox(sub,base.bbox.w+s-delta,-v,sub.bbox); + } + } else { + if (!sub) { + values = this.getValues("displaystyle","texprimestyle"); + p = HTMLCSS.TeX[(values.displaystyle ? "sup1" : (values.texprimestyle ? "sup3" : "sup2"))]; + u = Math.max(u,p*scale,sup.bbox.d+(1/4)*x_height,min.superscriptshift); + HTMLCSS.placeBox(sup,base.bbox.w+s,u,sup.bbox); + } else { + v = Math.max(v,HTMLCSS.TeX.sub2*scale); + var t = HTMLCSS.TeX.rule_thickness * scale; + if ((u - sup.bbox.d) - (sub.bbox.h - v) < 3*t) { + v = 3*t - u + sup.bbox.d + sub.bbox.h; + q = (4/5)*x_height - (u - sup.bbox.d); + if (q > 0) {u += q; v -= q} + } + HTMLCSS.placeBox(sup,base.bbox.w+s,Math.max(u,min.superscriptshift)); + HTMLCSS.placeBox(sub,base.bbox.w+s-delta,-Math.max(v,min.subscriptshift)); + } + } + this.HTMLhandleSpace(span); + this.HTMLhandleColor(span); + return span; + }, + HTMLstretchH: MML.mbase.HTMLstretchH, + HTMLstretchV: MML.mbase.HTMLstretchV + }); + + MML.mmultiscripts.Augment({toHTML: MML.mbase.HTMLautoload}); + + MML.mtable.Augment({toHTML: MML.mbase.HTMLautoload}); + + MML.math.Augment({ + toHTML: function (span,node) { + var alttext = this.Get("alttext"); if (alttext) {node.setAttribute("aria-label",alttext)} + var nobr = HTMLCSS.addElement(span,"nobr",{style:{visibility:"hidden"}}); + span = this.HTMLcreateSpan(nobr); + var stack = HTMLCSS.createStack(span), box = HTMLCSS.createBox(stack), math; + // Move font-size from outer span to stack to avoid line separation + // problem in strict HTML mode + stack.style.fontSize = nobr.parentNode.style.fontSize; nobr.parentNode.style.fontSize = ""; + if (this.data[0] != null) { + if (HTMLCSS.msieColorBug) { + if (this.background) {this.data[0].background = this.background; delete this.background} + if (this.mathbackground) {this.data[0].mathbackground = this.mathbackground; delete this.mathbackground} + } + MML.mbase.prototype.displayAlign = HUB.config.displayAlign; + MML.mbase.prototype.displayIndent = HUB.config.displayIndent; + math = HTMLCSS.Measured(this.data[0].toHTML(box),box); + } + HTMLCSS.placeBox(box,0,0); + // + // Adjust bbox to match outer em-size + // + var f = HTMLCSS.em / HTMLCSS.outerEm; HTMLCSS.em /= f; + span.bbox.h *= f; span.bbox.d *= f; span.bbox.w *= f; + span.bbox.lw *= f; span.bbox.rw *= f; + if (math && math.bbox.width != null) { + stack.style.width = math.bbox.width; + box.style.width = "100%"; + } + // + // Add color (if any) + // + this.HTMLhandleColor(span); + // + // Make math span be the correct height and depth + // + if (math) {HTMLCSS.createRule(span,math.bbox.h*f,math.bbox.d*f,0)} + // + // Handle indentalign and indentshift for single-line display equations + // + if (!this.isMultiline && this.Get("display") === "block" && span.bbox.width == null) { + 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 = this.displayAlign} + node.style.textAlign = values.indentalign; + if (values.indentshiftfirst !== MML.INDENTSHIFT.INDENTSHIFT) {values.indentshift = values.indentshiftfirst} + if (values.indentshift === "auto") {values.indentshift = this.displayIndent} + if (values.indentshift && values.indentalign !== MML.INDENTALIGN.CENTER) { + span.style[{left:"marginLeft",right:"marginRight"}[values.indentalign]] = + HTMLCSS.Em(HTMLCSS.length2em(values.indentshift)); + } + } + nobr.style.visibility = ""; + return span; + } + }); + + MML.TeXAtom.Augment({ + toHTML: function (span) { + span = this.HTMLcreateSpan(span); + if (this.data[0] != null) { + if (this.texClass === MML.TEXCLASS.VCENTER) { + var stack = HTMLCSS.createStack(span); + var box = HTMLCSS.createBox(stack); + HTMLCSS.Measured(this.data[0].toHTML(box),box); + // FIXME: should the axis height be scaled? + HTMLCSS.placeBox(box,0,HTMLCSS.TeX.axis_height-(box.bbox.h+box.bbox.d)/2+box.bbox.d); + } else { + span.bbox = this.data[0].toHTML(span).bbox; + } + } + this.HTMLhandleSpace(span); + this.HTMLhandleColor(span); + return span; + } + }); }); -}); // // Handle browser-specific setup diff --git a/mathjax/unpacked/jax/output/NativeMML/jax.js b/mathjax/unpacked/jax/output/NativeMML/jax.js index 707a6d26b..1e5c12c2c 100644 --- a/mathjax/unpacked/jax/output/NativeMML/jax.js +++ b/mathjax/unpacked/jax/output/NativeMML/jax.js @@ -208,239 +208,239 @@ } }); -MathJax.Hub.Register.StartupHook("mml Jax Ready",function () { + MathJax.Hub.Register.StartupHook("mml Jax Ready",function () { - MML = MathJax.ElementJax.mml; - - MML.mbase.Augment({ - // - // Add a MathML tag of the correct type, and set its attributes - // then populate it with its children and append it to the parent - // - toNativeMML: function (parent) { - var tag = this.NativeMMLelement(this.type); - this.NativeMMLattributes(tag); - for (var i = 0, m = this.data.length; i < m; i++) { - if (this.data[i]) {this.data[i].toNativeMML(tag)} - else {tag.appendChild(this.NativeMMLelement("mrow"))} - } - parent.appendChild(tag); - }, - // - // Look for attributes that are different from the defaults - // and set those in the tag's attribute list - // - NativeMMLattributes: function (tag) { - var defaults = this.defaults; - var copy = this.NativeMMLcopyAttributes, - skip = this.NativeMMLskipAttributes; - if (this.type === "mstyle") {defaults = MML.math.prototype.defaults} - for (var id in defaults) {if (!skip[id] && defaults.hasOwnProperty(id)) { - if (this[id] != null) {tag.setAttribute(id,this.NativeMMLattribute(id,this[id]))} - }} - for (var i = 0, m = copy.length; i < m; i++) { - if (this[copy[i]] != null) - {tag.setAttribute(copy[i],this.NativeMMLattribute(copy[i],this[copy[i]]))} - } - }, - NativeMMLcopyAttributes: [ - "fontfamily","fontsize","fontweight","fontstyle", - "color","background", - "id","class","href","style" - ], - NativeMMLskipAttributes: {texClass: 1, useHeight: 1, texprimestyle: 1}, - NativeMMLattribute: function (id,value) { - value = String(value); - if (nMML.NAMEDSPACE[value]) {value = nMML.NAMEDSPACE[value]} // MP doesn't do negative spaes - else if (value.match(/^\s*([-+]?(\d+(\.\d*)?|\.\d+))\s*mu\s*$/)) {value = ((1/18)*RegExp.$1)+"em"} // FIXME: should take scriptlevel into account - else if (value === "-tex-caligraphic") {value = "script"} - else if (value === "-tex-oldstyle") {value = "normal"} - return value; - }, - // - // Create a MathML element - // - NativeMMLelement: ( - isMSIE ? - function (type) {return document.createElement("mjx:"+type)} : - function (type) {return document.createElementNS(nMML.MMLnamespace,type)} - ) - }); - - MML.mrow.Augment({ - // - // Make inferred rows not include an mrow tag - // - toNativeMML: function (parent) { - if (this.inferred && this.parent.inferRow) { - for (var i = 0, m = this.data.length; i < m; i++) { - if (this.data[i]) {this.data[i].toNativeMML(parent)} - else {parent.appendChild(this.NativeMMLelement("mrow"))} - } - } else { - this.SUPER(arguments).toNativeMML.call(this,parent); - } - } - }); - - MML.msubsup.Augment({ - // - // Use proper version of msub, msup, or msubsup, depending on - // which items are present - // - toNativeMML: function (parent) { - var type = this.type; - if (this.data[this.sup] == null) {type = "msub"} - if (this.data[this.sub] == null) {type = "msup"} - var tag = this.NativeMMLelement(type); - this.NativeMMLattributes(tag); - delete this.data[0].inferred; - for (var i = 0, m = this.data.length; i < m; i++) - {if (this.data[i]) {this.data[i].toNativeMML(tag)}} - parent.appendChild(tag); - } - }); - - MML.munderover.Augment({ - // - // Use proper version of munder, mover, or munderover, depending on - // which items are present - // - toNativeMML: function (parent) { - var type = this.type; - if (this.data[this.under] == null) {type = "mover"} - if (this.data[this.over] == null) {type = "munder"} - var tag = this.NativeMMLelement(type); - this.NativeMMLattributes(tag); - delete this.data[0].inferred; - for (var i = 0, m = this.data.length; i < m; i++) - {if (this.data[i]) {this.data[i].toNativeMML(tag)}} - parent.appendChild(tag); - } - }); - - if (MathJax.Hub.Browser.isFirefox) { - MML.mtable.Augment({ - toNativeMML: function (parent) { - // - // FF doesn't handle width, so put it in styles instead - // - if (this.width) { - var styles = (this.style||"").replace(/;\s*$/,"").split(";"); - styles.push("width:"+this.width); - this.style = styles.join(";"); - } - this.SUPER(arguments).toNativeMML.call(this,parent); - } - }); - MML.mlabeledtr.Augment({ - toNativeMML: function (parent) { - // - // FF doesn't handle mlabeledtr, so remove the label - // - var tag = this.NativeMMLelement("mtr"); - this.NativeMMLattributes(tag); - for (var i = 1, m = this.data.length; i < m; i++) { - if (this.data[i]) {this.data[i].toNativeMML(tag)} - else {tag.appendChild(this.NativeMMLelement("mrow"))} - } - parent.appendChild(tag); - } - }); - - var fontDir = MathJax.Hub.config.root + "/fonts/HTML-CSS/TeX/otf"; - - /* - * Add fix for mathvariant issues in FF - */ - nMML.Augment({ - config: { - styles: { - '[mathvariant="double-struck"]': {"font-family":"MathJax_AMS"}, - '[mathvariant="script"]': {"font-family":"MathJax_Script"}, - '[mathvariant="fraktur"]': {"font-family":"MathJax_Fraktur"}, - '[mathvariant="-tex-oldstyle"]': {"font-family":"MathJax_Caligraphic"}, - '[mathvariant="-tex-oldstyle-bold"]': {"font-family":"MathJax_Caligraphic", "font-weight":"bold"}, - '[mathvariant="-tex-caligraphic"]': {"font-family":"MathJax_Caligraphic"}, - '[mathvariant="-tex-caligraphic-bold"]': {"font-family":"MathJax_Caligraphic", "font-weight":"bold"}, - '[mathvariant="bold-script"]': {"font-family":"MathJax_Script", "font-weight":"bold"}, - '[mathvariant="bold-fraktur"]': {"font-family":"MathJax_Fraktur", "font-weight":"bold"}, - '[mathvariant="monospace"]': {"font-family":"monospace"}, - '[mathvariant="sans-serif"]': {"font-family":"sansserif"}, - '[mathvariant="bold-sans-serif"]': {"font-family":"sansserif", "font-weight":"bold"}, - '[mathvariant="sans-serif-italic"]': {"font-family":"sansserif", "font-style":"italic"}, - '[mathvariant="sans-serif-bold-italic"]': {"font-family":"sansserif", "font-style":"italic", "font-weight":"bold"}, + MML = MathJax.ElementJax.mml; - '@font-face /*1*/': { - "font-family": "MathJax_AMS", - "src": "local('MathJax_AMS'), url('"+fontDir+"/MathJax_AMS-Regular.otf')" - }, - '@font-face /*2*/': { - "font-family": "MathJax_Script", - "src": "local('MathJax_Script'), url('"+fontDir+"/MathJax_Script-Regular.otf')" - }, - '@font-face /*3*/': { - "font-family": "MathJax_Fraktur", - "src": "local('MathJax_Fraktur'), url('"+fontDir+"/MathJax_Fraktur-Regular.otf')" - }, - '@font-face /*4*/': { - "font-family": "MathJax_Caligraphic", - "src": "local('MathJax_Caligraphic'), url('"+fontDir+"/MathJax_Caligraphic-Regular.otf')" - }, - '@font-face /*5*/': { - "font-family": "MathJax_Fraktur", "font-weight":"bold", - "src": "local('MathJax_Fraktur-Bold'), url('"+fontDir+"/MathJax_Fraktur-Bold.otf')" - }, - '@font-face /*6*/': { - "font-family": "MathJax_Caligraphic", "font-weight":"bold", - "src": "local('MathJax_Caligraphic-Bold'), url('"+fontDir+"/MathJax_Caligraphic-Bold.otf')" - } - } + MML.mbase.Augment({ + // + // Add a MathML tag of the correct type, and set its attributes + // then populate it with its children and append it to the parent + // + toNativeMML: function (parent) { + var tag = this.NativeMMLelement(this.type); + this.NativeMMLattributes(tag); + for (var i = 0, m = this.data.length; i < m; i++) { + if (this.data[i]) {this.data[i].toNativeMML(tag)} + else {tag.appendChild(this.NativeMMLelement("mrow"))} + } + parent.appendChild(tag); + }, + // + // Look for attributes that are different from the defaults + // and set those in the tag's attribute list + // + NativeMMLattributes: function (tag) { + var defaults = this.defaults; + var copy = this.NativeMMLcopyAttributes, + skip = this.NativeMMLskipAttributes; + if (this.type === "mstyle") {defaults = MML.math.prototype.defaults} + for (var id in defaults) {if (!skip[id] && defaults.hasOwnProperty(id)) { + if (this[id] != null) {tag.setAttribute(id,this.NativeMMLattribute(id,this[id]))} + }} + for (var i = 0, m = copy.length; i < m; i++) { + if (this[copy[i]] != null) + {tag.setAttribute(copy[i],this.NativeMMLattribute(copy[i],this[copy[i]]))} + } + }, + NativeMMLcopyAttributes: [ + "fontfamily","fontsize","fontweight","fontstyle", + "color","background", + "id","class","href","style" + ], + NativeMMLskipAttributes: {texClass: 1, useHeight: 1, texprimestyle: 1}, + NativeMMLattribute: function (id,value) { + value = String(value); + if (nMML.NAMEDSPACE[value]) {value = nMML.NAMEDSPACE[value]} // MP doesn't do negative spaes + else if (value.match(/^\s*([-+]?(\d+(\.\d*)?|\.\d+))\s*mu\s*$/)) {value = ((1/18)*RegExp.$1)+"em"} // FIXME: should take scriptlevel into account + else if (value === "-tex-caligraphic") {value = "script"} + else if (value === "-tex-oldstyle") {value = "normal"} + return value; + }, + // + // Create a MathML element + // + NativeMMLelement: ( + isMSIE ? + function (type) {return document.createElement("mjx:"+type)} : + function (type) {return document.createElementNS(nMML.MMLnamespace,type)} + ) + }); + + MML.mrow.Augment({ + // + // Make inferred rows not include an mrow tag + // + toNativeMML: function (parent) { + if (this.inferred && this.parent.inferRow) { + for (var i = 0, m = this.data.length; i < m; i++) { + if (this.data[i]) {this.data[i].toNativeMML(parent)} + else {parent.appendChild(this.NativeMMLelement("mrow"))} + } + } else { + this.SUPER(arguments).toNativeMML.call(this,parent); + } } }); - } - - MML.TeXAtom.Augment({ - // - // Convert TeXatom to an mrow - // - toNativeMML: function (parent) { - // FIXME: Handle spacing using mpadded? - var tag = this.NativeMMLelement("mrow"); - this.data[0].toNativeMML(tag); - parent.appendChild(tag); - } - }); - - MML.chars.Augment({ - // - // Add a text node - // - toNativeMML: function (parent) { - parent.appendChild(document.createTextNode(this.toString())); - } - }); - - MML.entity.Augment({ - // - // Add a text node - // - toNativeMML: function (parent) { - parent.appendChild(document.createTextNode(this.toString())); - } - }); - - MathJax.Hub.Register.StartupHook("TeX mathchoice Ready",function () { - MML.TeXmathchoice.Augment({ + + MML.msubsup.Augment({ // - // Get the MathML for the selected choice + // Use proper version of msub, msup, or msubsup, depending on + // which items are present // - toNativeMML: function (parent) {this.Core().toNativeMML(parent)} + toNativeMML: function (parent) { + var type = this.type; + if (this.data[this.sup] == null) {type = "msub"} + if (this.data[this.sub] == null) {type = "msup"} + var tag = this.NativeMMLelement(type); + this.NativeMMLattributes(tag); + delete this.data[0].inferred; + for (var i = 0, m = this.data.length; i < m; i++) + {if (this.data[i]) {this.data[i].toNativeMML(tag)}} + parent.appendChild(tag); + } }); + + MML.munderover.Augment({ + // + // Use proper version of munder, mover, or munderover, depending on + // which items are present + // + toNativeMML: function (parent) { + var type = this.type; + if (this.data[this.under] == null) {type = "mover"} + if (this.data[this.over] == null) {type = "munder"} + var tag = this.NativeMMLelement(type); + this.NativeMMLattributes(tag); + delete this.data[0].inferred; + for (var i = 0, m = this.data.length; i < m; i++) + {if (this.data[i]) {this.data[i].toNativeMML(tag)}} + parent.appendChild(tag); + } + }); + + if (MathJax.Hub.Browser.isFirefox) { + MML.mtable.Augment({ + toNativeMML: function (parent) { + // + // FF doesn't handle width, so put it in styles instead + // + if (this.width) { + var styles = (this.style||"").replace(/;\s*$/,"").split(";"); + styles.push("width:"+this.width); + this.style = styles.join(";"); + } + this.SUPER(arguments).toNativeMML.call(this,parent); + } + }); + MML.mlabeledtr.Augment({ + toNativeMML: function (parent) { + // + // FF doesn't handle mlabeledtr, so remove the label + // + var tag = this.NativeMMLelement("mtr"); + this.NativeMMLattributes(tag); + for (var i = 1, m = this.data.length; i < m; i++) { + if (this.data[i]) {this.data[i].toNativeMML(tag)} + else {tag.appendChild(this.NativeMMLelement("mrow"))} + } + parent.appendChild(tag); + } + }); + + var fontDir = MathJax.Hub.config.root + "/fonts/HTML-CSS/TeX/otf"; + + /* + * Add fix for mathvariant issues in FF + */ + nMML.Augment({ + config: { + styles: { + '[mathvariant="double-struck"]': {"font-family":"MathJax_AMS"}, + '[mathvariant="script"]': {"font-family":"MathJax_Script"}, + '[mathvariant="fraktur"]': {"font-family":"MathJax_Fraktur"}, + '[mathvariant="-tex-oldstyle"]': {"font-family":"MathJax_Caligraphic"}, + '[mathvariant="-tex-oldstyle-bold"]': {"font-family":"MathJax_Caligraphic", "font-weight":"bold"}, + '[mathvariant="-tex-caligraphic"]': {"font-family":"MathJax_Caligraphic"}, + '[mathvariant="-tex-caligraphic-bold"]': {"font-family":"MathJax_Caligraphic", "font-weight":"bold"}, + '[mathvariant="bold-script"]': {"font-family":"MathJax_Script", "font-weight":"bold"}, + '[mathvariant="bold-fraktur"]': {"font-family":"MathJax_Fraktur", "font-weight":"bold"}, + '[mathvariant="monospace"]': {"font-family":"monospace"}, + '[mathvariant="sans-serif"]': {"font-family":"sansserif"}, + '[mathvariant="bold-sans-serif"]': {"font-family":"sansserif", "font-weight":"bold"}, + '[mathvariant="sans-serif-italic"]': {"font-family":"sansserif", "font-style":"italic"}, + '[mathvariant="sans-serif-bold-italic"]': {"font-family":"sansserif", "font-style":"italic", "font-weight":"bold"}, + + '@font-face /*1*/': { + "font-family": "MathJax_AMS", + "src": "local('MathJax_AMS'), url('"+fontDir+"/MathJax_AMS-Regular.otf')" + }, + '@font-face /*2*/': { + "font-family": "MathJax_Script", + "src": "local('MathJax_Script'), url('"+fontDir+"/MathJax_Script-Regular.otf')" + }, + '@font-face /*3*/': { + "font-family": "MathJax_Fraktur", + "src": "local('MathJax_Fraktur'), url('"+fontDir+"/MathJax_Fraktur-Regular.otf')" + }, + '@font-face /*4*/': { + "font-family": "MathJax_Caligraphic", + "src": "local('MathJax_Caligraphic'), url('"+fontDir+"/MathJax_Caligraphic-Regular.otf')" + }, + '@font-face /*5*/': { + "font-family": "MathJax_Fraktur", "font-weight":"bold", + "src": "local('MathJax_Fraktur-Bold'), url('"+fontDir+"/MathJax_Fraktur-Bold.otf')" + }, + '@font-face /*6*/': { + "font-family": "MathJax_Caligraphic", "font-weight":"bold", + "src": "local('MathJax_Caligraphic-Bold'), url('"+fontDir+"/MathJax_Caligraphic-Bold.otf')" + } + } + } + }); + } + + MML.TeXAtom.Augment({ + // + // Convert TeXatom to an mrow + // + toNativeMML: function (parent) { + // FIXME: Handle spacing using mpadded? + var tag = this.NativeMMLelement("mrow"); + this.data[0].toNativeMML(tag); + parent.appendChild(tag); + } + }); + + MML.chars.Augment({ + // + // Add a text node + // + toNativeMML: function (parent) { + parent.appendChild(document.createTextNode(this.toString())); + } + }); + + MML.entity.Augment({ + // + // Add a text node + // + toNativeMML: function (parent) { + parent.appendChild(document.createTextNode(this.toString())); + } + }); + + MathJax.Hub.Register.StartupHook("TeX mathchoice Ready",function () { + MML.TeXmathchoice.Augment({ + // + // Get the MathML for the selected choice + // + toNativeMML: function (parent) {this.Core().toNativeMML(parent)} + }); + }); + }); -}); - if (HUB.config.menuSettings.zoom !== "None") {AJAX.Require("[MathJax]/extensions/MathZoom.js")} From 1893ba4abe92c736edb32254fe07864520ddc917 Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Sun, 14 Nov 2010 20:20:01 -0500 Subject: [PATCH 3/8] Load jax configuration files asynchronously (must keep track or original orderto get default output jax right) --- mathjax/unpacked/MathJax.js | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/mathjax/unpacked/MathJax.js b/mathjax/unpacked/MathJax.js index d4a7a0a26..ba1f7c908 100644 --- a/mathjax/unpacked/MathJax.js +++ b/mathjax/unpacked/MathJax.js @@ -1533,9 +1533,16 @@ MathJax.Hub.Startup = { // Load the input and output jax // Jax: function () { + var config = MathJax.Hub.config; + // Save the order of the output jax since they are loading asynchronously + config.outputJax.order = {}; + for (var i = 0, m = config.jax.length, k = 0; i < m; i++) { + if (config.jax[i].substr(0,7) === "output/") + {config.outputJax.order[config.jax[i].substr(7)] = k; k++} + } return this.queue.Push( ["Post",this.signal,"Begin Jax"], - ["loadArray",this,MathJax.Hub.config.jax,"jax","config.js",true], + ["loadArray",this,config.jax,"jax","config.js"], ["Post",this.signal,"End Jax"] ); }, @@ -1719,12 +1726,15 @@ MathJax.Hub.Startup = { BASE.OutputJax = JAX.Subclass({ Register: function (mimetype) { - if (!HUB.config.outputJax) {HUB.config.outputJax = {}} - if (!HUB.config.outputJax[mimetype]) { - HUB.config.outputJax[mimetype] = []; - if (!HUB.config.menuSettings.renderer) {HUB.config.menuSettings.renderer = this.id} + var jax = HUB.config.outputJax; + if (!jax[mimetype]) { + jax[mimetype] = []; + if (!HUB.config.menuSettings.renderer) + {HUB.config.menuSettings.renderer = this.id} } - HUB.config.outputJax[mimetype].push(this); + // If the output jax is earlier in the original configuration list, put it first here + if (jax[mimetype].length && (jax.order[this.id]||0) < (jax.order[jax[mimetype][0].id]||0)) + {jax[mimetype].unshift(this)} else {jax[mimetype].push(this)} // Make sure the element jax is loaded before Startup is called if (!this.require) {this.require = []} else if (!(this.require instanceof Array)) {this.require = [this.require]}; From 1858663245759506aa57c753f18fb5caa0e4bf43 Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Sun, 14 Nov 2010 21:05:23 -0500 Subject: [PATCH 4/8] Do Jax and Extensions in parallel --- mathjax/unpacked/MathJax.js | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/mathjax/unpacked/MathJax.js b/mathjax/unpacked/MathJax.js index ba1f7c908..699cd5a24 100644 --- a/mathjax/unpacked/MathJax.js +++ b/mathjax/unpacked/MathJax.js @@ -1540,7 +1540,8 @@ MathJax.Hub.Startup = { if (config.jax[i].substr(0,7) === "output/") {config.outputJax.order[config.jax[i].substr(7)] = k; k++} } - return this.queue.Push( + var queue = MathJax.Callback.Queue(); + return queue.Push( ["Post",this.signal,"Begin Jax"], ["loadArray",this,config.jax,"jax","config.js"], ["Post",this.signal,"End Jax"] @@ -1550,7 +1551,8 @@ MathJax.Hub.Startup = { // Load the extensions // Extensions: function () { - return this.queue.Push( + var queue = MathJax.Callback.Queue(); + return queue.Push( ["Post",this.signal,"Begin Extensions"], ["loadArray",this,MathJax.Hub.config.extensions,"extensions"], ["Post",this.signal,"End Extensions"] @@ -1935,8 +1937,14 @@ MathJax.Hub.Startup = { ["Config",STARTUP], ["Cookie",STARTUP], ["Styles",STARTUP], - ["Jax",STARTUP], - ["Extensions",STARTUP], + function () { + // Do Jax and Extensions in parallel, but wait for them all to complete + var queue = BASE.Callback.Queue( + STARTUP.Jax(), + STARTUP.Extensions() + ); + return queue.Push({}); + }, STARTUP.onLoad(), function () {MathJax.isReady = true}, // indicates that MathJax is ready to process math ["Typeset",STARTUP], From ed75d7a48f5a9cd6c9a6766233e14fd1572a5d4a Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Sun, 14 Nov 2010 21:34:34 -0500 Subject: [PATCH 5/8] Add compressed versions of the changes for parallel loading --- mathjax/MathJax.js | 4 ++-- mathjax/jax/input/MathML/config.js | 2 +- mathjax/jax/input/TeX/config.js | 2 +- mathjax/jax/output/HTML-CSS/jax.js | 4 ++-- mathjax/jax/output/NativeMML/jax.js | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/mathjax/MathJax.js b/mathjax/MathJax.js index 881261fea..c56017a70 100644 --- a/mathjax/MathJax.js +++ b/mathjax/MathJax.js @@ -37,7 +37,7 @@ MathJax.Unpack = function (data) { MathJax.isPacked = true; MathJax.Unpack([ - ['if(','document.','getElementById','&&',1,'childNodes&&',1,'createElement','){','if(!','window.MathJax','){',10,'={}}',9,'MathJax.Hub','){MathJax.version="1.0.7";(','function(','d){','var b=','window[d];if(!','b){b','=window[d]={}}var ','f','=[];','var c=',17,'g','){var h=','g.','constructor',';if(!','h){h=','new Function','("")}','for(var ','i in g){if(i!=="',30,'"&&g','.hasOwnProperty','(i)){h[i]=g[i]}}','return ','h};var a=','function(){',41,33,'("',41,'arguments','.callee','.Init','.call(this,',48,')")};var e=a();e','.prototype','={bug_test:1};',9,'e',54,'.bug_test){a=',43,41,43,41,48,49,50,51,48,')}}}b.','Object','=c({',30,':a(),Subclass:',17,'g,i',28,'a();h.SUPER=this;h',50,'=this',50,';h','.Subclass','=this',82,';h.Augment=this.Augment;h.','protoFunction','=this.',86,';h.can=this.can;h.has=this.has;h.isa=this.isa;h',54,'=new this(f);h',54,'.',30,'=h;h.Augment(g,i);',41,'h},Init:',17,'g',28,'this;if(g','.length===','1&&g[0]===f','){return ','h}if(!(h ','instanceof ','g',49,')){h=new g',49,'(f)}',41,'h',50,'.apply(','h,g)||h},Augment:',17,'g,h){var i;if(g','!=null){for(i in ','g){if(g',39,'(i)){this','.',86,'(i,g[i','])}}if(g.toString!==this.prototype.toString&&g.toString!=={}.toString){this.protoFunction("toString",g.toString)}}','if(h',119,'h){if(','h',39,122,'[i]=h[i]}}}',41,'this},',86,':',17,'h,g){this',54,'[h]=g;','if(typeof',' g','==="function"){','g.SUPER=this.SUPER',54,'}},prototype:{Init',':function(){},','SUPER:',17,'g',104,'g',49,'.SUPER},can:',17,'g',104,'typeof(this[g','])==="function"},has:',17,'g',104,159,'])!=="undefined','"},isa:',17,'g){return(g ',106,70,')&&(this ',106,'g)}},can:',17,'g',104,'this',54,'.can',51,'g)},has:',17,'g',104,'this',54,'.has',51,'g)},isa:',17,'h){var g=this;while(',120,'===h',104,'true}else{g=g.SUPER}}',41,'false},SimpleSUPER:c({',30,':',17,'g',104,'this.SimpleSUPER.define(g)},define:',17,'g){var i={};if(g!=null){',35,'h in ',120,39,'(h)){this.',86,'(h,g[h',126,41,'i},wrap:',17,'i,h){',142,'(h',')==="function"&&','h','.toString','().match(/\\.\\s*SUPER\\s*\\(/)){var g=',33,'(this.wrapper);g.label=i;g','.original','=h;h=g;g',222,'=this.stringify}',41,'h},wrapper:',43,'var h=',48,49,';this.SUPER=h.SUPER[h.label];try{var g=h',226,'.apply(this',',',48,')}catch(i){','delete this.','SUPER;','throw i}',242,243,41,'g}.','toString().replace','(/^\\s*function \\(\\)\\s*\\{\\s*/i,"").replace(/\\s*\\}\\s*$/i,""),toString:',43,41,'this',226,222,238,226,',',48,')}})})})("MathJax");(',17,'BASENAME){var ','BASE=window[BASENAME','];',9,'BASE){',263,']={}}var ','CALLBACK','=',17,'data){var cb=',33,'("',41,48,49,'.execute',115,48,49,',',48,')");',35,'id in ','CALLBACK.prototype','){if(',287,39,'(id)){',142,'(data[id',165,'"){cb[id]=data[id]}else{cb[id]=',287,'[id]}}}cb',222,'=',287,222,';',41,'cb};',287,'={isCallback:true,hook',148,'data:[],object:window,execute:',43,9,'this.called||this.autoReset){this.called=!this.autoReset;',41,'this.hook',238,'.object,this','.data.concat([].slice.call(',48,',0)))}},reset:',43,242,'called},toString:',43,41,313,222,238,'.hook,',48,')}};var ISCALLBACK=',17,'f){return(typeof(f',220,'f.isCallback)};var EVAL=',17,'code',104,'eval.call(window,code)};EVAL("var __TeSt_VaR__ = 1','");if(','window.__TeSt_VaR__','){try{delete ',339,'}catch(error){',339,'=null}}else{if(','window.execScript','){EVAL=',17,'code){BASE.__code=code;code="try {"+BASENAME+".__result = eval("+BASENAME+".__code)} catch(err) {"+BASENAME+".__result = err}";',345,'(code',');var result=BASE.__result;delete BASE.__result;delete BASE.__code;if(result instanceof Error){throw result}return result','}}else{EVAL=',17,348,'var head=(',1,'getElementsByTagName("head"))[0];if(!','head){head=',1,'body}var script=',1,7,'("script");','script','.appendChild(',1,'createTextNode','(code));head',365,'script);','head.removeChild(','script',351,'}}}var USING=',17,'args,i','){if(',48,'.length','>1){if(',48,102,'2&&!(typeof ',48,'[0]==="function")&&',48,'[0] ',106,'Object&&typeof ',48,'[1]==="number"){','args=[].slice.call(',376,')}else{',392,48,',0)}}if(args ',106,'Array&&args',102,'1){args=args[0]}',142,' args',144,'if(args',278,'===',287,278,104,'args}',41,269,'({hook:args})}else{if(args ',106,'Array){',142,'(args[0])==="string"&&args[1] ',106,389,'args[1][args[0]]==="','function"){return CALLBACK({hook:args[','1][args[0]],object:args[1','],data:args.slice(','2)})}else{',142,' args[0]==="',422,'0',424,'1)})}else{',142,' args[1]==="',422,'1],object:args[0',424,'2)})}}}}else{',142,'(args)==="','string"){',41,269,'({hook:EVAL,data:[args]})}else{if(args ',106,70,104,269,'(args',394,142,439,'undefined"){',41,269,'({})}}}}}','throw Error("Can\'t ','make ','callback',' from given data")};var DELAY=',17,'time,',458,'){callback=USING(callback);',458,'.timeout=','setTimeout(',458,',time);','return callback','};var WAITFOR=',17,458,',signal',463,9,458,'.called){','WAITSIGNAL(',458,473,');signal.pending++}};var WAITEXECUTE=',43,'var signals=this','.signal',';',242,'signal;this',278,'=this.','oldExecute;',242,490,'var result=','this',278,238,',',48,');','if(ISCALLBACK(result)&&!result.called){',478,'result,signals',394,'for(var i=0,m=','signals','.length;if){f=',1,909,379,'}',9,'h){h=(',1,357,32,1,'body}}',41,'h};var e',24,19,43,35,'j=0,h=e',379,';j=this.timeout){h(','this.STATUS.ERROR',');',41,'1}',41,'0},file:',17,'i,',129,'h<0){',935,1010,'(i',394,935,'loadComplete','(i)}},execute:',43,313,717,315,',this.data[0],this.data[1])},',1069,':',17,'h,i,j){if(h.time(j)){return}if(',1,909,379,'>i&&',1,909,'[i].cssRules','&&',1,909,1125,379,'){j(h.STATUS.OK',394,466,'h,h.delay',')}},checkLength:',17,'h,k,m){if(h.time(m)){return}var l=0;var i=(k.sheet||k.styleSheet);try{if((i.cssRules||i.rules||[]).length>0){l=1}}catch(j){','if(j.message.match(/','protected variable|restricted URI/)){l=1}else{',1138,'Security error/)){l=1}}}if(l){',466,1008,'([m,h.STATUS.OK]),0',394,466,1134,')}}},',1108,':',17,32,985,'h);var i=',1012,'[h];if(i){a.Message.Clear(i.',754,'clearTimeout(','i.timeout);if(i.script){if(e',102,'0){',466,'b,0)}e.push(i.script)}',948,'h]=i.status;delete ',1012,'[h];',9,961,'h]){',961,'h]=[]}',961,'h].push(i.',458,394,948,'h]=',1020,';i={status:',1020,'}}',1008,'.',841,'(',961,'h],i.status)},',1010,':',17,129,1012,'[h].timeout','){',1158,1012,1194,')}',1012,'[h].status=',1093,';this.loadError(h);this.',1108,'(h)},loadError:',17,'h){a.Message.Set("File failed to load: "+h,null,2000)},Styles:',17,'j,k',28,'this.StyleString(',986,'h===""){k',944,'k);k()}else{var i=',1,7,'("style");',1030,968,1022,365,1053,'i',1056,'i',1058,'.styleSheet.cssText=h}else{i',365,1,367,'(h))}k=',1043,'.create',51,'k,i)}',41,'k},StyleString:',17,'m){',142,'(m)==="',440,41,'m}var j="",n,l;for(n in m){if(m',39,'(n)){',142,' m[n]==="',440,'j+=n+" {"+','m[n]+"}\\n"}else{if(m[n] ',106,416,35,'k=0;k1?d[1]:""));g=null}if(f&&(!b.',159,'||d)){c',32,'=c',32,517,498,',(f.length>1?f[1]:""))}if(g&&!g',32,'.match(/\\S/)){','g=g',480,'}}if(b.',164,'&&g&&g.className==b.',164,'){try{g.',422,'=""}catch(e){}g.style.display="none"}',283,'a.',22,477,'=1}},',400,46,'h,b,d){if(',356,'){',44,323,'q,o=',22,301,';var p=',195,176,',c=',195,178,';try{if(!b){b=','new Date().getTime','()}var j=0,l,f;while(jthis.',184,'&&j=0;o--){if(b[o].src.match(d)){q.script=b[o].',422,11,'RegExp.$2){q.params={};var r=RegExp.$2.substr(1).split(/\\&/);',140,'n=0,h=r.length;n=parseInt(x[y])}}',44,'true},Select',46,999,'j[','c.Browser','];if(i){',44,'i(',1359,')}',44,'null}};var g=',1329,'replace(/^Mozilla\\/(\\d+\\.)+\\d+ /,"").replace(/[a-z][-a-z0-9._: ]+\\/\\d+[^ ]*-[^ ]*\\.([a-z][a-z])?\\d+ /i,"").replace(/Gentoo |Ubuntu\\/(\\d+\\.)*\\d+ (\\([^)]*\\) )?/,"");',1359,'=c',192,'c',192,1348,'("Unknown"),{version:"0.0"}),a);',140,'t in a){if(a',712,'(t)){if(a[t]&&t',134,'2)==="is"){t=t.slice(2);if(t==="Mac"||t==="PC"){',563,1359,'=c',192,1348,'(t),a);var p',491,'(".*(Version',')/((?:\\\\d+\\\\.)+\\\\d','+)|.*("+t+")"+(t=="MSIE"?" ":"/")+"((?:\\\\d+\\\\.)*\\\\d+)|(?:^|\\\\(| )([a-z][-a-z0-9._: ]+|WebKit',1390,'+)");var s=p.exec(g)||["","","","unknown","0.0"];',1359,'.name=(s[1]=="Version"?t:(s[3]||s[5]));',1359,'.version=','s[2]||s[4]||s[6];break}}}',1359,'.Select({Safari',46,999,'parseInt((String(j',1346,'("."))[0]);if(i>=526){','j.version="','4.0','"}else{if(i','>=525){',1406,'3.1',1408,'>500){',1406,'3.0',1408,'>400){',1406,'2.0',1408,'>85){',1406,'1.0"}}}}}},Firefox',46,'j){if(j.version==="0.0"&&navigator.product==="Gecko"&&','navigator.productSub','){var i=',1426,134,'8);if(i>="20090630"){',1406,'3.5',1408,'>="20080617"){',1406,'3.0',1408,'>="20061024"){',1406,'2.0"}}}}},Opera',46,'i){i',1397,1338,'()}});',1359,'.Select(',22,655,'browsers);c.queue=f.',40,1065,'c.queue.Push(["','Post",q.signal,"','Begin"],["Config",q],["Cookie",q],["Styles",q],["Jax",q],["',893,'",q],q.onLoad(),',120,22,'isReady=true},["',317,'",q],["',1454,'End"])})("MathJax")}};'] + ['if(','document.','getElementById','&&',1,'childNodes&&',1,'createElement','){','if(!','window.MathJax','){',10,'={}}',9,'MathJax.','Hub){',15,'version="1.0.8";(','function(','d){','var b=','window[d];if(!','b){b','=window[d]={}}var ','f','=[];','var c=',19,'g','){var h=','g.','constructor',';if(!','h){h=','new Function','("")}','for(var ','i in g){if(i!=="',32,'"&&g','.hasOwnProperty','(i)){h[i]=g[i]}}','return ','h};var a=','function(){',43,35,'("',43,'arguments','.callee','.Init','.call(this,',50,')")};var e=a();e','.prototype','={bug_test:1};',9,'e',56,'.bug_test){a=',45,43,45,43,50,51,'.Init',53,50,')}}}b.','Object','=c({',32,':a(),Subclass:',19,'g,i',30,'a();h.SUPER=this;h.Init=this.Init;h','.Subclass','=this',80,';h.Augment=this.Augment;h.','protoFunction','=this.',84,';h.can=this.can;h.has=this.has;h.isa=this.isa;h',56,'=new this(f);h',56,'.',32,'=h;h.Augment(g,i);',43,'h},Init:',19,'g',30,'this;if(g','.length===','1&&g[0]===f','){return ','h}if(!(h ','instanceof ','g',51,')){h=new g',51,'(f)}',43,'h.Init.apply(h,g)||h},Augment:',19,'g,h){var i;if(g','!=null){for(i in ','g){if(g',41,'(i)){this','.',84,'(i,g[i','])}}if(g.toString!==this.prototype.toString&&g.toString!=={}.toString){this.protoFunction("toString",g.toString)}}','if(h',114,'h){if(','h',41,117,'[i]=h[i]}}}',43,'this},',84,':',19,'h,g){this',56,'[h]=g;','if(typeof',' g','==="function"){','g.SUPER=this.SUPER',56,'}},prototype:{Init',':function(){},','SUPER:',19,'g',102,'g',51,'.SUPER},can:',19,'g',102,'typeof(this[g','])==="function"},has:',19,'g',102,154,'])!=="undefined','"},isa:',19,'g){return(g ',104,72,')&&(this ',104,'g)}},can:',19,'g',102,'this',56,'.can',53,'g)},has:',19,'g',102,'this',56,'.has',53,'g)},isa:',19,'h){var g=this;while(',115,'===h',102,'true}else{g=g.SUPER}}',43,'false},SimpleSUPER:c({',32,':',19,'g',102,'this.SimpleSUPER.define(g)},define:',19,'g){var i={};if(g','!=null){',37,'h in ',115,41,'(h)){this.',84,'(h,g[h',121,43,'i},wrap:',19,'i,h){',137,'(h',')==="function"&&','h','.toString','().match(/\\.\\s*SUPER\\s*\\(/)){var g=',35,'(this.wrapper);g.label=i;g','.original','=h;h=g;g',218,'=this.stringify}',43,'h},wrapper:',45,'var h=',50,51,';this.SUPER=h.SUPER[h.label];try{var g=h',222,'.apply(this',',',50,')}catch(i){','delete this.','SUPER;','throw i}',238,239,43,'g}.','toString().replace','(/^\\s*function \\(\\)\\s*\\{\\s*/i,"").replace(/\\s*\\}\\s*$/i,""),toString:',45,43,'this',222,218,234,222,',',50,')}})})})("MathJax");(',19,'BASENAME){var ','BASE=window[BASENAME','];',9,'BASE){',259,']={}}var ','CALLBACK','=',19,'data){var cb=',35,'("',43,50,51,'.execute','.apply(',50,51,',',50,')");',37,'id in ','CALLBACK.prototype','){if(',283,41,'(id)){',137,'(data[id',160,'"){cb[id]=data[id]}else{cb[id]=',283,'[id]}}}cb',218,'=',283,218,';',43,'cb};',283,'={isCallback:true,hook',143,'data:[],object:window,execute:',45,9,'this.called||this.autoReset){this.called=!this.autoReset;',43,'this.hook',234,'.object,this','.data.concat([].slice.call(',50,',0)))}},reset:',45,238,'called},toString:',45,43,309,218,234,'.hook,',50,')}};var ISCALLBACK=',19,'f){return(typeof(f',216,'f.isCallback)};var EVAL=',19,'code',102,'eval.call(window,code)};EVAL("var __TeSt_VaR__ = 1','");if(','window.__TeSt_VaR__','){try{delete ',335,'}catch(error){',335,'=null}}else{if(','window.execScript','){EVAL=',19,'code){BASE.__code=code;code="try {"+BASENAME+".__result = eval("+BASENAME+".__code)} catch(err) {"+BASENAME+".__result = err}";',341,'(code',');var result=BASE.__result;delete BASE.__result;delete BASE.__code;if(result instanceof Error){throw result}return result','}}else{EVAL=',19,344,'var head=(',1,'getElementsByTagName("head"))[0];if(!','head){head=',1,'body}var script=',1,7,'("script");','script','.appendChild(',1,'createTextNode','(code));head',361,'script);','head.removeChild(','script',347,'}}}var USING=',19,'args,i','){if(',50,'.length','>1){if(',50,100,'2&&!(typeof ',50,'[0]==="function")&&',50,'[0] ',104,'Object&&typeof ',50,'[1]==="number"){','args=[].slice.call(',372,')}else{',388,50,',0)}}if(args ',104,'Array&&args',100,'1){args=args[0]}',137,' args',139,'if(args',274,'===',283,274,102,'args}',43,265,'({hook:args})}else{if(args ',104,'Array){',137,'(args[0])==="string"&&args[1] ',104,385,'args[1][args[0]]==="','function"){return CALLBACK({hook:args[','1][args[0]],object:args[1','],data:args.slice(','2)})}else{',137,' args[0]==="',418,'0',420,'1)})}else{',137,' args[1]==="',418,'1],object:args[0',420,'2)})}}}}else{',137,'(args)==="','string"){',43,265,'({hook:EVAL,data:[args]})}else{if(args ',104,72,102,265,'(args',390,137,'(args',')==="undefined"){',43,265,'({})}}}}}','throw Error("Can\'t ','make ','callback',' from given data")};var DELAY=',19,'time,',454,'){callback=USING(callback);',454,'.timeout=','setTimeout(',454,',time);','return callback','};var WAITFOR=',19,454,',signal',459,9,454,'.called){','WAITSIGNAL(',454,469,');signal.pending++}};var WAITEXECUTE=',45,'var signals=this','.signal',';',238,'signal;this',274,'=this.','oldExecute;',238,486,'var result=','this',274,234,',',50,');','if(ISCALLBACK(result)&&!result.called){',474,'result,signals',390,'for(var i=0,m=','signals','.length;if){f=',1,905,375,'}',9,'h){h=(',1,353,34,1,'body}}',43,'h};var e',26,21,45,37,'j=0,h=e',375,';j=this.timeout){h(','this.STATUS.ERROR',');',43,'1}',43,'0},file:',19,'i,',124,'h<0){',931,1006,'(i',390,931,'loadComplete','(i)}},execute:',45,309,713,311,',this.data[0],this.data[1])},',1065,':',19,'h,i,j){if(h.time(j)){return}if(',1,905,375,'>i&&',1,905,'[i].cssRules','&&',1,905,1121,375,'){j(h.STATUS.OK',390,462,'h,h.delay',')}},checkLength:',19,'h,k,m){if(h.time(m)){return}var l=0;var i=(k.sheet||k.styleSheet);try{if((i.cssRules||i.rules||[]).length>0){l=1}}catch(j){','if(j.message.match(/','protected variable|restricted URI/)){l=1}else{',1134,'Security error/)){l=1}}}if(l){',462,1004,'([m,h.STATUS.OK]),0',390,462,1130,')}}},',1104,':',19,34,981,'h);var i=',1008,'[h];if(i){a.Message.Clear(i.',750,'clearTimeout(','i.timeout);if(i.script){if(e',100,'0){',462,'b,0)}e.push(i.script)}',944,'h]=i.status;',238,'loading[h];',9,957,'h]){',957,'h]=[]}',957,'h].push(i.',454,390,944,'h]=',1016,';i={status:',1016,'}}',1004,'.',837,'(',957,'h],i.status)},',1006,':',19,124,1008,'[h].timeout','){',1154,1008,1190,')}',1008,'[h].status=',1089,';this.loadError(h);this.',1104,'(h)},loadError:',19,'h){a.Message.Set("File failed to load: "+h,null,2000)},Styles:',19,'j,k',30,'this.StyleString(',982,'h===""){k',940,'k);k()}else{var i=',1,7,'("style");',1026,964,1018,361,1049,'i',1052,'i',1054,'.styleSheet.cssText=h}else{i',361,1,363,'(h))}k=',1039,'.create',53,'k,i)}',43,'k},StyleString:',19,'m){',137,'(m)==="',436,43,'m}var j="",n,l;for(n in m){if(m',41,'(n)){',137,' m[n]==="',436,'j+=n+" {"+','m[n]+"}\\n"}else{if(m[n] ',104,412,37,'k=0;k1?d[1]:""));g=null}if(f&&(!b.',122,'||d)){c',63,'=c',63,468,'(b.',124,',(f.length>1?f[1]:""))}if(g&&!g',63,'.match(/\\S/)){','g=g',433,'}}if(b.',127,'&&g&&g.className==b.',127,'){try{g',58,'=""}catch(e){}g',93,'"}',237,'){a.',97,430,'=1}},',346,1,'(h,b,d',3,305,238,277,'q,o=',103,254,401,'var p=',155,135,',c=',155,137,';try{if(!b){b=','new Date().getTime','()}var j=0,l,f;while(jthis.',143,'&&j=0;o--){if(b[o].src.match(d)){q.script=b[o].innerHTML;if(RegExp.$2){q.params={};var r=RegExp.$2.substr(1).split(/\\&/);',110,'n=0,h=r',1100,'k=r[n].match(/(.*)=(.*)/);if(k){q.params[unescape(k[1])]=unescape(k[2])}}}u.root=b[o].src',468,'(/(^|\\/)[^\\/]*$/,"");break}}f.Ajax.config=u;var a={isMac',':(navigator.platform.substr(0,3)==="','Mac"),isPC',1323,'Win"),isMSIE:(window.ActiveXObject','!=null&&window.','clipboardData',6,'),isFirefox:(window.netscape',6,'&&',629,'ATTRIBUTE_NODE',1327,'opera',39,'),isSafari:(','navigator.userAgent.','match(/ (Apple)?WebKit\\//)!=null&&','window.chrome',39,'),isChrome:(',1341,1327,'chrome.loadTimes',6,'),isOpera:(window.opera',1327,'opera.version',6,'),isKonqueror:(window',656,'&&window',656,'("konqueror")&&navigator.vendor=="KDE"),versionAtLeast',1,'(x){var w=(this','.version).split','(".");x=(','new String','(x)).split(".");',110,'y=0,j=x.length;y=parseInt(x[y])}}',105,'true},Select',1,'(j){var i=','j[c.Browser];if(i',238,'i(c.Browser)}',105,'null}};var g=',1339,'replace(/^Mozilla\\/(\\d+\\.)+\\d+ /,"").replace(/[a-z][-a-z0-9._: ]+\\/\\d+[^ ]*-[^ ]*\\.([a-z][a-z])?\\d+ /i,"").replace(/Gentoo |Ubuntu\\/(\\d+\\.)*\\d+ (\\([^)]*\\) )?/,"");c.Browser=c',152,'c',152,1361,'("Unknown"),{version:"0.0"}),a);',110,'t in a',3,'a',656,'(t)){if(a[t]&&t',101,'2)==="is"){t=t.slice(2);if(t==="Mac"||t==="PC"){continue}c.Browser=c',152,1361,'(t),a);var p',441,'(".*(Version',')/((?:\\\\d+\\\\.)+\\\\d','+)|.*("+t+")"+(t=="MSIE"?" ":"/")+"((?:\\\\d+\\\\.)*\\\\d+)|(?:^|\\\\(| )([a-z][-a-z0-9._: ]+|WebKit',1396,'+)");var s=p.exec(g)||["","","","unknown","0.0"];c.Browser.name=(s[1]=="Version"?t:(s[3]||s[5]));c.Browser.version=s[2]||s[4]||s[6];break}}}','c.Browser.Select','({Safari',1,1370,'parseInt((String(j',1359,'("."))[0]);if(i>=526){','j.version="','4.0','"}else{if(i','>=525){',1407,'3.1',1409,'>500){',1407,'3.0',1409,'>400){',1407,'2.0',1409,'>85){',1407,'1.0"}}}}}},Firefox',1,'(j',3,'j.version==="0.0"&&navigator.product==="Gecko"&&','navigator.productSub','){var i=',1429,101,'8);if(i>="20090630"){',1407,'3.5',1409,'>="20080617"){',1407,'3.0',1409,'>="20061024"){',1407,'2.0"}}}}},Opera',1,'(i){i.version=',1350,'()}});',1400,'(',97,594,'browsers);c.queue=f.Callback',849,'c.queue',852,'Post",q.signal,"','Begin"],["',148,'",q],["Cookie",q],["Styles",q],',888,'var i=f.Callback.Queue(q.Jax(),q.',860,'());',105,'i.Push({})},q.onLoad(),',888,97,275,'=true},["Typeset",q],["',1456,'End"])})("',103,'")}};'] ]); diff --git a/mathjax/jax/input/MathML/config.js b/mathjax/jax/input/MathML/config.js index b7283892f..04cc8fcc3 100644 --- a/mathjax/jax/input/MathML/config.js +++ b/mathjax/jax/input/MathML/config.js @@ -13,6 +13,6 @@ */ MathJax.Unpack([ - ['MathJax.InputJax','.MathML','=',0,'({id:"','MathML",','version:"1.0.3",directory:',0,'.directory+"/',5,'extensionDir',':',0,'.',10,'+"/',5,'entityDir:',0,8,'MathML/entities",require:[MathJax.ElementJax',8,'mml/jax.js"],config:{useMathMLspacing:false}});',0,1,'.Register("math/mml");',0,1,'.loadComplete("config.js");'] + ['MathJax.InputJax','.MathML','=',0,'({id:"MathML",version:"1.0.3",directory:',0,'.directory+"/MathML','",extensionDir:',0,'.extensionDir+"/MathML",entityDir:',0,6,'/entities",config:{useMathMLspacing:false}});',0,1,'.Register("math/mml");',0,1,'.loadComplete("config.js");'] ]); diff --git a/mathjax/jax/input/TeX/config.js b/mathjax/jax/input/TeX/config.js index 15c16fe88..92bde08f9 100644 --- a/mathjax/jax/input/TeX/config.js +++ b/mathjax/jax/input/TeX/config.js @@ -13,6 +13,6 @@ */ MathJax.Unpack([ - ['MathJax.InputJax','.TeX','=',0,'({id:"TeX",version:"1.0.3",directory:',0,'.directory+"/','TeX",extensionDir:',0,'.extensionDir+"/TeX",require:[MathJax.ElementJax',6,'mml/jax.js"],config:{TagSide:"right",TagIndent:"0.8em",MultLineWidth:"85%"}});',0,1,'.Register("math/tex");',0,1,'.loadComplete("config.js");'] + ['MathJax.InputJax','.TeX','=',0,'({id:"TeX",version:"1.0.3",directory:',0,'.directory+"/TeX",extensionDir:',0,'.extensionDir+"/TeX",config:{TagSide:"right",TagIndent:"0.8em",MultLineWidth:"85%"}});',0,1,'.Register("math/tex");',0,1,'.loadComplete("config.js");'] ]); diff --git a/mathjax/jax/output/HTML-CSS/jax.js b/mathjax/jax/output/HTML-CSS/jax.js index 1ff310409..4c2d3ea67 100644 --- a/mathjax/jax/output/HTML-CSS/jax.js +++ b/mathjax/jax/output/HTML-CSS/jax.js @@ -13,7 +13,7 @@ */ MathJax.Unpack([ - ['(','function(','a,c,d,e){var b=','MathJax','.Object.Subclass({timeout:5*1000,FontInfo:{STIX:{family:"STIXSizeOneSym",','testString',':"() {} []"},TeX:{family:"MathJax_Size1",',5,':"() {} []"}},','comparisonFont',':["sans-serif","monospace","script","Times","Courier","Arial","Helvetica"],testSize:["40px","50px","60px","30px","20px"],Init:','function(){','this.div','=','MathJax.HTML.','addElement','(','document.body',',"div','",{style:{','position:"absolute','",','visibility:"hidden",','top:0,left:0,','width:"auto",padding:0,border:0,margin:0,textAlign:"left",textIndent:0,textTransform:"none",lineHeight:"normal",letterSpacing:"normal",wordSpacing:"normal','",','fontSize',':','this.testSize','[0],','fontWeight',':"normal",','fontStyle',':"normal"}},[""]);this.text=',12,'.firstChild','},findFont:',1,'j,g){if(g&&this.','testCollection','(g)){','return g','}for(var ','h=0,f=j','.length;h=0){','if(this.negativeSkipBug){',140,'i',862,';i',862,865,'j=',508,';if(i',35,'){i',487,'j,i',35,261,'i',483,'j)}j=',508,'}i',483,513,');g=',513,'.offsetLeft-j.offsetLeft;i',506,513,');',888,'i',506,'j);i',862,'=f}}',41,'/this.em},Measured:',1,'h,g){if(h','.bbox.width','==null&&h.bbox.w&&!h.bbox.isMultiline){',140,'this.getW(h);h.bbox.rw+=f-h.bbox.w;h.bbox.w=f}if(!g){g=h',615,'}if(!','g.bbox){g.bbox','=h.bbox}return h},Remeasured:',1,'g,f){f.bbox=this.Measured(g,f).bbox},Em:',1,'f){if(Math.abs(f)<0.0006',55,'"0em"}return f.toFixed(3',').replace(/\\.?0','+$/,"")+"em"},Percent:',1,'f',55,'(100*f).toFixed(1',941,'+$/,"")+"%"},length2percent:',1,'f',55,' ','this.Percent(','this.length2em(f','))},length2em:',1,'k,i){if(typeof(k)!=="string"){k=k.toString()}if(k===""){return""}','if(k===a.SIZE.','NORMAL',55,' 1}',958,'BIG',55,' 2}',958,'SMALL',55,' 0.71}if(k==="infinity"){return e.BIGDIMEN}',221,448,'TeX_factor;if(k.match(/mathspace$/)){return e.MATHSPACE[k]*h}var g=k.match(/^\\s*([-+]?(?:\\.\\d+|\\d+(?:\\.\\d*)?))?(pt|em|ex|mu|px|in|mm|cm|%)?/);',140,'parseFloat(g','[1]||"1"),j=g[2];if(i==null){i=1','}if(j==="','em','"){return f','*h',976,'ex',978,'*e.TeX.x_height*h}if(j==="%"){return f/100*i',976,'px',978,'/e.em',976,'pt',978,'/10*h',976,'in','"){return f*this.pxPerInch/e.em',976,'cm',994,'/2.54',976,'mm',994,'/25.4',976,'pc',994,'/12',976,'mu',978,'/18*h}return f*h*i},thickness2em:',1,757,'e.TeX.rule_thickness;','if(f===a.LINETHICKNESS.','MEDIUM',55,' g}',1014,'THIN',55,' 0.67*g}',1014,'THICK',55,' 1.67*g}return ',954,',g)},createStrut:',1,'i,g,j){',140,470,575,474,'height:g+"px",width:"1px",marginRight:"-1px"}});if(j){i',487,'f,i',35,261,'i',483,'f)}return f},createBlank:',1,'g,f,h',231,470,575,474,'height:"1px",width',':this.Em(f)}});if(','h){g',487,'i,g',35,261,'g',483,'i)}return i},createShift:',1,'g,f,i',740,470,'span',19,587,1049,'i){g',487,'h,g',35,261,'g',483,'h)}return h},createSpace:',1,'k,j,m,f,g){var i','=this.Em(','Math.max(','0,j+m)),l','=this.Em(-m);',527,'l',1076,'e.getHD(k',615,').d-m)}if(k.isBox||k',620,'=="mspace"){','k.bbox={h:j*k.scale,d:m*k.scale,w:f*k.scale,rw:f*k.scale,lw:0};k',788,'=i;k',571,'verticalAlign','=l}else{k=',495,'k,"span',19,'height:i,',1092,':l}})}if(f>=0){k',791,1076,'f);k',571,'display="inline-block"}else{',47,'msieNegativeSpaceBug){k',788,'=""}k',571,587,1076,'f);if(e.safariNegativeSpaceBug&&k',615,35,'==k){this','.createBlank(','k,0,true)}}if(g&&g!==a.COLOR.TRANSPARENT){k',571,'backgroundColor=g}return k},createRule:',1,'o,k,m,p,i){var j=e.TeX.min_rule_thickness;if(p>0&&p*this.em0&&(k+m)*this.em0&&n',503,'==0){n',791,1076,'p)}if(o.isBox||o',620,1087,'o.bbox=n.bbox}','return n},createFrame:',1,'o,m,n,p,r,g){var l=(this.msieBorderWidthBug?0:2*r);var q',1076,'m+n-l),f=this.Em(-n-r),k',1076,'p-l);var i',1076,'r)+" "+g;var j=',495,'o,"span',19,'border:i,',1132,474,'width:k,height:q},bbox:{h:m,d:n',1138,'f){j',571,1092,752,'j},createStack:',1,'h,j,g){',47,'msiePaddingWidthBug){this',510,'h,0)}var i=String(g).match(/%$/);var f=(!i&&g!=null?g:0);h=',495,'h,"span",{noAdjust:true,style:{',1132,305,'",width:(i?"100%":this.Em(f)),height:0}});if(!j){h',615,'.bbox=h.bbox={','h:-this.BIGDIMEN,d:-this.BIGDIMEN',',w:f,lw:','this.BIGDIMEN',',rw:(!i&&g!=null?g:-',1185,')};if(i){h',927,'=g}}return h},createBox:',1,'g,f',740,495,'g,"span',19,20,'"},isBox:true});if(f!=null){h',791,752,'h},addBox:',1,'f,g){g',862,865,'g.isBox=true;return f',483,'g)},placeBox:',1,'n,m,k,i){var o=n',615,',v=n.bbox,q=o.bbox;',47,'msiePlaceBoxBug){',515,'n,this.NBSP)}',47,'imgSpaceBug){',515,'n,this.imgSpace)}var p=n',872,'/this.em+1,z=0;if(n.noAdjust){p-=1}else{',527,495,'n,"img',631,319,'",border:0,src:"about:blank",style:{',1134,'this.Em(p',')}})}else{',495,'n,"',575,1134,1230,')}})}}n','.style.top=this.Em(-','k-p);n',571,'left',1076,'m+z);if(v){',888,'if(v.lw<0){z=v.lw;e',1116,'n,-z,true);h=0}if(v.rw>v.w){e',1116,'n,v.rw-v.w+0.1)}}if(!this.msieClipRectBug&&!v.noclip&&!i){var u=3/this.em;var s=(v.H==null?v.h:v.H),g=(v.D==null?v.d:v.D);var w=p-s-u,j=p+g+u,h=v.lw-3*u,f=1000;if(v.isFixed){f=v.width-h}n',571,'clip="rect("+this.Em(w',')+" "+this.Em(','f',1252,'j',1252,'h)+")"}}if(v&&q){if(v.H!=null&&(q.H==null||v.H+k>q.H)){q.H=v.H+k}if(v.D!=null&&(q.D==null||v.D-k>q.D)){q.D=v.D-k}if(v.h+k>q.h){q.h=v.h+k}if(v.d-k>q.d){q.d=v.d-k}if(q.H!=null&&q.H<=q.h){delete q.H}if(q.D!=null&&q.D<=q.d){delete q.D}if(v.w+m>q.w){q.w=v.w+m;if(q.width==null){o',791,1076,'q.w)}}if(v.rw+m>q.rw){q.rw=v.rw+m}if(v.lw+m=h-0.01||(o==k-1&&!g.stretch)){if(g.HW[o][2]){l*=g.HW[o][2]}if(g.HW[o][3]){f=g.HW[o][3]}var n=',495,'q,"',521,'this.createChar(','n,[f,g.HW[o][1]],l,j);q.bbox=n.bbox;q.offset=0.65*q.bbox.w;q.scale=l;return}}if(g.stretch){this["extendDelimiter"+g.dir](q,p,g.stretch,l,j)}},extendDelimiterV:',1,'u,o,z,A,r){var i','=this.createStack(','u,true);var q','=this.createBox(','i),p',1331,'i);',1325,'q,(z.top','||z.ext),A,r);',1325,'p,(z.bot',1337,'var g={bbox:{w:0,lw:0,rw:0}},x=g;var v=q.bbox.h+q.bbox.d+','p.bbox.h+p.bbox.d;','var l=-q.bbox.h;',1269,'q,0,l,true);l-=q','.bbox.d;if(z.mid','){x',1331,'i);',1325,'x,z.mid,A,r);v+=','x.bbox.h+x.bbox.d','}if(o>v){g=',470,521,1325,'g,z.ext,A,r);var w=g.bbox.h+g.bbox.d,f=w-0.05,s,j,t=(z.mid?2:1);j=s=Math.ceil((o-v)/(t*f));if(!z.fullExtenders){f=(o-v)/(t*s)}var m=(s/(s+1))*(w-f);f=w-m;l+=m+f-g.bbox.h;while(t-->0){while(s-->0){l-=f;',1269,'this.addBox(','i,g','.cloneNode(true)),','0,l,true)}l+=m-g',1346,'&&t){',1269,'x,0,l-x.bbox.h,true);','s=j;l+=-(',1352,')+m+f-g.bbox.h}}}else{l+=(v-o)/2;if(z.mid){',1269,1366,'l+=-(',1352,')}l+=(v-o)/2}',1269,'p,0,l-p.bbox.h,true);l-=',1342,'u.bbox={w:',1077,'q.bbox.w,g.bbox.w,p.bbox.w,x.bbox.w),lw:Math.min(q.bbox.lw,g.bbox.lw,p.bbox.lw,x.bbox.lw),rw:',1077,'q.bbox.rw,g.bbox.rw,p.bbox.rw,x.bbox.rw),h:0,d:-l};u.scale=A;u.offset=0.55*u.bbox.w;u','.isMultiChar=true;this.setStackWidth(','i,u.bbox.w)},extendDelimiterH:',1,'t,g,y,A,q){var j',1329,'t,true);var h',1331,'j),u',1331,'j);',1325,'h,(y.left','||y.rep),A,q);',1325,'u,(y.right',1395,140,470,521,1325,'f,y.rep,A,q);var v={bbox:{',1183,'}};',1269,'h,-h.bbox.lw,0,true);var o=(','h.bbox.rw-h.bbox.lw',')+(u.bbox.rw-u.bbox.lw)-0.05,m=',1408,'-0.025;if(y.mid){v',1331,'j);',1325,'v,y.mid,A,q);o+=v.bbox.w}if(g>o){var z=f.bbox.rw-f.bbox.lw,i=z-0.05,r,l,s=(y.mid?2:1);l=r=Math.ceil((g-o)/(s*i));i=(g-o)/(s*r);var p=(r/(r+1))*(z-i);i=z-p;m-=f.bbox.lw+p;while(s-->0){while(r-->0){',1269,1359,'j,f',1361,'m,0,true);m+=i}if(y.mid&&s){',1269,'v,m,0,true);m+=v.bbox.w','-p;r=l}}}else{m-=(o-g)/2;if(y.mid){',1269,1422,'}m-=(o-g)/2}',1269,'u,m,0,true);t.bbox={w:m+u.bbox.rw,lw:0,rw:m+u.bbox.rw,H:',1077,'h.bbox.h,f.bbox.h,u.bbox.h,v.bbox.h),D:',1077,'h.bbox.d,f.bbox.d,u.bbox.d,v.bbox.d),h:f.bbox.h,d:f.bbox.d};t.scale=A;t',1383,'j,t.bbox.w)},createChar:',1,'o,k,h,f){var n=o,p="",j={fonts:[k[1]],noRemap:true};if(f&&f===a.VARIANT.BOLD){j.fonts=[k[1]+"-bold",k[1]]}if(typeof(k[1])!=="string"){j=k[1]}if(k[0] ',451,'){for(var l=0,','g=k[0].length;l=r[q].low&&s<=r[q].high){if(r[q].remap&&r[q].remap[s]){s=k+r[q].remap[s]}else{s=s-r[q].low+k;if(r[q].add){s+=r[q].add}}if(','j["variant"+r[q].offset',']){j=',448,'VARIANT[',1524,']]}break}}}if(j.remap&&j.remap[s]){if(j.remap[s] ',451,740,'j.remap[s];s=h[0];j=',448,1527,'h[1]]}else{s=j.remap[s];if(','j.remap.variant','){j=',448,1527,1536,']}}}if(',448,'REMAP[s]&&!j.noRemap){s=',448,'REMAP[s]}p=this.lookupChar(j,s);y=p[s];if(j!==x&&!y[5].img){if(u','.length){',515,'f,u);u=""}f=v;x=g;if(j!==x){if(x){f=',495,'v,"span")}else{g=j}}this.handleFont(f,p,f!==v);x=j}u=this.handleChar(f,p,y,s,u);if(y[0',']/1000>v.bbox.','h){v.bbox.h=y[0]/1000}if(y[1',1551,'d){v.bbox.d=y[1',']/1000}if(v.bbox.w+y[','3]/1000=0;h--){if(g.Ranges[h][2]==k){g.Ranges.splice(h,1)}}this.loadFont(g.directory+"/"+k+".js")}}}},loadFont:',1,'g){',140,219,'.Queue();','f.Push(["Require",c,this.','fontDir+"/"+g]);if(',405,'){if(!',3,'.isPacked){g=g.replace(/\\/([^\\/]*)$/,e.imgPacked+"/$1")}',1660,'webfontDir+"/png/"+g])}','d.RestartAfter(','f.Push({}))},',208,':',1,'f){f.available=f.',750,'f.family=f.name}',1668,387,208,'(f))},',244,':',1,'g,f){',212,'disable web fonts");g.',59,710,'if(',349,400,'&&',349,400,'===this.fontInUse){',405,'=true;',212,'switch to image fonts");',212,420,'");',215,'Set("Web-Fonts not available -- ',420,' instead",null,3000);c.Require',417,'",f',261,'this',230,710,'f()}},Element:',14,'Element,',15,':',14,15,',TextNode:',14,'TextNode,addText:',14,'addText,ucMatch:',14,'ucMatch,BIGDIMEN:10000000,ID:0,idPostfix:"",GetID:',11,'this.ID++;return this.ID},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},TeX:{x_height:0.430554,quad:1,num1:0.676508,num2:0.393732,num3:0.44373,denom1:0.685951,denom2:0.34'], - ['4841,sup1:0.412892,sup2:0.362892,sup3:0.288888,sub1:0.15,sub2:0.247217,sup_drop:0.386108,sub_drop:0.05,delim1:2.39,delim2:1,axis_height:0.25,rule_thickness:0.06,','big_op_spacing1',':0.111111,','big_op_spacing2',':0.166666,','big_op_spacing3',':0.2,','big_op_spacing4',':0.6,','big_op_spacing5',':0.1,scriptspace:0.1,nulldelimiterspace:0.12,delimiterfactor:901,delimitershortfall:0.1,min_rule_thickness:1.25},PLANE1',':String.fromCharCode(','55349),NBSP',11,'160),rfuzz:0});a.mbase','.Augment({toHTML:function(','l){','var j=this.','HTMLlineBreaks','();if(','j','.length','>2','){return ','this.','toHTMLmultiline','(l,j)}l=','this.HTMLcreateSpan(','l);','if(this.','type!="mrow"){l','=this.HTMLhandleSize(','l)}for(var g=0,f=','this.data.length',';gg.d){g.d=h.d}if(h.h>g.h){g.h=h.h}if(h.D!=null&&h.D>g.D){g.D=h.D}if(h.H!=null&&h.H>g.H){g.H=h.H}if(i','.style.paddingLeft','){g.w+=','parseFloat(','i',124,')*(i.scale||1)}if(','g.w+h.lwg.rw){g.rw=g.w+h.rw}g.w+=h.w;if(i','.style.paddingRight','){g.w+=',126,'i',131,129,'h.width){g.width=h.width}},',118,91,'f','){f.h=f.d=f.H=f.D=f.','rw=-','e.BIGDIMEN',';f.w=0;f.lw=',143,';','return f},',111,91,98,'f.h===this.BIGDIMEN',141,'w=f.rw=f.lw=0}if(f.D<=f.d){delete f.D}if(f.H<=f.h){delete f.H}},HTMLzeroBBox',':function(){','return{h:0,d:0,w:0,lw:0,rw:0}},',106,91,'f){',29,'isEmbellished','()){',88,'this.Core().',106,'(f)}','return false},','HTMLstretchH',91,'g,f',23,'this.HTMLspanElement','()},',48,91,'g,f,i',23,171,172,'HTMLnotEmpty',91,'f){while(f){if((f.type!=="mrow"&&f.type!=="texatom")||f.data',21,'>1',23,'true}f=f.data[0]}',166,'HTMLmeasureChild',91,'g,',98,36,'g]!=null){','e.Measured(',36,39,'f),f)}else{f.bbox=','this.HTMLzeroBBox','()}},HTMLcreateSpan',91,'f){',29,'spanID',103,171,19,'g){while(g','.firstChild','){g','.removeChild(','g',207,')}g','.bbox={w:0,h:0,d:0,lw:0,','rw:0};g.scale=1;g.isMultChar=null;g','.style.cssText','="";',88,'g}}',29,'href){f','=','e.addElement(','f,"a",{href:this.href})}f=',222,'f,"span",{className:','this.type','});if(e.imgHeightBug){f.style.display="inline-block"}if(this["class"]!=null){f.className+=" "+this["class"]}',29,'style){f',215,'=this.style;if(f','.style.fontSize','){this.mathsize=f',232,';f',232,'=""}}','this.spanID=','e.GetID();f.id=(','this.id||"MathJax-Span-"+this.spanID)+e.idPostfix',';f',213,'lr:0};',29,220,'.parentNode','.bbox=f.bbox}',147,120,154,'if(!this.spanID',23,'null}',88,'document.getElementById','((',240,')},','HTMLhandleVariant',91,'g,f,h){e.handleVariant(g,f,h)},HTMLhandleSize',91,'f){if(!f.scale){f.scale','=this.HTMLgetScale',19,'f.scale!==1){f',232,'=e.Percent(f.scale)}}',147,'HTMLhandleColor',91,'k){var m','=this.getValues("','mathcolor','","color");if(this','.mathbackground','){m',276,'=this',276,'}if(','this.background','){m.','background','=',282,'}',29,'style&&','k.style.backgroundColor','){m',276,'=',290,';',290,'="transparent"}if(m.color','&&!this.',274,283,274,'=m.color','}if(m.',284,'&&!this',276,'){m',276,'=m.',284,303,274,'){k.style.color=m.',274,'}if(m',276,'&&m',276,'!==a.COLOR.TRANSPARENT){var n=1/e.em,j=0,i=0;',29,'isToken){j=k.bbox.lw;i=','k.bbox.rw','-k.bbox.w','}if(k',124,'!==""){j+=',126,'k',124,')*(k.scale||1)}','if(k',131,'!==""){i-=',126,'k',131,330,'var h','=Math.max(','0,e.getW(k)+(e.PaddingWidthBug?0:i-j));if(e.','msieCharPaddingWidthBug','&&k',124,'!==""){h+=',126,'k',124,330,69,'k.bbox.h+k.bbox.d',',f=-k.bbox.d;if(h>0){h+=2*n;j-=n}if(l>0){l+=2*n;f-=n}i=-h-j;var g=e.Element("span",{id:"','MathJax-Color-"+this.spanID+e.idPostfix',',style:{display:"inline-block",','backgroundColor:m',276,',','width:e.Em(h),height:e.Em(l),','verticalAlign:e.Em(f),','marginLeft',':e.Em(j),','marginRight',':e.Em(i)}});if(e.','msieInlineBlockAlignBug','){g','.style.position="relative";','g','.style.width','=g.style.','height=0;g','.style.verticalAlign',368,359,368,361,216,'e.placeBox(',222,'g,"span",{noAdjust:true',353,'position:"absolute",overflow:"hidden",',357,284,':m',276,'}}),j,k.bbox.h+n)}k',246,'.insertBefore(','g,k',58,'g}',88,'null},HTMLremoveColor',61,'f=',255,'("',352,');if(f){f',246,209,'f)}},','HTMLhandleSpace',91,'i){',29,'useMMLspacing','){',29,'type!=="mo"){return}var g',273,'scriptlevel','","lspace","','rspace','");if(g.',411,'<=0||','this.hasValue("','lspace")||',417,413,'")){','g.lspace',339,'0,','e.length2em(',422,'));','g.rspace',339,'0,',425,428,'));var f=this,h=this.Parent();while(h&&h.',160,'()&&h.Core()===f){f=h;h=h.Parent();i=f.',120,'()}if(',422,'){i',124,'=e.Em(',422,')}if(',428,'){i',131,441,428,')}}}else{',17,'texSpacing',19,'j!==""){j=',425,'j)/(i.scale||1);if(i',124,'){j+=',126,'i',124,')}i',124,441,'j)}}},','HTMLgetScale',61,'h=1,f',273,'mathsize","',411,'","fontsize","scriptminsize");',29,'style',103,171,19,'g',232,'!=""){','f.fontsize','=g',232,'}}if(',480,298,'mathsize){','f.mathsize','=',480,'}if(f.',411,'!==0){if(f.',411,'>2){f.',411,'=2}h=Math.pow(this.Get("scriptsizemultiplier"),f.',411,');','f.scriptminsize','=',425,499,');if(h<',499,'){h=',499,'}}h*=',425,487,58,'h},HTMLgetVariant',61,'f',273,'mathvariant','","fontfamily","','fontweight','","','fontstyle','");',29,'style){var h=',171,19,'h.style.fontFamily','){','f.fontfamily','=',525,'}if(','h.style.fontWeight','){f.',517,'=',531,'}if(','h.style.fontStyle','){f.fontStyle=',537,'}}var g=f.',515,';',29,'variantForm){g="-"+e.fontInUse+"-variant"}if(',527,298,515,'){if(!f.',517,'&&f.',515,'.match(/bold/)){f.',517,'="bold"}if(!f.',519,550,515,'.match(/italic/)){f.',519,'="italic"}return{FONTS:[],fonts:[],noRemap:true,defaultFont:{family:',527,',style:f.',519,',weight:f.',517,'}}}if(f.',517,'==="bold"){g={normal',':a.VARIANT.','BOLD,italic',569,'BOLDITALIC',',fraktur',569,'BOLDFRAKTUR,script',569,'BOLDSCRIPT,"','sans-serif":a.VARIANT.','BOLDSANSSERIF',',"sans-serif','-italic":a.VARIANT.','SANSSERIFBOLDITALIC}[g]||g}else{if(f.',517,'==="normal"){g={','bold',569,'normal,"bold',581,'ITALIC,"bold-fraktur":a.VARIANT.FRAKTUR,"bold-script":a.VARIANT.SCRIPT,"bold-',578,'SANSSERIF',580,'-bold',581,'SANSSERIFITALIC','}[g]||g}}','if(f.',519,'==="italic"){g={normal',569,'ITALIC,bold',569,572,',"',578,595,',"bold-',578,582,519,584,'italic',569,'NORMAL,"bold',581,'BOLD',580,581,'SANSSERIF',580,'-bold',581,579,596,88,'e.FONTDATA.','VARIANT[g',']}},{HTMLautoload',61,'f=','e.autoloadDir+"/"+',226,'+".js";d.RestartAfter(c.Require(','f))},',93,91,'f',103,631,'f',633,'g))},',167,91,'g,f','){this.HTMLremoveColor();','return this.toHTML(g,f',')},',48,91,175,646,647,',i)}});a.chars',15,'g,f){this.',259,'(g,f,','this.data.join','("").','replace(/[\\u2061-\\u2064]/g,""))}});a.','entity',15,656,259,'(g,f,this.toString().',661,'mi',15,'j){j',31,27,'j));j','.bbox=null;','var h=this','.HTMLgetVariant();for(var g=0,f=this.data.length;gk.bbox.w){k.bbox.ic=',322,323,';e.createBlank(k,k.bbox.ic);k.bbox.w=',322,'}}',54,'k',56,'k',58,'k},',106,91,'f){if(!this.','Get("stretchy")){',88,'false}var g=',659,'("");if(g',21,'>1',23,'false}g=',626,'DELIMITERS[','g.charCodeAt(0)];return(g&&g.dir==f.substr(0,1))},',48,91,'l,k,n',646,'var f',273,'symmetric","','maxsize","minsize','");var j=',171,'(),g;var i=',737,',m=j.scale;','if(f.symmetric){g','=2*','Math.max(','k-i,n+i)}else{g=k+n}f.maxsize=',425,'f.maxsize,','j.bbox.h+j.bbox.d',');f.minsize=',425,'f.minsize,',812,');g',339,815,'Math.min(',811,'g));j=',27,'l);','e.createDelimiter(','j,',659,'("").charCodeAt(0),','g,m);',806,'=(',812,')/2+i}else{g=(',812,')*k/(k+n)}e.positionDelimiter(j,g);',54,'j',56,'j',58,'j},',167,91,'i,f',646,'var g',273,800,'","',515,'","',517,414,517,'==="bold"&&!this.',515,'){g.',515,'=a.VARIANT.BOLD',101,171,'(),j=h.scale;','g.maxsize','=',425,863,',h.bbox.w);g.minsize=',425,'g.minsize,','h.bbox.w);f',339,869,820,863,',f));h=',27,'i);',825,'h,',659,828,'f,j,g.',515,');',54,'h',56,'h',58,'h}});a.mtext',15,'k){k',31,27,'k));k',674,29,'Parent().type==="merror"){e.addText(k,',659,'(""));',69,'e.getHD(k),g=e.getW(k);k.bbox={h:l.h,d:l.d,w:g,lw:0,rw:g}}else{',706,63,33,65,'if(',36,68,36,725,659,'("").',727,'}}',54,'k',56,'k',58,'k}});a.ms','.Augment({toHTML:a.mbase.HTMLautoload});a.','mglyph',922,'mspace',15,'j){j',31,27,'j));var g',273,'height","depth","width','");g',276,'=this',276,';if(',282,'&&!this',276,'){g',276,'=',282,'}var i=',425,'g.height),k=',425,'g.depth),f=',425,'g.width);',735,'j,i,k,f,g',276,58,680,'mphantom',15,'j,g,l){j=',27,'j);if(',36,'0]!=null){','var k=',193,36,'0].toHTML(','j),',961,'l!=null){e.Remeasured(',36,'0].',48,'(j,g,l),j)}else{if(g!=null){e.Remeasured(',36,'0].',167,'(j,g),j)}}j.bbox={w:','k.bbox.w,','h:k.bbox.h,d:k.bbox.d,','lw:0,rw:0};',63,'j.childNodes',21,65,983,'[h].','style.visibility','="hidden"}}',54,'j',56,'j',58,'j},','HTMLstretchH:a.mbase.HTMLstretchH,HTMLstretchV:a.mbase.HTMLstretchV});a.','mpadded',15,'j,h,l){j=',27,961,36,963,'var g','=e.createStack(','j,true);var k','=e.createBox(','g);',193,36,967,'k),k);if(l!=null){e.Remeasured(',36,'0].',48,'(k,h,l),k)}else{if(h!=null){e.Remeasured(',36,'0].',167,'(k,h),k)}}var i',273,932,412,'voffset"),f=0,m=0;if(i.lspace){f','=this.HTMLlength2em(k,i.','lspace)}if(i.voffset){m',1025,'voffset)}',376,'k,f,m);j.bbox={',980,'w:',979,'lw:',820,'0,k.bbox.lw+f),rw:',808,979,322,'+f),H',':Math.max((k.bbox.','H==null?-',143,':k.bbox.H),k.bbox.h+m),D',1041,'D==null?-',143,':k.bbox.D),k.bbox.d-m)};if(i.height','!==""){j.bbox.','h',1025,'height,"h",0)}if(i.depth',1049,'d',1025,'depth,"d",0)}if(i.width',1049,'w',1025,'width,"w",0)}if(j.bbox.H<=j.bbox.h','){delete j.bbox.','H}if(j.bbox.D<=j.bbox.d',1061,'D}e.setStackWidth(g,j.bbox.w)}',54,'j',56,'j',58,'j},HTMLlength2em',91,'j,k,l,',98,'f==null){f=-',143,101,'String(k).match','(/width|height|depth/);var i=(h?j.bbox[h[0].charAt(0)]:(l?j.bbox[l]:null));var g=',425,'k,i);if(l&&',1077,'(/^\\s*[-+]/)){',88,808,'f,j.bbox[l]+g)}else{',88,'g}},',996,'mrow','.Augment({',167,91,'h,f',646,'var g=',171,'();',36,'this.core].',167,'(g,f);',41,'g,true',56,'g',58,'g},',48,91,'i,g,j',646,'var f=',171,'();',36,1099,48,'(f,g,j);',41,'f,true',56,'f',58,'f}});a.mstyle',15,98,36,963,'f=',36,967,'f);',238,36,'0].spanID;',54,'f);this.',270,'(f)}return f},HTMLspanElement:function(){return(this.data[0]!=null?this.data[0].HTMLspanElement():null)},HTMLstretchH:function(g,f){return(this.data[0]!=null?this.data[0].HTMLstretchH(g,f):g)},HTMLstretchV:function(g,f,i){return(this.data[0]!=null?this.data[0].HTMLstretchV(g,f,i):g)}});a','.mfrac',15,'y){y=',27,'y',');var h',1005,'y);var k',1007,'h),j',1007,'h',');this.HTMLmeasureChild(','0,k',1152,'1,j);var f',273,710,'","linethickness","numalign","denomalign","bevelled");var C',264,'(),x=f.',710,';var B=',737,'*C;if(f.bevelled){var A=(x?0.4:0.15);var l',339,350,',',812,')+2*A;var z',1007,'h);',825,'z,47,l);',376,'k,0,(k.bbox.d-k','.bbox.h)/2+B','+A);',376,'z,k.bbox.w-A/2,(z.bbox.d-z',1176,');',376,'j,k.bbox.w+z.bbox.w-A,(j.bbox.d-j',1176,'-A)}else{var g',339,979,'j.bbox.w);var o=e.thickness2em(f.linethickness),s,r,n,m;var w=','e.TeX.min_rule_thickness/this.em',';if(x){n=e.TeX.num1;m=e.TeX.denom1}else{n=(o===0?e.TeX.num3:e.TeX.num2);m=e.TeX.denom2}n*=C;m*=C;if(o===0){s=Math.max((x?7:3)*','e.TeX.rule_thickness',',2*w);r=(n-k.bbox.d',')-(j.bbox.h-m);if(ro){f+=((',350,')-(o-s))/2}var u=',626,791,626,'RULECHAR];if(!u||iF){F=q.bbox.w}if(!I[H]&&F>g){g=F}}}if(g==-',143,'){g=F}if(',1501,'){g=F=B}var w=',1191,',A=',626,'TeX_factor;var h=l[',1463,']||{bbox:',197,172,'J=(h.bbox.ic||0);var p,n,s,r,o,v,E;for(H=0,C=',33,';H0){m+=y;l-=y}}',376,1702,808,'m,',1676,'));',376,1690,808,'l,',1669,'))}}',54,'C',56,'C',58,'C},',996,'mmultiscripts',922,'mtable',922,'math',15,'n,g){var k=this.Get("alttext");if(k){g.setAttribute("aria-label",k)}var h=',222,'n,"nobr",{style:{visibility:"hidden"}});n=',27,'h);var l',1005,'n),i',1007,'l),m;l',232,'=h',246,232,';h',246,232,216,'if(',36,963,'if(e.msieColorBug){if(',282,'){',36,'0].',284,'=',282,';delete ',282,'}if(this',276,'){',36,'0].mathbackground=this',276,';delete this',276,'}}a.mbase.prototype','.displayAlign','=d.config',1772,';a.mbase.prototype','.displayIndent','=d.config',1776,';m=',193,36,967,'i),i)}',376,1606,'j=e.em/e.outerEm;e.em/=j;n.bbox.h','*=j;n.bbox.','d',1787,'w',1787,'lw',1787,'rw*=j;if(m&&m.bbox.width!=null){l',367,'=m.bbox.width;i',367,'="100%"}this.',270,'(n);if(m){',1199,'n,m.bbox.h*j,m.bbox.d*j,0)}if(!this.isMultiline&&this.Get("display")==="block"&&n.bbox.width==null){var o',273,'indentalignfirst','","','indentshiftfirst','","indentalign","indentshift");if(o.',1804,'!==a.INDENTALIGN.','INDENTALIGN){','o.indentalign','=o.',1804,'}if(',1811,'===a.INDENTALIGN.AUTO){',1811,'=this',1772,'}g.style.textAlign=',1811,';if(o.',1806,'!==a.INDENTSHIFT.INDENTSHIFT){','o.indentshift','=o.',1806,'}if(',1825,'==="auto"){',1825,'=this',1776,'}if(',1825,'&&',1811,1809,'CENTER){n.style[{left:"',359,'",right:"',361,'"}[',1811,']]=e.Em(',425,1825,'))}}h.',988,216,88,'n}});a.TeXAtom',15,'g){g=',27,'g);if(',36,963,29,'texClass===a.TEXCLASS.VCENTER){var f',1005,'g',1145,1007,'f);',193,36,967,'h),h);',376,'h,0,',737,'-(',1259,')/2+h.bbox.d)}else{g.bbox=',36,967,'g).bbox}}',54,'g',56,'g',58,'g}});d.Browser.Select({MSIE',91,'f){var i=f','.versionAtLeast("','7.0");var h=f',1887,'8.0")&&document.documentMode>7;var g=(document.compatMode==="BackCompat");','e.config.styles[".MathJax .MathJax_HitBox','"]["',284,'-color"]="white";',1891,'"].opacity=0;',1891,'"].filter="alpha(opacity=0)";e',1090,'getMarginScale:e.getMSIEmarginScale,','PaddingWidthBug:true,','msieAccentBug:true,msieColorBug:true,msieRelativeWidthBug:g,msieMarginWidthBug:true,msiePaddingWidthBug:true,',341,':(h&&!g),msieBorderWidthBug:g,',363,':(!h||g),msieVerticalAlignBug:(h&&!g),msiePlaceBoxBug:(h&&!g),msieClipRectBug:!h,msieNegativeSpaceBug:g,negativeSkipBug:true,msieIE6:!i,msieItalicWidthBug',':true,zeroWidthBug:true,FontFaceBug:true,','allowWebFonts',':"eot"})},Firefox',91,'g){var h=false;if(g',1887,'3.5")){var f=String','(document.location',').replace(/[^\\/]*$/,"");if',1914,'.protocol!=="file:"||(d.config.root+"/").substr(0,f',21,')===f){h="otf"}}e',1090,'ffVerticalAlignBug:true,AccentBug:true,',1908,':h})},Safari',91,'j){var h=j',1887,'3.0");var g=j',1887,'3.1");j.isMobile','=(navigator.appVersion.match','(/Mobile/i)!=null);var f',1930,'(/ Android (\\d+)\\.(\\d+)/));var k=(g&&j.isMobile&&(navigator.platform.match(/iPad|iPod|iPhone/)||(f!=null&&(f[1]<2||(f[1]==2&&f[2]<2)))));e',1090,'config:{styles:{".MathJax img, .MathJax nobr, .MathJax a":{"max-width":"5000em","max-height":"5000em"}}},','rfuzz:0.05,AccentBug:true,AdjustSurd:true,','safariContextMenuBug:true,','safariNegativeSpaceBug:true,',739,':!g,safariTextNodeBug:!h,','safariWebFontSerif',':["serif"],',1908,':(g&&!k?(j.isPC?"svg":"otf"):false)});if(k){var i=','MathJax.Hub.config["HTML-CSS','"];if(i){i.availableFonts=[];i.preferredFont=null}else{',1945,'"]={availableFonts:[],preferredFont:null}}}},Chrome',91,'f){e',1090,1936,1908,':"svg",',1938,1941,':[""]})},Opera',91,'f){f.isMini',1930,'("Opera Mini")!=null);e.config.styles[".MathJax .merror"]["vertical-align"]=null;e',1090,'operaHeightBug:true,operaVerticalAlignBug:true,operaFontSizeBug:f',1887,'10.61"),negativeSkipBug',1907,1901,1908,':(f',1887,'10.0")&&!f.isMini?"otf":false)})},Konqueror',91,'f){e',1090,751,':true,noContextMenuBug:true})}});if(d.config.menuSettings.zoom!=="None"){c.Require("[MathJax]/extensions/MathZoom.js")}e.loadComplete("jax.js")})(MathJax.ElementJax.mml,MathJax.Ajax,MathJax.Hub,MathJax.OutputJax["HTML-CSS"]);'] + ['(','function(','c,d,e','){var ','a;var b=','MathJax','.Object.Subclass({timeout:5*1000,FontInfo:{STIX:{family:"STIXSizeOneSym",','testString',':"() {} []"},TeX:{family:"MathJax_Size1",',7,':"() {} []"}},','comparisonFont',':["sans-serif","monospace","script","Times","Courier","Arial","Helvetica"],testSize:["40px","50px","60px","30px","20px"],Init:','function(){','this.div','=','MathJax.HTML.','addElement','(','document.body',',"div','",{style:{','position:"absolute','",','visibility:"hidden",','top:0,left:0,','width:"auto",padding:0,border:0,margin:0,textAlign:"left",textIndent:0,textTransform:"none",lineHeight:"normal",letterSpacing:"normal",wordSpacing:"normal','",','fontSize',':','this.testSize','[0],','fontWeight',':"normal",','fontStyle',':"normal"}},[""]);this.text=',14,'.firstChild','},findFont:',1,'j,g){if(g&&this.','testCollection','(g)){','return g','}for(var ','h=0,f=j','.length;h=0){','if(this.negativeSkipBug){',144,'i',871,';i',871,874,'j=',513,';if(i',37,'){i',492,'j,i',37,266,'i',488,'j)}j=',513,'}i',488,518,');g=',518,'.offsetLeft-j.offsetLeft;i',511,518,');',899,'i',511,'j);i',871,'=f}}',43,'/this.em},Measured:',1,'h,g){if(h','.bbox.width','==null&&h.bbox.w&&!h.bbox.isMultiline',3,'f=this.getW(h);h.bbox.rw+=f-h.bbox.w;h.bbox.w=f}if(!g){g=h',620,'}if(!','g.bbox){g.bbox','=h.bbox}return h},Remeasured:',1,'g,f){f.bbox=this.Measured(g,f).bbox},Em:',1,'f){if(Math.abs(f)<0.0006',57,'"0em"}return f.toFixed(3',').replace(/\\.?0','+$/,"")+"em"},Percent:',1,'f',57,'(100*f).toFixed(1',952,'+$/,"")+"%"},length2percent:',1,'f',57,' ','this.Percent(','this.length2em(f','))},length2em:',1,'k,i){if(typeof(k)!=="string"){k=k.toString()}if(k===""){return""}','if(k===a.SIZE.','NORMAL',57,' 1}',969,'BIG',57,' 2}',969,'SMALL',57,' 0.71}if(k==="infinity"){return e.BIGDIMEN}',225,453,'TeX_factor;if(k.match(/mathspace$/)){return e.MATHSPACE[k]*h}var g=k.match(/^\\s*([-+]?(?:\\.\\d+|\\d+(?:\\.\\d*)?))?(pt|em|ex|mu|px|in|mm|cm|%)?/);',144,'parseFloat(g','[1]||"1"),j=g[2];if(i==null){i=1','}if(j==="','em','"){return f','*h',987,'ex',989,'*e.TeX.x_height*h}if(j==="%"){return f/100*i',987,'px',989,'/e.em',987,'pt',989,'/10*h',987,'in','"){return f*this.pxPerInch/e.em',987,'cm',1005,'/2.54',987,'mm',1005,'/25.4',987,'pc',1005,'/12',987,'mu',989,'/18*h}return f*h*i},thickness2em:',1,'f',3,'g=e.TeX.rule_thickness;','if(f===a.LINETHICKNESS.','MEDIUM',57,' g}',1026,'THIN',57,' 0.67*g}',1026,'THICK',57,' 1.67*g}return ',965,',g)},createStrut:',1,'i,g,j',3,'f=',475,580,479,'height:g+"px",width:"1px",marginRight:"-1px"}});if(j){i',492,'f,i',37,266,'i',488,'f)}return f},createBlank:',1,'g,f,h',3,'i=',475,580,479,'height:"1px",width',':this.Em(f)}});if(','h){g',492,'i,g',37,266,'g',488,'i)}return i},createShift:',1,'g,f,i',3,'h=',475,'span',21,592,1063,'i){g',492,'h,g',37,266,'g',488,'h)}return h},createSpace:',1,'k,j,m,f,g',3,'i','=this.Em(','Math.max(','0,j+m)),l','=this.Em(-m);',532,'l',1093,'e.getHD(k',620,').d-m)}if(k.isBox||k',625,'=="mspace"){','k.bbox={h:j*k.scale,d:m*k.scale,w:f*k.scale,rw:f*k.scale,lw:0};k',797,'=i;k',576,'verticalAlign','=l}else{k=',500,'k,"span',21,'height:i,',1109,':l}})}if(f>=0){k',800,1093,'f);k',576,'display="inline-block"}else{',49,'msieNegativeSpaceBug){k',797,'=""}k',576,592,1093,'f);if(e.safariNegativeSpaceBug&&k',620,37,'==k){this','.createBlank(','k,0,true)}}if(g&&g!==a.COLOR.TRANSPARENT){k',576,'backgroundColor=g}return k},createRule:',1,'o,k,m,p,i',3,'j=e.TeX.min_rule_thickness;if(p>0&&p*this.em0&&(k+m)*this.em0&&n',508,'==0){n',800,1093,'p)}if(o.isBox||o',625,1104,'o.bbox=n.bbox}','return n},createFrame:',1,'o,m,n,p,r,g',3,'l=(this.msieBorderWidthBug?0:2*r);var q',1093,'m+n-l),f=this.Em(-n-r),k',1093,'p-l);var i',1093,'r)+" "+g;var j=',500,'o,"span',21,'border:i,',1153,479,'width:k,height:q},bbox:{h:m,d:n',1159,'f){j',576,1109,760,'j},createStack:',1,'h,j,g){',49,'msiePaddingWidthBug){this',515,'h,0)}var i=String(g).match(/%$/);var f=(!i&&g!=null?g:0);h=',500,'h,"span",{noAdjust:true,style:{',1153,310,'",width:(i?"100%":this.Em(f)),height:0}});if(!j){h',620,'.bbox=h.bbox={','h:-this.BIGDIMEN,d:-this.BIGDIMEN',',w:f,lw:','this.BIGDIMEN',',rw:(!i&&g!=null?g:-',1208,')};if(i){h',938,'=g}}return h},createBox:',1,'g,f',3,'h=',500,'g,"span',21,22,'"},isBox:true});if(f!=null){h',800,760,'h},addBox:',1,'f,g){g',871,874,'g.isBox=true;return f',488,'g)},placeBox:',1,'n,m,k,i',3,'o=n',620,',v=n.bbox,q=o.bbox;',49,'msiePlaceBoxBug){',520,'n,this.NBSP)}',49,'imgSpaceBug){',520,'n,this.imgSpace)}var p=n',881,'/this.em+1,z=0;if(n.noAdjust){p-=1}else{',532,500,'n,"img',636,324,'",border:0,src:"about:blank",style:{',1155,'this.Em(p',')}})}else{',500,'n,"',580,1155,1256,')}})}}n','.style.top=this.Em(-','k-p);n',576,'left',1093,'m+z);if(v){',899,'if(v.lw<0){z=v.lw;e',1133,'n,-z,true);h=0}if(v.rw>v.w){e',1133,'n,v.rw-v.w+0.1)}}if(!this.msieClipRectBug&&!v.noclip&&!i',3,'u=3/this.em;var s=(v.H==null?v.h:v.H),g=(v.D==null?v.d:v.D);var w=p-s-u,j=p+g+u,h=v.lw-3*u,f=1000;if(v.isFixed){f=v.width-h}n',576,'clip="rect("+this.Em(w',')+" "+this.Em(','f',1280,'j',1280,'h)+")"}}if(v&&q){if(v.H!=null&&(q.H==null||v.H+k>q.H)){q.H=v.H+k}if(v.D!=null&&(q.D==null||v.D-k>q.D)){q.D=v.D-k}if(v.h+k>q.h){q.h=v.h+k}if(v.d-k>q.d){q.d=v.d-k}if(q.H!=null&&q.H<=q.h){delete q.H}if(q.D!=null&&q.D<=q.d){delete q.D}if(v.w+m>q.w){q.w=v.w+m;if(q.width==null){o',800,1093,'q.w)}}if(v.rw+m>q.rw){q.rw=v.rw+m}if(v.lw+m=h-0.01||(o==k-1&&!g.stretch)){if(g.HW[o][2]){l*=g.HW[o][2]}if(g.HW[o][3]){f=g.HW[o][3]}',1148,500,'q,"',526,'this.createChar(','n,[f,g.HW[o][1]],l,j);q.bbox=n.bbox;q.offset=0.65*q.bbox.w;q.scale=l;return}}if(g.stretch){this["extendDelimiter"+g.dir](q,p,g.stretch,l,j)}},extendDelimiterV:',1,'u,o,z,A,r',3,'i','=this.createStack(','u,true);var q','=this.createBox(','i),p',1362,'i);',1354,'q,(z.top','||z.ext),A,r);',1354,'p,(z.bot',1368,'var g={bbox:{w:0,lw:0,rw:0}},x=g;var v=q.bbox.h+q.bbox.d+','p.bbox.h+p.bbox.d;','var l=-q.bbox.h;',1297,'q,0,l,true);l-=q','.bbox.d;if(z.mid','){x',1362,'i);',1354,'x,z.mid,A,r);v+=','x.bbox.h+x.bbox.d','}if(o>v){g=',475,526,1354,'g,z.ext,A,r);var w=g.bbox.h+g.bbox.d,f=w-0.05,s,j,t=(z.mid?2:1);j=s=Math.ceil((o-v)/(t*f));if(!z.fullExtenders){f=(o-v)/(t*s)}var m=(s/(s+1))*(w-f);f=w-m;l+=m+f-g.bbox.h;while(t-->0){while(s-->0){l-=f;',1297,'this.addBox(','i,g','.cloneNode(true)),','0,l,true)}l+=m-g',1377,'&&t){',1297,'x,0,l-x.bbox.h,true);','s=j;l+=-(',1383,')+m+f-g.bbox.h}}}else{l+=(v-o)/2;if(z.mid){',1297,1397,'l+=-(',1383,')}l+=(v-o)/2}',1297,'p,0,l-p.bbox.h,true);l-=',1373,'u.bbox={w:',1094,'q.bbox.w,g.bbox.w,p.bbox.w,x.bbox.w),lw:Math.min(q.bbox.lw,g.bbox.lw,p.bbox.lw,x.bbox.lw),rw:',1094,'q.bbox.rw,g.bbox.rw,p.bbox.rw,x.bbox.rw),h:0,d:-l};u.scale=A;u.offset=0.55*u.bbox.w;u','.isMultiChar=true;this.setStackWidth(','i,u.bbox.w)},extendDelimiterH:',1,'t,g,y,A,q',3,'j',1360,'t,true);var h',1362,'j),u',1362,'j);',1354,'h,(y.left','||y.rep),A,q);',1354,'u,(y.right',1428,144,475,526,1354,'f,y.rep,A,q);var v={bbox:{',1206,'}};',1297,'h,-h.bbox.lw,0,true);var o=(','h.bbox.rw-h.bbox.lw',')+(u.bbox.rw-u.bbox.lw)-0.05,m=',1441,'-0.025;if(y.mid){v',1362,'j);',1354,'v,y.mid,A,q);o+=v.bbox.w}if(g>o',3,'z=f.bbox.rw-f.bbox.lw,i=z-0.05,r,l,s=(y.mid?2:1);l=r=Math.ceil((g-o)/(s*i));i=(g-o)/(s*r);var p=(r/(r+1))*(z-i);i=z-p;m-=f.bbox.lw+p;while(s-->0){while(r-->0){',1297,1390,'j,f',1392,'m,0,true);m+=i}if(y.mid&&s){',1297,'v,m,0,true);m+=v.bbox.w','-p;r=l}}}else{m-=(o-g)/2;if(y.mid){',1297,1457,'}m-=(o-g)/2}',1297,'u,m,0,true);t.bbox={w:m+u.bbox.rw,lw:0,rw:m+u.bbox.rw,H:',1094,'h.bbox.h,f.bbox.h,u.bbox.h,v.bbox.h),D:',1094,'h.bbox.d,f.bbox.d,u.bbox.d,v.bbox.d),h:f.bbox.h,d:f.bbox.d};t.scale=A;t',1414,'j,t.bbox.w)},createChar:',1,'o,k,h,f',3,'n=o,p="",j={fonts:[k[1]],noRemap:true};if(f&&f===a.VARIANT.BOLD){j.fonts=[k[1]+"-bold",k[1]]}if(typeof(k[1])!=="string"){j=k[1]}if(k[0] ',456,'){for(var l=0,','g=k[0].length;l=r[q].low&&s<=r[q].high){if(r[q].remap&&r[q].remap[s]){s=k+r[q].remap[s]}else{s=s-r[q].low+k;if(r[q].add){s+=r[q].add}}if(','j["variant"+r[q].offset',']){j=',453,'VARIANT[',1564,']]}break}}}if(j.remap&&j.remap[s]){if(j.remap[s] ',456,3,'h=j.remap[s];s=h[0];j=',453,1567,'h[1]]}else{s=j.remap[s];if(','j.remap.variant','){j=',453,1567,1576,']}}}if(',453,'REMAP[s]&&!j.noRemap){s=',453,'REMAP[s]}p=this.lookupChar(j,s);y=p[s];if(j!==x&&!y[5].img){if(u','.length){',520,'f,u);u=""}f=v;x=g;if(j!==x){if(x){f=',500,'v,"span")}else{g=j}}this.handleFont(f,p,f!==v);x=j}u=this.handleChar(f,p,y,s,u);if(y[0',']/1000>v.bbox.','h){v.bbox.h=y[0]/1000}if(y[1',1591,'d){v.bbox.d=y[1',']/1000}if(v.bbox.w+y[','3]/1000=0;h--){if(g.Ranges[h][2]==k){g.Ranges.splice(h,1)}}this.loadFont(g.directory+"/"+k+".js")}}}},loadFont:',1,'g',3,'f=',223,'.Queue();','f.Push(["Require",c,this.','fontDir+"/"+g]);if(',410,'){if(!',5,'.isPacked){g=g.replace(/\\/([^\\/]*)$/,e.imgPacked+"/$1")}',1705,'webfontDir+"/png/"+g])}','d.RestartAfter(','f.Push({}))},',212,':',1,'f){f.available=f.',758,'f.family=f.name}',1713,392,212,'(f))},',249,':',1,'g,f){',216,'disable web fonts");g.',61,717,'if(',354,405,'&&',354,405,'===this.fontInUse){',410,'=true;',216,'switch to image fonts");',216,425,'");',219,'Set("Web-Fonts not available -- ',425,' instead",null,3000);c.Require',422,'",f',266,'this',234,717,'f()}},Element:',16,'Element,',17,':',16,17,',TextNode:',16,'TextNode,addText:',16,'addText,ucMatch:',16,'ucMatch,BIGDIMEN:10000000,ID:0,idPostfix:"",GetID:',13,'this.ID++;return this.ID},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},TeX:{x_height:0.430554,quad:1,num1:0.676508,num2:0.393732,num3:0.44373,denom1:0.685951,denom2:0.344841,sup1:0.412892,sup2:0.3628'], + ['92,sup3:0.288888,sub1:0.15,sub2:0.247217,sup_drop:0.386108,sub_drop:0.05,delim1:2.39,delim2:1,axis_height:0.25,rule_thickness:0.06,','big_op_spacing1',':0.111111,','big_op_spacing2',':0.166666,','big_op_spacing3',':0.2,','big_op_spacing4',':0.6,','big_op_spacing5',':0.1,scriptspace:0.1,nulldelimiterspace:0.12,delimiterfactor:901,delimitershortfall:0.1,min_rule_thickness:1.25},PLANE1',':String.fromCharCode(','55349),NBSP',11,'160),rfuzz:0});MathJax.Hub.Register.StartupHook("mml Jax Ready",','function(){','a=MathJax.ElementJax.mml;a.mbase','.Augment({toHTML:function(','l){','var j=this.','HTMLlineBreaks','();if(','j','.length','>2','){return ','this.','toHTMLmultiline','(l,j)}l=','this.HTMLcreateSpan(','l);','if(this.','type!="mrow"){l','=this.HTMLhandleSize(','l)}for(var g=0,f=','this.data.length',';gg.d){g.d=h.d}if(h.h>g.h){g.h=h.h}if(h.D!=null&&h.D>g.D){g.D=h.D}if(h.H!=null&&h.H>g.H){g.H=h.H}if(i','.style.paddingLeft','){g.w+=','parseFloat(','i',126,')*(i.scale||1)}if(','g.w+h.lwg.rw){g.rw=g.w+h.rw}g.w+=h.w;if(i','.style.paddingRight','){g.w+=',128,'i',133,131,'h.width){g.width=h.width}},',120,93,'f','){f.h=f.d=f.H=f.D=f.','rw=-','e.BIGDIMEN',';f.w=0;f.lw=',145,';','return f},',113,93,100,'f.h===this.BIGDIMEN',143,'w=f.rw=f.lw=0}if(f.D<=f.d){delete f.D}if(f.H<=f.h){delete f.H}},HTMLzeroBBox:',15,'return{h:0,d:0,w:0,lw:0,rw:0}},',108,93,'f){',31,'isEmbellished','()){',90,'this.Core().',108,'(f)}','return false},','HTMLstretchH',93,'g,f',25,'this.HTMLspanElement','()},',50,93,'g,f,i',25,173,174,'HTMLnotEmpty',93,'f){while(f){if((f.type!=="mrow"&&f.type!=="texatom")||f.data',23,'>1',25,'true}f=f.data[0]}',168,'HTMLmeasureChild',93,'g,',100,38,'g]!=null){','e.Measured(',38,41,'f),f)}else{f.bbox=','this.HTMLzeroBBox','()}},HTMLcreateSpan',93,'f){',31,'spanID',105,173,21,'g){while(g','.firstChild','){g','.removeChild(','g',209,')}g','.bbox={w:0,h:0,d:0,lw:0,','rw:0};g.scale=1;g.isMultChar=null;g','.style.cssText','="";',90,'g}}',31,'href){f','=','e.addElement(','f,"a",{href:this.href})}f=',224,'f,"span",{className:','this.type','});if(e.imgHeightBug){f.style.display="inline-block"}if(this["class"]!=null){f.className+=" "+this["class"]}',31,'style){f',217,'=this.style;if(f','.style.fontSize','){this.mathsize=f',234,';f',234,'=""}}','this.spanID=','e.GetID();f.id=(','this.id||"MathJax-Span-"+this.spanID)+e.idPostfix',';f',215,'lr:0};',31,222,'.parentNode','.bbox=f.bbox}',149,122,':',15,'if(!this.spanID',25,'null}',90,'document.getElementById','((',242,')},','HTMLhandleVariant',93,'g,f,h){e.handleVariant(g,f,h)},HTMLhandleSize',93,'f){if(!f.scale){f.scale','=this.HTMLgetScale',21,'f.scale!==1){f',234,'=e.Percent(f.scale)}}',149,'HTMLhandleColor',93,'k){var m','=this.getValues("','mathcolor','","color");if(this','.mathbackground','){m',279,'=this',279,'}if(','this.background','){m.','background','=',285,'}',31,'style&&','k.style.backgroundColor','){m',279,'=',293,';',293,'="transparent"}if(m.color','&&!this.',277,286,277,'=m.color','}if(m.',287,'&&!this',279,'){m',279,'=m.',287,306,277,'){k.style.color=m.',277,'}if(m',279,'&&m',279,'!==a.COLOR.TRANSPARENT){var n=1/e.em,j=0,i=0;',31,'isToken){j=k.bbox.lw;i=','k.bbox.rw','-k.bbox.w','}if(k',126,'!==""){j+=',128,'k',126,')*(k.scale||1)}','if(k',133,'!==""){i-=',128,'k',133,333,'var h','=Math.max(','0,e.getW(k)+(e.PaddingWidthBug?0:i-j));if(e.','msieCharPaddingWidthBug','&&k',126,'!==""){h+=',128,'k',126,333,71,'k.bbox.h+k.bbox.d',',f=-k.bbox.d;if(h>0){h+=2*n;j-=n}if(l>0){l+=2*n;f-=n}i=-h-j;var g=e.Element("span",{id:"','MathJax-Color-"+this.spanID+e.idPostfix',',style:{display:"inline-block",','backgroundColor:m',279,',','width:e.Em(h),height:e.Em(l),','verticalAlign:e.Em(f),','marginLeft',':e.Em(j),','marginRight',':e.Em(i)}});if(e.','msieInlineBlockAlignBug','){g','.style.position="relative";','g','.style.width','=g.style.','height=0;g','.style.verticalAlign',371,362,371,364,218,'e.placeBox(',224,'g,"span",{noAdjust:true',356,'position:"absolute",overflow:"hidden",',360,287,':m',279,'}}),j,k.bbox.h+n)}k',248,'.insertBefore(','g,k',60,'g}',90,'null},HTMLremoveColor',63,'f=',258,'("',355,');if(f){f',248,211,'f)}},','HTMLhandleSpace',93,'i){',31,'useMMLspacing','){',31,'type!=="mo"){return}var g',276,'scriptlevel','","lspace","','rspace','");if(g.',414,'<=0||','this.hasValue("','lspace")||',420,416,'")){','g.lspace',342,'0,','e.length2em(',425,'));','g.rspace',342,'0,',428,431,'));var f=this,h=this.Parent();while(h&&h.',162,'()&&h.Core()===f){f=h;h=h.Parent();i=f.',122,'()}if(',425,'){i',126,'=e.Em(',425,')}if(',431,'){i',133,444,431,')}}}else{',19,'texSpacing',21,'j!==""){j=',428,'j)/(i.scale||1);if(i',126,'){j+=',128,'i',126,')}i',126,444,'j)}}},','HTMLgetScale',63,'h=1,f',276,'mathsize","',414,'","fontsize","scriptminsize");',31,'style',105,173,21,'g',234,'!=""){','f.fontsize','=g',234,'}}if(',483,301,'mathsize){','f.mathsize','=',483,'}if(f.',414,'!==0){if(f.',414,'>2){f.',414,'=2}h=Math.pow(this.Get("scriptsizemultiplier"),f.',414,');','f.scriptminsize','=',428,502,');if(h<',502,'){h=',502,'}}h*=',428,490,60,'h},HTMLgetVariant',63,'f',276,'mathvariant','","fontfamily","','fontweight','","','fontstyle','");',31,'style){var h=',173,21,'h.style.fontFamily','){','f.fontfamily','=',528,'}if(','h.style.fontWeight','){f.',520,'=',534,'}if(','h.style.fontStyle','){f.fontStyle=',540,'}}var g=f.',518,';',31,'variantForm){g="-"+e.fontInUse+"-variant"}if(',530,301,518,'){if(!f.',520,'&&f.',518,'.match(/bold/)){f.',520,'="bold"}if(!f.',522,553,518,'.match(/italic/)){f.',522,'="italic"}return{FONTS:[],fonts:[],noRemap:true,defaultFont:{family:',530,',style:f.',522,',weight:f.',520,'}}}if(f.',520,'==="bold"){g={normal',':a.VARIANT.','BOLD,italic',572,'BOLDITALIC',',fraktur',572,'BOLDFRAKTUR,script',572,'BOLDSCRIPT,"','sans-serif":a.VARIANT.','BOLDSANSSERIF',',"sans-serif','-italic":a.VARIANT.','SANSSERIFBOLDITALIC}[g]||g}else{if(f.',520,'==="normal"){g={','bold',572,'normal,"bold',584,'ITALIC,"bold-fraktur":a.VARIANT.FRAKTUR,"bold-script":a.VARIANT.SCRIPT,"bold-',581,'SANSSERIF',583,'-bold',584,'SANSSERIFITALIC','}[g]||g}}','if(f.',522,'==="italic"){g={normal',572,'ITALIC,bold',572,575,',"',581,598,',"bold-',581,585,522,587,'italic',572,'NORMAL,"bold',584,'BOLD',583,584,'SANSSERIF',583,'-bold',584,582,599,90,'e.FONTDATA.','VARIANT[g',']}},{HTMLautoload',63,'f=','e.autoloadDir+"/"+',228,'+".js";d.RestartAfter(c.Require(','f))},',95,93,'f',105,634,'f',636,'g))},',169,93,'g,f','){this.HTMLremoveColor();','return this.toHTML(g,f',')},',50,93,177,649,650,',i)}});a.chars',17,'g,f){this.',262,'(g,f,','this.data.join','("").','replace(/[\\u2061-\\u2064]/g,""))}});a.','entity',17,659,262,'(g,f,this.toString().',664,'mi',17,'j){j',33,29,'j));j','.bbox=null;','var h=this','.HTMLgetVariant();for(var g=0,f=this.data.length;gk.bbox.w){k.bbox.ic=',325,326,';e.createBlank(k,k.bbox.ic);k.bbox.w=',325,'}}',56,'k',58,'k',60,'k},',108,93,'f){if(!this.','Get("stretchy")){',90,'false}var g=',662,'("");if(g',23,'>1',25,'false}g=',629,'DELIMITERS[','g.charCodeAt(0)];return(g&&g.dir==f.substr(0,1))},',50,93,'l,k,n',649,'var f',276,'symmetric","','maxsize","minsize','");var j=',173,'(),g;var i=',740,',m=j.scale;','if(f.symmetric){g','=2*','Math.max(','k-i,n+i)}else{g=k+n}f.maxsize=',428,'f.maxsize,','j.bbox.h+j.bbox.d',');f.minsize=',428,'f.minsize,',815,');g',342,818,'Math.min(',814,'g));j=',29,'l);','e.createDelimiter(','j,',662,'("").charCodeAt(0),','g,m);',809,'=(',815,')/2+i}else{g=(',815,')*k/(k+n)}e.positionDelimiter(j,g);',56,'j',58,'j',60,'j},',169,93,'i,f',649,'var g',276,803,'","',518,'","',520,417,520,'==="bold"&&!this.',518,'){g.',518,'=a.VARIANT.BOLD',103,173,'(),j=h.scale;','g.maxsize','=',428,866,',h.bbox.w);g.minsize=',428,'g.minsize,','h.bbox.w);f',342,872,823,866,',f));h=',29,'i);',828,'h,',662,831,'f,j,g.',518,');',56,'h',58,'h',60,'h}});a.mtext',17,'k){k',33,29,'k));k',677,31,'Parent().type==="merror"){e.addText(k,',662,'(""));',71,'e.getHD(k),g=e.getW(k);k.bbox={h:l.h,d:l.d,w:g,lw:0,rw:g}}else{',709,65,35,67,'if(',38,70,38,728,662,'("").',730,'}}',56,'k',58,'k',60,'k}});a.ms','.Augment({toHTML:a.mbase.HTMLautoload});a.','mglyph',925,'mspace',17,'j){j',33,29,'j));var g',276,'height","depth","width','");g',279,'=this',279,';if(',285,'&&!this',279,'){g',279,'=',285,'}var i=',428,'g.height),k=',428,'g.depth),f=',428,'g.width);',738,'j,i,k,f,g',279,60,683,'mphantom',17,'j,g,l){j=',29,'j);if(',38,'0]!=null){','var k=',195,38,'0].toHTML(','j),',964,'l!=null){e.Remeasured(',38,'0].',50,'(j,g,l),j)}else{if(g!=null){e.Remeasured(',38,'0].',169,'(j,g),j)}}j.bbox={w:','k.bbox.w,','h:k.bbox.h,d:k.bbox.d,','lw:0,rw:0};',65,'j.childNodes',23,67,986,'[h].','style.visibility','="hidden"}}',56,'j',58,'j',60,'j},','HTMLstretchH:a.mbase.HTMLstretchH,HTMLstretchV:a.mbase.HTMLstretchV});a.','mpadded',17,'j,h,l){j=',29,964,38,966,'var g','=e.createStack(','j,true);var k','=e.createBox(','g);',195,38,970,'k),k);if(l!=null){e.Remeasured(',38,'0].',50,'(k,h,l),k)}else{if(h!=null){e.Remeasured(',38,'0].',169,'(k,h),k)}}var i',276,935,415,'voffset"),f=0,m=0;if(i.lspace){f','=this.HTMLlength2em(k,i.','lspace)}if(i.voffset){m',1028,'voffset)}',379,'k,f,m);j.bbox={',983,'w:',982,'lw:',823,'0,k.bbox.lw+f),rw:',811,982,325,'+f),H',':Math.max((k.bbox.','H==null?-',145,':k.bbox.H),k.bbox.h+m),D',1044,'D==null?-',145,':k.bbox.D),k.bbox.d-m)};if(i.height','!==""){j.bbox.','h',1028,'height,"h",0)}if(i.depth',1052,'d',1028,'depth,"d",0)}if(i.width',1052,'w',1028,'width,"w",0)}if(j.bbox.H<=j.bbox.h','){delete j.bbox.','H}if(j.bbox.D<=j.bbox.d',1064,'D}e.setStackWidth(g,j.bbox.w)}',56,'j',58,'j',60,'j},HTMLlength2em',93,'j,k,l,',100,'f==null){f=-',145,103,'String(k).match','(/width|height|depth/);var i=(h?j.bbox[h[0].charAt(0)]:(l?j.bbox[l]:null));var g=',428,'k,i);if(l&&',1080,'(/^\\s*[-+]/)){',90,811,'f,j.bbox[l]+g)}else{',90,'g}},',999,'mrow','.Augment({',169,93,'h,f',649,'var g=',173,'();',38,'this.core].',169,'(g,f);',43,'g,true',58,'g',60,'g},',50,93,'i,g,j',649,'var f=',173,'();',38,1102,50,'(f,g,j);',43,'f,true',58,'f',60,'f}});a.mstyle',17,100,38,966,'f=',38,970,'f);',240,38,'0].spanID;',56,'f);this.',273,'(f)}return f},HTMLspanElement:function(){return(this.data[0]!=null?this.data[0].HTMLspanElement():null)},HTMLstretchH:function(g,f){return(this.data[0]!=null?this.data[0].HTMLstretchH(g,f):g)},HTMLstretchV:function(g,f,i){return(this.data[0]!=null?this.data[0].HTMLstretchV(g,f,i):g)}});a','.mfrac',17,'y){y=',29,'y',');var h',1008,'y);var k',1010,'h),j',1010,'h',');this.HTMLmeasureChild(','0,k',1155,'1,j);var f',276,713,'","linethickness","numalign","denomalign","bevelled");var C',267,'(),x=f.',713,';var B=',740,'*C;if(f.bevelled){var A=(x?0.4:0.15);var l',342,353,',',815,')+2*A;var z',1010,'h);',828,'z,47,l);',379,'k,0,(k.bbox.d-k','.bbox.h)/2+B','+A);',379,'z,k.bbox.w-A/2,(z.bbox.d-z',1179,');',379,'j,k.bbox.w+z.bbox.w-A,(j.bbox.d-j',1179,'-A)}else{var g',342,982,'j.bbox.w);var o=e.thickness2em(f.linethickness),s,r,n,m;var w=','e.TeX.min_rule_thickness/this.em',';if(x){n=e.TeX.num1;m=e.TeX.denom1}else{n=(o===0?e.TeX.num3:e.TeX.num2);m=e.TeX.denom2}n*=C;m*=C;if(o===0){s=Math.max((x?7:3)*','e.TeX.rule_thickness',',2*w);r=(n-k.bbox.d',')-(j.bbox.h-m);if(ro){f+=((',353,')-(o-s))/2}var u=',629,794,629,'RULECHAR];if(!u||iF){F=q.bbox.w}if(!I[H]&&F>g){g=F}}}if(g==-',145,'){g=F}if(',1504,'){g=F=B}var w=',1194,',A=',629,'TeX_factor;var h=l[',1466,']||{bbox:',199,174,'J=(h.bbox.ic||0);var p,n,s,r,o,v,E;for(H=0,C=',35,';H0){m+=y;l-=y}}',379,1705,811,'m,',1679,'));',379,1693,811,'l,',1672,'))}}',56,'C',58,'C',60,'C},',999,'mmultiscripts',925,'mtable',925,'math',17,'n,g){var k=this.Get("alttext");if(k){g.setAttribute("aria-label",k)}var h=',224,'n,"nobr",{style:{visibility:"hidden"}});n=',29,'h);var l',1008,'n),i',1010,'l),m;l',234,'=h',248,234,';h',248,234,218,'if(',38,966,'if(e.msieColorBug){if(',285,'){',38,'0].',287,'=',285,';delete ',285,'}if(this',279,'){',38,'0].mathbackground=this',279,';delete this',279,'}}a.mbase.prototype','.displayAlign','=d.config',1775,';a.mbase.prototype','.displayIndent','=d.config',1779,';m=',195,38,970,'i),i)}',379,1609,'j=e.em/e.outerEm;e.em/=j;n.bbox.h','*=j;n.bbox.','d',1790,'w',1790,'lw',1790,'rw*=j;if(m&&m.bbox.width!=null){l',370,'=m.bbox.width;i',370,'="100%"}this.',273,'(n);if(m){',1202,'n,m.bbox.h*j,m.bbox.d*j,0)}if(!this.isMultiline&&this.Get("display")==="block"&&n.bbox.width==null){var o',276,'indentalignfirst','","','indentshiftfirst','","indentalign","indentshift");if(o.',1807,'!==a.INDENTALIGN.','INDENTALIGN){','o.indentalign','=o.',1807,'}if(',1814,'===a.INDENTALIGN.AUTO){',1814,'=this',1775,'}g.style.textAlign=',1814,';if(o.',1809,'!==a.INDENTSHIFT.INDENTSHIFT){','o.indentshift','=o.',1809,'}if(',1828,'==="auto"){',1828,'=this',1779,'}if(',1828,'&&',1814,1812,'CENTER){n.style[{left:"',362,'",right:"',364,'"}[',1814,']]=e.Em(',428,1828,'))}}h.',991,218,90,'n}});a.TeXAtom',17,'g){g=',29,'g);if(',38,966,31,'texClass===a.TEXCLASS.VCENTER){var f',1008,'g',1148,1010,'f);',195,38,970,'h),h);',379,'h,0,',740,'-(',1262,')/2+h.bbox.d)}else{g.bbox=',38,970,'g).bbox}}',56,'g',58,'g',60,'g}})});d.Browser.Select({MSIE',93,'f){var i=f','.versionAtLeast("','7.0");var h=f',1890,'8.0")&&document.documentMode>7;var g=(document.compatMode==="BackCompat");','e.config.styles[".MathJax .MathJax_HitBox','"]["',287,'-color"]="white";',1894,'"].opacity=0;',1894,'"].filter="alpha(opacity=0)";e',1093,'getMarginScale:e.getMSIEmarginScale,','PaddingWidthBug:true,','msieAccentBug:true,msieColorBug:true,msieRelativeWidthBug:g,msieMarginWidthBug:true,msiePaddingWidthBug:true,',344,':(h&&!g),msieBorderWidthBug:g,',366,':(!h||g),msieVerticalAlignBug:(h&&!g),msiePlaceBoxBug:(h&&!g),msieClipRectBug:!h,msieNegativeSpaceBug:g,negativeSkipBug:true,msieIE6:!i,msieItalicWidthBug',':true,zeroWidthBug:true,FontFaceBug:true,','allowWebFonts',':"eot"})},Firefox',93,'g){var h=false;if(g',1890,'3.5")){var f=String','(document.location',').replace(/[^\\/]*$/,"");if',1917,'.protocol!=="file:"||(d.config.root+"/").substr(0,f',23,')===f){h="otf"}}e',1093,'ffVerticalAlignBug:true,AccentBug:true,',1911,':h})},Safari',93,'j){var h=j',1890,'3.0");var g=j',1890,'3.1");j.isMobile','=(navigator.appVersion.match','(/Mobile/i)!=null);var f',1933,'(/ Android (\\d+)\\.(\\d+)/));var k=(g&&j.isMobile&&(navigator.platform.match(/iPad|iPod|iPhone/)||(f!=null&&(f[1]<2||(f[1]==2&&f[2]<2)))));e',1093,'config:{styles:{".MathJax img, .MathJax nobr, .MathJax a":{"max-width":"5000em","max-height":"5000em"}}},','rfuzz:0.05,AccentBug:true,AdjustSurd:true,','safariContextMenuBug:true,','safariNegativeSpaceBug:true,',742,':!g,safariTextNodeBug:!h,','safariWebFontSerif',':["serif"],',1911,':(g&&!k?(j.isPC?"svg":"otf"):false)});if(k){var i=','MathJax.Hub.config["HTML-CSS','"];if(i){i.availableFonts=[];i.preferredFont=null}else{',1948,'"]={availableFonts:[],preferredFont:null}}}},Chrome',93,'f){e',1093,1939,1911,':"svg",',1941,1944,':[""]})},Opera',93,'f){f.isMini',1933,'("Opera Mini")!=null);e.config.styles[".MathJax .merror"]["vertical-align"]=null;e',1093,'operaHeightBug:true,operaVerticalAlignBug:true,operaFontSizeBug:f',1890,'10.61"),negativeSkipBug',1910,1904,1911,':(f',1890,'10.0")&&!f.isMini?"otf":false)})},Konqueror',93,'f){e',1093,754,':true,noContextMenuBug:true})}});if(d.config.menuSettings.zoom!=="None"){c.Require("[MathJax]/extensions/MathZoom.js")}e.loadComplete("jax.js")})(MathJax.Ajax,MathJax.Hub,MathJax.OutputJax["HTML-CSS"]);'] ]); diff --git a/mathjax/jax/output/NativeMML/jax.js b/mathjax/jax/output/NativeMML/jax.js index c4abe97f6..43aef4408 100644 --- a/mathjax/jax/output/NativeMML/jax.js +++ b/mathjax/jax/output/NativeMML/jax.js @@ -13,6 +13,6 @@ */ MathJax.Unpack([ - ['(','function(','b,a,e,d){var c=e.Browser.isMSIE;','a.Augment({','LEFTBUTTON',':(c?1:0),MENUKEY:"altKey",','noContextMenuBug',':e.Browser.isKonequeror,msieQuirks:(c&&!(document.compatMode==="BackCompat")),','config:{styles',':{}},settings:','e.config.menuSettings',',Startup:','function(){','return ','MathJax.','Ajax.Styles(','this.config.','styles)},Config:',12,'this.SUPER(arguments).Config','.call(this',');if(','this.settings.scale','){',16,'scale=',22,'}},Translate:',1,'h){if(!h','.parentNode','){return','}var l=h','.previousSibling',';if(l&&String(l.className).match(/^MathJax(_MathML|_Display)?$/)){l',30,'.removeChild(','l)}var k=h.',14,'elementJax.root;var j=(k.Get("display")==="block"?"div":"span");var i=document.','createElement','(j),g=i;i.className="','MathJax_MathML','";i.style.fontSize=',16,'scale+"%";if(c){g=','MathJax.HTML.addElement(','i,"span",{className:"MathJax_MathContainer",','style:{display:"inline-block",','position:"relative','"}})}k.','toNativeMML(','g);h',30,'.insertBefore(i,h);if(c){if(',16,'showMathMenuMSIE){this.MSIEoverlay(i)}}else{k=i','.firstChild',';k.','oncontextmenu','=this.','ContextMenu',';k.','onmouseover',60,'Mouseover',';k.','onmousedown',60,'Mousedown;k.onclick',60,'Click',';k.','ondblclick',60,'DblClick','}},Remove:',1,'g){','var h=','g.SourceElement();if(!h',31,'}h=h',33,';if(!h',31,'}if(h.className.match(/',42,'/)){h',30,36,'h)}},MMLnamespace:"http://www.w3.org/1998/Math/MathML",MSIEoverlay:',1,'n){var m=n',57,';','n.style.position','="absolute";var o','=n.scrollHeight',',i=n.offsetWidth;var k=',46,'n,"img",{src:"about:blank",style:{','width:0,height:','o+"px"}});var g',98,'-o;n',36,'k);',96,'="";var l,j,h=(n',30,'.nodeName.toLowerCase()==="','div");if(h&&this.quirks){l=-o;j=Math.floor(-i/2)}else{l=g-o,j=-i}',46,'n,"span",{',48,102,'0,',49,'"}},[["span",{',48,'position:"absolute",left:j+"px",top:l+"px",width:m.offsetWidth+"px",height:o+"px",cursor:"pointer","background-color":"white",filter:"alpha(opacity=0)"},',67,':this.MSIEevent',',',59,123,',onclick',123,',onmousemove',123,',',73,123,',',63,123,',onmouseout',123,'}]])},MSIEmath:',1,'g){',79,'g',30,33,57,';return(h',111,'span"?h',57,':h)},MSIEevent:',12,79,'a.MSIEmath(this);var g','=window.event',';var i=a["MSIE"+g.type];if(i&&i.call(a,g,h,this)){','return false','}h.fireEvent("on"+g.type,g);',157,'},MSIEmousedown:',1,'i,h,g){if(','i[this.MENUKEY]&&i.button===this.',4,'&&this','.settings.context','!=="','MathJax"){this.trapUp=this.trapClick=true;this.ContextMenu.call(g,i,true);return true}','if(','this.MSIEzoomKeys','&&',170,'(i)){this.trapUp=true;',13,'true}',157,'},MSIEcontextmenu:',1,162,'this',166,'==="',168,157,'},',61,':',1,'j,k','){if(a.config.showMathMenu','&&(a',166,'==="MathJax','"||k)){if(a.safariContextMenuBug','){setTimeout("','window.getSelection().empty()",0)}',79,14,'Menu;if(h){if(','document.selection',195,200,'.empty()",0)}var g=(c?this',30,30,'.nextSibling',':this',30,206,');h.jax=e.getJaxFor(g);h.menu.items[1].menu.items[1].name=(','h.jax.inputJax.id','==="MathML"?"Original":',211,');','delete ','a.trapClick;',215,'a.trapUp;',13,'h.menu.Post(j)}else{if(!','d.loadingMathMenu','){',221,'=true;if(!j){j',155,'}var i={pageX:j.pageX,pageY:j.pageY,clientX:j.clientX,clientY:j.clientY};',14,'Callback.Queue(','d.Require("[MathJax]/extensions/','MathMenu.js"),',12,215,221,'},[this,arguments.callee,i,k])}if(!j){j',155,'}if(','j.preventDefault','){',237,'()}if(','j.stopPropagation','){',241,'()}j.cancelBubble=true;j.returnValue=false;',157,'}}},Mousedown:',1,'g',190,'){if(!g){g',155,'}if(a',166,193,'"){if(!a.',6,'||g.button!==2',31,'}}else{if(!g[a.MENUKEY]||g.button!==a.',4,31,'}}',13,'a.',61,20,',g,true)}},',65,':',1,'g){a.HandleEvent(g,"',65,'",this)},',71,':',1,271,71,273,75,':',1,271,75,273,'HandleEvent:',1,'i,g,h){},NAMEDSPACE:{negativeveryverythinmathspace:"-.0556em",negativeverythinmathspace:"-.1111em",negativethinmathspace:"-.1667em",negativemediummathspace:"-.2222em",negativethickmathspace:"-.2778em",negativeverythickmathspace:"-.3333em",negativeveryverythickmathspace:"-.3889em"}});b.mbase','.Augment({toNativeMML:function(','k){',79,'this.NativeMMLelement','(this.type);','this.NativeMMLattributes(h);','for(var j=','0',',g=this.data.length;j Date: Wed, 17 Nov 2010 22:09:48 -0500 Subject: [PATCH 6/8] Put jax.js in a property of the jax so that it can be changed (e.g., to combine the jax with some of its components, or with other jax) --- MathJax.js | 4 ++-- unpacked/MathJax.js | 19 ++++++++++--------- 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/MathJax.js b/MathJax.js index c56017a70..550d8acdd 100644 --- a/MathJax.js +++ b/MathJax.js @@ -37,7 +37,7 @@ MathJax.Unpack = function (data) { MathJax.isPacked = true; MathJax.Unpack([ - ['if(','document.','getElementById','&&',1,'childNodes&&',1,'createElement','){','if(!','window.MathJax','){',10,'={}}',9,'MathJax.','Hub){',15,'version="1.0.8";(','function(','d){','var b=','window[d];if(!','b){b','=window[d]={}}var ','f','=[];','var c=',19,'g','){var h=','g.','constructor',';if(!','h){h=','new Function','("")}','for(var ','i in g){if(i!=="',32,'"&&g','.hasOwnProperty','(i)){h[i]=g[i]}}','return ','h};var a=','function(){',43,35,'("',43,'arguments','.callee','.Init','.call(this,',50,')")};var e=a();e','.prototype','={bug_test:1};',9,'e',56,'.bug_test){a=',45,43,45,43,50,51,'.Init',53,50,')}}}b.','Object','=c({',32,':a(),Subclass:',19,'g,i',30,'a();h.SUPER=this;h.Init=this.Init;h','.Subclass','=this',80,';h.Augment=this.Augment;h.','protoFunction','=this.',84,';h.can=this.can;h.has=this.has;h.isa=this.isa;h',56,'=new this(f);h',56,'.',32,'=h;h.Augment(g,i);',43,'h},Init:',19,'g',30,'this;if(g','.length===','1&&g[0]===f','){return ','h}if(!(h ','instanceof ','g',51,')){h=new g',51,'(f)}',43,'h.Init.apply(h,g)||h},Augment:',19,'g,h){var i;if(g','!=null){for(i in ','g){if(g',41,'(i)){this','.',84,'(i,g[i','])}}if(g.toString!==this.prototype.toString&&g.toString!=={}.toString){this.protoFunction("toString",g.toString)}}','if(h',114,'h){if(','h',41,117,'[i]=h[i]}}}',43,'this},',84,':',19,'h,g){this',56,'[h]=g;','if(typeof',' g','==="function"){','g.SUPER=this.SUPER',56,'}},prototype:{Init',':function(){},','SUPER:',19,'g',102,'g',51,'.SUPER},can:',19,'g',102,'typeof(this[g','])==="function"},has:',19,'g',102,154,'])!=="undefined','"},isa:',19,'g){return(g ',104,72,')&&(this ',104,'g)}},can:',19,'g',102,'this',56,'.can',53,'g)},has:',19,'g',102,'this',56,'.has',53,'g)},isa:',19,'h){var g=this;while(',115,'===h',102,'true}else{g=g.SUPER}}',43,'false},SimpleSUPER:c({',32,':',19,'g',102,'this.SimpleSUPER.define(g)},define:',19,'g){var i={};if(g','!=null){',37,'h in ',115,41,'(h)){this.',84,'(h,g[h',121,43,'i},wrap:',19,'i,h){',137,'(h',')==="function"&&','h','.toString','().match(/\\.\\s*SUPER\\s*\\(/)){var g=',35,'(this.wrapper);g.label=i;g','.original','=h;h=g;g',218,'=this.stringify}',43,'h},wrapper:',45,'var h=',50,51,';this.SUPER=h.SUPER[h.label];try{var g=h',222,'.apply(this',',',50,')}catch(i){','delete this.','SUPER;','throw i}',238,239,43,'g}.','toString().replace','(/^\\s*function \\(\\)\\s*\\{\\s*/i,"").replace(/\\s*\\}\\s*$/i,""),toString:',45,43,'this',222,218,234,222,',',50,')}})})})("MathJax");(',19,'BASENAME){var ','BASE=window[BASENAME','];',9,'BASE){',259,']={}}var ','CALLBACK','=',19,'data){var cb=',35,'("',43,50,51,'.execute','.apply(',50,51,',',50,')");',37,'id in ','CALLBACK.prototype','){if(',283,41,'(id)){',137,'(data[id',160,'"){cb[id]=data[id]}else{cb[id]=',283,'[id]}}}cb',218,'=',283,218,';',43,'cb};',283,'={isCallback:true,hook',143,'data:[],object:window,execute:',45,9,'this.called||this.autoReset){this.called=!this.autoReset;',43,'this.hook',234,'.object,this','.data.concat([].slice.call(',50,',0)))}},reset:',45,238,'called},toString:',45,43,309,218,234,'.hook,',50,')}};var ISCALLBACK=',19,'f){return(typeof(f',216,'f.isCallback)};var EVAL=',19,'code',102,'eval.call(window,code)};EVAL("var __TeSt_VaR__ = 1','");if(','window.__TeSt_VaR__','){try{delete ',335,'}catch(error){',335,'=null}}else{if(','window.execScript','){EVAL=',19,'code){BASE.__code=code;code="try {"+BASENAME+".__result = eval("+BASENAME+".__code)} catch(err) {"+BASENAME+".__result = err}";',341,'(code',');var result=BASE.__result;delete BASE.__result;delete BASE.__code;if(result instanceof Error){throw result}return result','}}else{EVAL=',19,344,'var head=(',1,'getElementsByTagName("head"))[0];if(!','head){head=',1,'body}var script=',1,7,'("script");','script','.appendChild(',1,'createTextNode','(code));head',361,'script);','head.removeChild(','script',347,'}}}var USING=',19,'args,i','){if(',50,'.length','>1){if(',50,100,'2&&!(typeof ',50,'[0]==="function")&&',50,'[0] ',104,'Object&&typeof ',50,'[1]==="number"){','args=[].slice.call(',372,')}else{',388,50,',0)}}if(args ',104,'Array&&args',100,'1){args=args[0]}',137,' args',139,'if(args',274,'===',283,274,102,'args}',43,265,'({hook:args})}else{if(args ',104,'Array){',137,'(args[0])==="string"&&args[1] ',104,385,'args[1][args[0]]==="','function"){return CALLBACK({hook:args[','1][args[0]],object:args[1','],data:args.slice(','2)})}else{',137,' args[0]==="',418,'0',420,'1)})}else{',137,' args[1]==="',418,'1],object:args[0',420,'2)})}}}}else{',137,'(args)==="','string"){',43,265,'({hook:EVAL,data:[args]})}else{if(args ',104,72,102,265,'(args',390,137,'(args',')==="undefined"){',43,265,'({})}}}}}','throw Error("Can\'t ','make ','callback',' from given data")};var DELAY=',19,'time,',454,'){callback=USING(callback);',454,'.timeout=','setTimeout(',454,',time);','return callback','};var WAITFOR=',19,454,',signal',459,9,454,'.called){','WAITSIGNAL(',454,469,');signal.pending++}};var WAITEXECUTE=',45,'var signals=this','.signal',';',238,'signal;this',274,'=this.','oldExecute;',238,486,'var result=','this',274,234,',',50,');','if(ISCALLBACK(result)&&!result.called){',474,'result,signals',390,'for(var i=0,m=','signals','.length;if){f=',1,905,375,'}',9,'h){h=(',1,353,34,1,'body}}',43,'h};var e',26,21,45,37,'j=0,h=e',375,';j=this.timeout){h(','this.STATUS.ERROR',');',43,'1}',43,'0},file:',19,'i,',124,'h<0){',931,1006,'(i',390,931,'loadComplete','(i)}},execute:',45,309,713,311,',this.data[0],this.data[1])},',1065,':',19,'h,i,j){if(h.time(j)){return}if(',1,905,375,'>i&&',1,905,'[i].cssRules','&&',1,905,1121,375,'){j(h.STATUS.OK',390,462,'h,h.delay',')}},checkLength:',19,'h,k,m){if(h.time(m)){return}var l=0;var i=(k.sheet||k.styleSheet);try{if((i.cssRules||i.rules||[]).length>0){l=1}}catch(j){','if(j.message.match(/','protected variable|restricted URI/)){l=1}else{',1134,'Security error/)){l=1}}}if(l){',462,1004,'([m,h.STATUS.OK]),0',390,462,1130,')}}},',1104,':',19,34,981,'h);var i=',1008,'[h];if(i){a.Message.Clear(i.',750,'clearTimeout(','i.timeout);if(i.script){if(e',100,'0){',462,'b,0)}e.push(i.script)}',944,'h]=i.status;',238,'loading[h];',9,957,'h]){',957,'h]=[]}',957,'h].push(i.',454,390,944,'h]=',1016,';i={status:',1016,'}}',1004,'.',837,'(',957,'h],i.status)},',1006,':',19,124,1008,'[h].timeout','){',1154,1008,1190,')}',1008,'[h].status=',1089,';this.loadError(h);this.',1104,'(h)},loadError:',19,'h){a.Message.Set("File failed to load: "+h,null,2000)},Styles:',19,'j,k',30,'this.StyleString(',982,'h===""){k',940,'k);k()}else{var i=',1,7,'("style");',1026,964,1018,361,1049,'i',1052,'i',1054,'.styleSheet.cssText=h}else{i',361,1,363,'(h))}k=',1039,'.create',53,'k,i)}',43,'k},StyleString:',19,'m){',137,'(m)==="',436,43,'m}var j="",n,l;for(n in m){if(m',41,'(n)){',137,' m[n]==="',436,'j+=n+" {"+','m[n]+"}\\n"}else{if(m[n] ',104,412,37,'k=0;k1?d[1]:""));g=null}if(f&&(!b.',122,'||d)){c',63,'=c',63,468,'(b.',124,',(f.length>1?f[1]:""))}if(g&&!g',63,'.match(/\\S/)){','g=g',433,'}}if(b.',127,'&&g&&g.className==b.',127,'){try{g',58,'=""}catch(e){}g',93,'"}',237,'){a.',97,430,'=1}},',346,1,'(h,b,d',3,305,238,277,'q,o=',103,254,401,'var p=',155,135,',c=',155,137,';try{if(!b){b=','new Date().getTime','()}var j=0,l,f;while(jthis.',143,'&&j=0;o--){if(b[o].src.match(d)){q.script=b[o].innerHTML;if(RegExp.$2){q.params={};var r=RegExp.$2.substr(1).split(/\\&/);',110,'n=0,h=r',1100,'k=r[n].match(/(.*)=(.*)/);if(k){q.params[unescape(k[1])]=unescape(k[2])}}}u.root=b[o].src',468,'(/(^|\\/)[^\\/]*$/,"");break}}f.Ajax.config=u;var a={isMac',':(navigator.platform.substr(0,3)==="','Mac"),isPC',1323,'Win"),isMSIE:(window.ActiveXObject','!=null&&window.','clipboardData',6,'),isFirefox:(window.netscape',6,'&&',629,'ATTRIBUTE_NODE',1327,'opera',39,'),isSafari:(','navigator.userAgent.','match(/ (Apple)?WebKit\\//)!=null&&','window.chrome',39,'),isChrome:(',1341,1327,'chrome.loadTimes',6,'),isOpera:(window.opera',1327,'opera.version',6,'),isKonqueror:(window',656,'&&window',656,'("konqueror")&&navigator.vendor=="KDE"),versionAtLeast',1,'(x){var w=(this','.version).split','(".");x=(','new String','(x)).split(".");',110,'y=0,j=x.length;y=parseInt(x[y])}}',105,'true},Select',1,'(j){var i=','j[c.Browser];if(i',238,'i(c.Browser)}',105,'null}};var g=',1339,'replace(/^Mozilla\\/(\\d+\\.)+\\d+ /,"").replace(/[a-z][-a-z0-9._: ]+\\/\\d+[^ ]*-[^ ]*\\.([a-z][a-z])?\\d+ /i,"").replace(/Gentoo |Ubuntu\\/(\\d+\\.)*\\d+ (\\([^)]*\\) )?/,"");c.Browser=c',152,'c',152,1361,'("Unknown"),{version:"0.0"}),a);',110,'t in a',3,'a',656,'(t)){if(a[t]&&t',101,'2)==="is"){t=t.slice(2);if(t==="Mac"||t==="PC"){continue}c.Browser=c',152,1361,'(t),a);var p',441,'(".*(Version',')/((?:\\\\d+\\\\.)+\\\\d','+)|.*("+t+")"+(t=="MSIE"?" ":"/")+"((?:\\\\d+\\\\.)*\\\\d+)|(?:^|\\\\(| )([a-z][-a-z0-9._: ]+|WebKit',1396,'+)");var s=p.exec(g)||["","","","unknown","0.0"];c.Browser.name=(s[1]=="Version"?t:(s[3]||s[5]));c.Browser.version=s[2]||s[4]||s[6];break}}}','c.Browser.Select','({Safari',1,1370,'parseInt((String(j',1359,'("."))[0]);if(i>=526){','j.version="','4.0','"}else{if(i','>=525){',1407,'3.1',1409,'>500){',1407,'3.0',1409,'>400){',1407,'2.0',1409,'>85){',1407,'1.0"}}}}}},Firefox',1,'(j',3,'j.version==="0.0"&&navigator.product==="Gecko"&&','navigator.productSub','){var i=',1429,101,'8);if(i>="20090630"){',1407,'3.5',1409,'>="20080617"){',1407,'3.0',1409,'>="20061024"){',1407,'2.0"}}}}},Opera',1,'(i){i.version=',1350,'()}});',1400,'(',97,594,'browsers);c.queue=f.Callback',849,'c.queue',852,'Post",q.signal,"','Begin"],["',148,'",q],["Cookie",q],["Styles",q],',888,'var i=f.Callback.Queue(q.Jax(),q.',860,'());',105,'i.Push({})},q.onLoad(),',888,97,275,'=true},["Typeset",q],["',1456,'End"])})("',103,'")}};'] + ['if(','document.','getElementById','&&',1,'childNodes&&',1,'createElement','){','if(!','window.MathJax','){',10,'={}}',9,'MathJax.','Hub){',15,'version="1.0.8";(','function(','d){','var b=','window[d];if(!','b){b','=window[d]={}}var ','f','=[];','var c=',19,'g','){var h=','g.','constructor',';if(!','h){h=','new Function','("")}','for(var ','i in g){if(i!=="',32,'"&&g','.hasOwnProperty','(i)){h[i]=g[i]}}','return ','h};var a=','function(){',43,35,'("',43,'arguments','.callee','.Init','.call(this,',50,')")};var e=a();e','.prototype','={bug_test:1};',9,'e',56,'.bug_test){a=',45,43,45,43,50,51,'.Init',53,50,')}}}b.','Object','=c({',32,':a(),Subclass:',19,'g,i',30,'a();h.SUPER=this;h.Init=this.Init;h','.Subclass','=this',80,';h.Augment=this.Augment;h.','protoFunction','=this.',84,';h.can=this.can;h.has=this.has;h.isa=this.isa;h',56,'=new this(f);h',56,'.',32,'=h;h.Augment(g,i);',43,'h},Init:',19,'g',30,'this;if(g','.length===','1&&g[0]===f','){return ','h}if(!(h ','instanceof ','g',51,')){h=new g',51,'(f)}',43,'h.Init.apply(h,g)||h},Augment:',19,'g,h){var i;if(g','!=null){for(i in ','g){if(g',41,'(i)){this','.',84,'(i,g[i','])}}if(g.toString!==this.prototype.toString&&g.toString!=={}.toString){this.protoFunction("toString",g.toString)}}','if(h',114,'h){if(','h',41,117,'[i]=h[i]}}}',43,'this},',84,':',19,'h,g){this',56,'[h]=g;','if(typeof',' g','==="function"){','g.SUPER=this.SUPER',56,'}},prototype:{Init',':function(){},','SUPER:',19,'g',102,'g',51,'.SUPER},can:',19,'g',102,'typeof(this[g','])==="function"},has:',19,'g',102,154,'])!=="undefined','"},isa:',19,'g){return(g ',104,72,')&&(this ',104,'g)}},can:',19,'g',102,'this',56,'.can',53,'g)},has:',19,'g',102,'this',56,'.has',53,'g)},isa:',19,'h){var g=this;while(',115,'===h',102,'true}else{g=g.SUPER}}',43,'false},SimpleSUPER:c({',32,':',19,'g',102,'this.SimpleSUPER.define(g)},define:',19,'g){var i={};if(g','!=null){',37,'h in ',115,41,'(h)){this.',84,'(h,g[h',121,43,'i},wrap:',19,'i,h){',137,'(h',')==="function"&&','h','.toString','().match(/\\.\\s*SUPER\\s*\\(/)){var g=',35,'(this.wrapper);g.label=i;g','.original','=h;h=g;g',218,'=this.stringify}',43,'h},wrapper:',45,'var h=',50,51,';this.SUPER=h.SUPER[h.label];try{var g=h',222,'.apply(this',',',50,')}catch(i){','delete this.','SUPER;','throw i}',238,239,43,'g}.','toString().replace','(/^\\s*function \\(\\)\\s*\\{\\s*/i,"").replace(/\\s*\\}\\s*$/i,""),toString:',45,43,'this',222,218,234,222,',',50,')}})})})("MathJax");(',19,'BASENAME){var ','BASE=window[BASENAME','];',9,'BASE){',259,']={}}var ','CALLBACK','=',19,'data){var cb=',35,'("',43,50,51,'.execute','.apply(',50,51,',',50,')");',37,'id in ','CALLBACK.prototype','){if(',283,41,'(id)){',137,'(data[id',160,'"){cb[id]=data[id]}else{cb[id]=',283,'[id]}}}cb',218,'=',283,218,';',43,'cb};',283,'={isCallback:true,hook',143,'data:[],object:window,execute:',45,9,'this.called||this.autoReset){this.called=!this.autoReset;',43,'this.hook',234,'.object,this','.data.concat([].slice.call(',50,',0)))}},reset:',45,238,'called},toString:',45,43,309,218,234,'.hook,',50,')}};var ISCALLBACK=',19,'f){return(typeof(f',216,'f.isCallback)};var EVAL=',19,'code',102,'eval.call(window,code)};EVAL("var __TeSt_VaR__ = 1','");if(','window.__TeSt_VaR__','){try{delete ',335,'}catch(error){',335,'=null}}else{if(','window.execScript','){EVAL=',19,'code){BASE.__code=code;code="try {"+BASENAME+".__result = eval("+BASENAME+".__code)} catch(err) {"+BASENAME+".__result = err}";',341,'(code',');var result=BASE.__result;delete BASE.__result;delete BASE.__code;if(result instanceof Error){throw result}return result','}}else{EVAL=',19,344,'var head=(',1,'getElementsByTagName("head"))[0];if(!','head){head=',1,'body}var script=',1,7,'("script");','script','.appendChild(',1,'createTextNode','(code));head',361,'script);','head.removeChild(','script',347,'}}}var USING=',19,'args,i','){if(',50,'.length','>1){if(',50,100,'2&&!(typeof ',50,'[0]==="function")&&',50,'[0] ',104,'Object&&typeof ',50,'[1]==="number"){','args=[].slice.call(',372,')}else{',388,50,',0)}}if(args ',104,'Array&&args',100,'1){args=args[0]}',137,' args',139,'if(args',274,'===',283,274,102,'args}',43,265,'({hook:args})}else{if(args ',104,'Array){',137,'(args[0])==="string"&&args[1] ',104,385,'args[1][args[0]]==="','function"){return CALLBACK({hook:args[','1][args[0]],object:args[1','],data:args.slice(','2)})}else{',137,' args[0]==="',418,'0',420,'1)})}else{',137,' args[1]==="',418,'1],object:args[0',420,'2)})}}}}else{',137,'(args)==="','string"){',43,265,'({hook:EVAL,data:[args]})}else{if(args ',104,72,102,265,'(args',390,137,'(args',')==="undefined"){',43,265,'({})}}}}}','throw Error("Can\'t ','make ','callback',' from given data")};var DELAY=',19,'time,',454,'){callback=USING(callback);',454,'.timeout=','setTimeout(',454,',time);','return callback','};var WAITFOR=',19,454,',signal',459,9,454,'.called){','WAITSIGNAL(',454,469,');signal.pending++}};var WAITEXECUTE=',45,'var signals=this','.signal',';',238,'signal;this',274,'=this.','oldExecute;',238,486,'var result=','this',274,234,',',50,');','if(ISCALLBACK(result)&&!result.called){',474,'result,signals',390,'for(var i=0,m=','signals','.length;if){f=',1,905,375,'}',9,'h){h=(',1,353,34,1,'body}}',43,'h};var e',26,21,45,37,'j=0,h=e',375,';j=this.timeout){h(','this.STATUS.ERROR',');',43,'1}',43,'0},file:',19,'i,',124,'h<0){',931,1006,'(i',390,931,'loadComplete','(i)}},execute:',45,309,713,311,',this.data[0],this.data[1])},',1065,':',19,'h,i,j){if(h.time(j)){return}if(',1,905,375,'>i&&',1,905,'[i].cssRules','&&',1,905,1121,375,'){j(h.STATUS.OK',390,462,'h,h.delay',')}},checkLength:',19,'h,k,m){if(h.time(m)){return}var l=0;var i=(k.sheet||k.styleSheet);try{if((i.cssRules||i.rules||[]).length>0){l=1}}catch(j){','if(j.message.match(/','protected variable|restricted URI/)){l=1}else{',1134,'Security error/)){l=1}}}if(l){',462,1004,'([m,h.STATUS.OK]),0',390,462,1130,')}}},',1104,':',19,34,981,'h);var i=',1008,'[h];if(i){a.Message.Clear(i.',750,'clearTimeout(','i.timeout);if(i.script){if(e',100,'0){',462,'b,0)}e.push(i.script)}',944,'h]=i.status;',238,'loading[h];',9,957,'h]){',957,'h]=[]}',957,'h].push(i.',454,390,944,'h]=',1016,';i={status:',1016,'}}',1004,'.',837,'(',957,'h],i.status)},',1006,':',19,124,1008,'[h].timeout','){',1154,1008,1190,')}',1008,'[h].status=',1089,';this.loadError(h);this.',1104,'(h)},loadError:',19,'h){a.Message.Set("File failed to load: "+h,null,2000)},Styles:',19,'j,k',30,'this.StyleString(',982,'h===""){k',940,'k);k()}else{var i=',1,7,'("style");',1026,964,1018,361,1049,'i',1052,'i',1054,'.styleSheet.cssText=h}else{i',361,1,363,'(h))}k=',1039,'.create',53,'k,i)}',43,'k},StyleString:',19,'m){',137,'(m)==="',436,43,'m}var j="",n,l;for(n in m){if(m',41,'(n)){',137,' m[n]==="',436,'j+=n+" {"+','m[n]+"}\\n"}else{if(m[n] ',104,412,37,'k=0;k1?d[1]:""));g=null}if(f&&(!b.',113,'||d)){c',56,'=c',56,459,115,',(f.length>1?f[1]:""))}if(g&&!g',56,'.match(/\\S/)){','g=g',425,'}}if(b.',118,'&&g&&g.className==b.',118,'){try{g',49,'=""}catch(e){}g',83,'"}',226,'a.',87,422,'=1}},',335,85,'h,b,d){if(',293,'){',95,265,'q,o=',93,243,244,';var p=',145,126,',c=',145,128,';try{if(!b){b=','new Date().getTime','()}var j=0,l,f;while(jthis.',134,'&&j=0;o--){if(b[o].src.match(d)){q.script=b[o].innerHTML;if(RegExp.$2){q.params={};var r=RegExp.$2.substr(1).split(/\\&/);',99,'n=0,h=r',1056,'k=r[n].match(/(.*)=(.*)/);if(k){q.params[unescape(k[1])]=unescape(k[2])}}}u.root=b[o].src.replace(/(^|\\/)[^\\/]*$/,"");break}}f.Ajax.config=u;var a={isMac',':(navigator.platform.substr(0,3)==="','Mac"),isPC',1274,'Win"),isMSIE:(window.ActiveXObject','!=null&&window.','clipboardData!=null),isFirefox:(window.netscape!=null&&',615,'ATTRIBUTE_NODE',1278,'opera',32,'),isSafari:(','navigator.userAgent.','match(/ (Apple)?WebKit\\//)!=null&&','window.chrome',32,'),isChrome:(',1288,1278,'chrome.loadTimes!=null),isOpera:(window.opera',1278,'opera.version','!=null),isKonqueror:(window',640,'&&window',640,'("konqueror")&&navigator.vendor=="KDE"),versionAtLeast',85,'x){var w=(this','.version).split','(".");x=(','new String','(x)).split(".");',99,'y=0,j=x.length;y=parseInt(x[y])}}',95,'true},Select',85,934,'j[c.Browser];if(i){',95,'i(c.Browser)}',95,'null}};var g=',1286,'replace(/^Mozilla\\/(\\d+\\.)+\\d+ /,"").replace(/[a-z][-a-z0-9._: ]+\\/\\d+[^ ]*-[^ ]*\\.([a-z][a-z])?\\d+ /i,"").replace(/Gentoo |Ubuntu\\/(\\d+\\.)*\\d+ (\\([^)]*\\) )?/,"");c.Browser=c',142,'c',142,1305,'("Unknown"),{version:"0.0"}),a);',99,'t in a){if(a',640,'(t)){if(a[t]&&t',91,'2)==="is"){t=t.slice(2);if(t==="Mac"||t==="PC"){continue}c.Browser=c',142,1305,'(t),a);var p',432,'(".*(Version',')/((?:\\\\d+\\\\.)+\\\\d','+)|.*("+t+")"+(t=="MSIE"?" ":"/")+"((?:\\\\d+\\\\.)*\\\\d+)|(?:^|\\\\(| )([a-z][-a-z0-9._: ]+|WebKit',1338,'+)");var s=p.exec(g)||["","","","unknown","0.0"];c.Browser.name=(s[1]=="Version"?t:(s[3]||s[5]));c.Browser.version=s[2]||s[4]||s[6];break}}}','c.Browser.Select','({Safari',85,934,'parseInt((String(j',1303,'("."))[0]);if(i>=526){','j.version="','4.0','"}else{if(i','>=525){',1349,'3.1',1351,'>500){',1349,'3.0',1351,'>400){',1349,'2.0',1351,'>85){',1349,'1.0"}}}}}},Firefox',85,'j){if(j.version==="0.0"&&navigator.product==="Gecko"&&','navigator.productSub','){var i=',1369,91,'8);if(i>="20090630"){',1349,'3.5',1351,'>="20080617"){',1349,'3.0',1351,'>="20061024"){',1349,'2.0"}}}}},Opera',85,'i){i.version=',1295,'()}});',1342,'(',87,584,'browsers);c.queue=f.Callback',823,'c.queue',826,'Post",q.signal,"','Begin"],["',139,'",q],["Cookie",q],["Styles",q],',860,'var i=f.Callback.Queue(q.Jax(),q.',834,'());',95,'i.Push({})},q.onLoad(),',860,87,'isReady=true},["Typeset",q],["',1396,'End"])})("',93,'")}};'] ]); diff --git a/unpacked/MathJax.js b/unpacked/MathJax.js index 699cd5a24..7e0f973d1 100644 --- a/unpacked/MathJax.js +++ b/unpacked/MathJax.js @@ -1622,6 +1622,7 @@ MathJax.Hub.Startup = { var HUB = BASE.Hub, AJAX = BASE.Ajax, CALLBACK = BASE.Callback; var JAX = MathJax.Object.Subclass({ + JAXFILE: "jax.js", require: null, // array of files to load before jax.js is complete config: {}, // @@ -1653,10 +1654,10 @@ MathJax.Hub.Startup = { }, Translate: function (element) { this.constructor.prototype.Translate = this.noTranslate; - return AJAX.Require(this.directory+"/jax.js"); + return AJAX.Require(this.directory+"/"+this.JAXFILE); }, noTranslate: function (element) { - throw Error(this.directory+"/jax.js failed to redefine the Translate() method"); + throw Error(this.directory+"/"+this.JAXFILE+" failed to redefine the Translate() method"); }, Register: function (mimetype) {}, Config: function () { @@ -1665,7 +1666,9 @@ MathJax.Hub.Startup = { }, Startup: function () {}, loadComplete: function (file) { - if (file === "jax.js") { + if (file === "config.js") { + return AJAX.loadComplete(this.directory+"/"+file); + } else { var queue = CALLBACK.Queue(); queue.Push(["Post",HUB.Startup.signal,this.id+" Jax Config"]); queue.Push(["Config",this]); @@ -1679,8 +1682,6 @@ MathJax.Hub.Startup = { queue.Push(["Startup",this]); queue.Push(["Post",HUB.Startup.signal,this.id+" Jax Ready"]); return queue.Push(["loadComplete",AJAX,this.directory+"/"+file]); - } else { - return AJAX.loadComplete(this.directory+"/"+file); } } },{ @@ -1701,17 +1702,17 @@ MathJax.Hub.Startup = { // Load any needed the element jax var jax = this.elementJax; if (!(jax instanceof Array)) {jax = [jax]} for (var i = 0, m = jax.length; i < m; i++) { - var file = BASE.ElementJax.directory+"/"+jax[i]+"/jax.js"; + var file = BASE.ElementJax.directory+"/"+jax[i]+"/"+this.JAXFILE; if (!this.require) {this.require = []} else if (!(this.require instanceof Array)) {this.require = [this.require]}; this.require.push(file); // so Startup will wait for it to be loaded queue.Push(AJAX.Require(file)); } // Load the input jax - queue.Push(AJAX.Require(this.directory+"/jax.js")); + queue.Push(AJAX.Require(this.directory+"/"+this.JAXFILE)); // Load the associated output jax jax = HUB.config.outputJax["jax/"+jax[0]]; - if (jax) {queue.Push(AJAX.Require(jax[0].directory+"/jax.js"))} + if (jax) {queue.Push(AJAX.Require(jax[0].directory+"/"+this.JAXFILE))} return queue.Push({}); }, Register: function (mimetype) { @@ -1740,7 +1741,7 @@ MathJax.Hub.Startup = { // Make sure the element jax is loaded before Startup is called if (!this.require) {this.require = []} else if (!(this.require instanceof Array)) {this.require = [this.require]}; - this.require.push(BASE.ElementJax.directory+"/"+(mimetype.split(/\//)[1])+"/jax.js"); + this.require.push(BASE.ElementJax.directory+"/"+(mimetype.split(/\//)[1])+"/"+this.JAXFILE); }, Remove: function (jax) {} },{ From 1ee6dffddc219e076ce65cc327addf486e034c5d Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Wed, 29 Dec 2010 11:02:28 -0500 Subject: [PATCH 7/8] Fix some comments --- unpacked/MathJax.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/unpacked/MathJax.js b/unpacked/MathJax.js index 7e0f973d1..2e237be40 100644 --- a/unpacked/MathJax.js +++ b/unpacked/MathJax.js @@ -348,7 +348,7 @@ MathJax.version = "1.0.8"; // // Create a callback that is called when a collection of other callbacks have - // all been executed. If the callback gets calledimmediately (i.e., the + // all been executed. If the callback gets called immediately (i.e., the // others are all already called), check if it returns another callback // and return that instead. // @@ -1699,7 +1699,7 @@ MathJax.Hub.Startup = { // Make Translate produce an error message until the true one is loaded this.constructor.prototype.Translate = this.noTranslate; var queue = CALLBACK.Queue(); - // Load any needed the element jax + // Load any needed element jax var jax = this.elementJax; if (!(jax instanceof Array)) {jax = [jax]} for (var i = 0, m = jax.length; i < m; i++) { var file = BASE.ElementJax.directory+"/"+jax[i]+"/"+this.JAXFILE; From b15ca6e7c5c7303dfda17a536f4fc1a02eb89b45 Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Wed, 29 Dec 2010 11:04:50 -0500 Subject: [PATCH 8/8] Move laodComplete calls to make sure they occur after the MML jax is loaded --- jax/output/HTML-CSS/config.js | 2 +- jax/output/HTML-CSS/jax.js | 4 ++-- jax/output/NativeMML/config.js | 2 +- jax/output/NativeMML/jax.js | 2 +- unpacked/jax/output/HTML-CSS/config.js | 2 +- unpacked/jax/output/HTML-CSS/jax.js | 12 +++++++++--- unpacked/jax/output/NativeMML/config.js | 2 +- unpacked/jax/output/NativeMML/jax.js | 9 +++++++-- 8 files changed, 23 insertions(+), 12 deletions(-) diff --git a/jax/output/HTML-CSS/config.js b/jax/output/HTML-CSS/config.js index b3de16772..fe3f4a336 100644 --- a/jax/output/HTML-CSS/config.js +++ b/jax/output/HTML-CSS/config.js @@ -13,6 +13,6 @@ */ MathJax.Unpack([ - ['MathJax.OutputJax','["HTML-CSS','"]=',0,'({id:"','HTML-CSS",','version:"1.0.4",directory:',0,'.directory+"/HTML-CSS','",extensionDir:',0,'.extensionDir+"/',5,'autoloadDir:',0,8,'/autoload",fontDir:',0,8,'/fonts",webfontDir:',0,'.fontDir+"/',5,'config:{scale:100,availableFonts:["STIX","TeX"],preferredFont:"TeX",webFont:"TeX",imageFont:"TeX",showMathMenu:true,styles:{".MathJax_Display":{"text-align":"center",margin:"1em 0em"},".MathJax .merror','":{"background-color','":"#FFFF88",color:"#CC0000','",border:"1px solid',' #CC0000",padding:"1px 3px","font-family":"serif","font-style":"normal","font-size":"90%"},".','MathJax_Preview','":{color:"#888888"},"#MathJax_Tooltip',24,'":"InfoBackground",color:"InfoText',26,' black","','box-shadow":"2px 2px 5px #AAAAAA','","-webkit-',34,'","-moz-',34,'",filter:"progid:DXImageTransform.Microsoft.dropshadow(OffX=2, OffY=2, Color=\'gray\', Positive=\'true\')",padding:"3px 4px"}}}});',0,1,'"].Register("jax/mml");(function(b,c){var a;a=b.Insert({','minBrowserVersion',':{Firefox:3,Opera:9.52,MSIE:6,Chrome:0.3,Safari:2,Konqueror:4},','inlineMathDelimiters',':["$","$"],','displayMathDelimiters',':["$$","$$"],','multilineDisplay',':true,','minBrowserTranslate',':function(f){var e=b.getJaxFor(f),l=["[Math]"],k;var h=','document.createElement("','span",{className:"',28,'"});var j=e.root.Get("displaystyle");if(e.inputJax.id==="TeX"){if(j){k=a.',47,';l=[k[0]+e.originalText','+k[1]];if(a.',49,'){l=l[0].split(/\\n/)}}else{k=a.',45,58,'.replace(/^\\s+/,"").replace(/\\s+$/,"")+k[1]]}}for(var g=0,d=l.length;g=0){','if(this.negativeSkipBug){',144,'i',871,';i',871,874,'j=',513,';if(i',37,'){i',492,'j,i',37,266,'i',488,'j)}j=',513,'}i',488,518,');g=',518,'.offsetLeft-j.offsetLeft;i',511,518,');',899,'i',511,'j);i',871,'=f}}',43,'/this.em},Measured:',1,'h,g){if(h','.bbox.width','==null&&h.bbox.w&&!h.bbox.isMultiline',3,'f=this.getW(h);h.bbox.rw+=f-h.bbox.w;h.bbox.w=f}if(!g){g=h',620,'}if(!','g.bbox){g.bbox','=h.bbox}return h},Remeasured:',1,'g,f){f.bbox=this.Measured(g,f).bbox},Em:',1,'f){if(Math.abs(f)<0.0006',57,'"0em"}return f.toFixed(3',').replace(/\\.?0','+$/,"")+"em"},Percent:',1,'f',57,'(100*f).toFixed(1',952,'+$/,"")+"%"},length2percent:',1,'f',57,' ','this.Percent(','this.length2em(f','))},length2em:',1,'k,i){if(typeof(k)!=="string"){k=k.toString()}if(k===""){return""}','if(k===a.SIZE.','NORMAL',57,' 1}',969,'BIG',57,' 2}',969,'SMALL',57,' 0.71}if(k==="infinity"){return e.BIGDIMEN}',225,453,'TeX_factor;if(k.match(/mathspace$/)){return e.MATHSPACE[k]*h}var g=k.match(/^\\s*([-+]?(?:\\.\\d+|\\d+(?:\\.\\d*)?))?(pt|em|ex|mu|px|in|mm|cm|%)?/);',144,'parseFloat(g','[1]||"1"),j=g[2];if(i==null){i=1','}if(j==="','em','"){return f','*h',987,'ex',989,'*e.TeX.x_height*h}if(j==="%"){return f/100*i',987,'px',989,'/e.em',987,'pt',989,'/10*h',987,'in','"){return f*this.pxPerInch/e.em',987,'cm',1005,'/2.54',987,'mm',1005,'/25.4',987,'pc',1005,'/12',987,'mu',989,'/18*h}return f*h*i},thickness2em:',1,'f',3,'g=e.TeX.rule_thickness;','if(f===a.LINETHICKNESS.','MEDIUM',57,' g}',1026,'THIN',57,' 0.67*g}',1026,'THICK',57,' 1.67*g}return ',965,',g)},createStrut:',1,'i,g,j',3,'f=',475,580,479,'height:g+"px",width:"1px",marginRight:"-1px"}});if(j){i',492,'f,i',37,266,'i',488,'f)}return f},createBlank:',1,'g,f,h',3,'i=',475,580,479,'height:"1px",width',':this.Em(f)}});if(','h){g',492,'i,g',37,266,'g',488,'i)}return i},createShift:',1,'g,f,i',3,'h=',475,'span',21,592,1063,'i){g',492,'h,g',37,266,'g',488,'h)}return h},createSpace:',1,'k,j,m,f,g',3,'i','=this.Em(','Math.max(','0,j+m)),l','=this.Em(-m);',532,'l',1093,'e.getHD(k',620,').d-m)}if(k.isBox||k',625,'=="mspace"){','k.bbox={h:j*k.scale,d:m*k.scale,w:f*k.scale,rw:f*k.scale,lw:0};k',797,'=i;k',576,'verticalAlign','=l}else{k=',500,'k,"span',21,'height:i,',1109,':l}})}if(f>=0){k',800,1093,'f);k',576,'display="inline-block"}else{',49,'msieNegativeSpaceBug){k',797,'=""}k',576,592,1093,'f);if(e.safariNegativeSpaceBug&&k',620,37,'==k){this','.createBlank(','k,0,true)}}if(g&&g!==a.COLOR.TRANSPARENT){k',576,'backgroundColor=g}return k},createRule:',1,'o,k,m,p,i',3,'j=e.TeX.min_rule_thickness;if(p>0&&p*this.em0&&(k+m)*this.em0&&n',508,'==0){n',800,1093,'p)}if(o.isBox||o',625,1104,'o.bbox=n.bbox}','return n},createFrame:',1,'o,m,n,p,r,g',3,'l=(this.msieBorderWidthBug?0:2*r);var q',1093,'m+n-l),f=this.Em(-n-r),k',1093,'p-l);var i',1093,'r)+" "+g;var j=',500,'o,"span',21,'border:i,',1153,479,'width:k,height:q},bbox:{h:m,d:n',1159,'f){j',576,1109,760,'j},createStack:',1,'h,j,g){',49,'msiePaddingWidthBug){this',515,'h,0)}var i=String(g).match(/%$/);var f=(!i&&g!=null?g:0);h=',500,'h,"span",{noAdjust:true,style:{',1153,310,'",width:(i?"100%":this.Em(f)),height:0}});if(!j){h',620,'.bbox=h.bbox={','h:-this.BIGDIMEN,d:-this.BIGDIMEN',',w:f,lw:','this.BIGDIMEN',',rw:(!i&&g!=null?g:-',1208,')};if(i){h',938,'=g}}return h},createBox:',1,'g,f',3,'h=',500,'g,"span',21,22,'"},isBox:true});if(f!=null){h',800,760,'h},addBox:',1,'f,g){g',871,874,'g.isBox=true;return f',488,'g)},placeBox:',1,'n,m,k,i',3,'o=n',620,',v=n.bbox,q=o.bbox;',49,'msiePlaceBoxBug){',520,'n,this.NBSP)}',49,'imgSpaceBug){',520,'n,this.imgSpace)}var p=n',881,'/this.em+1,z=0;if(n.noAdjust){p-=1}else{',532,500,'n,"img',636,324,'",border:0,src:"about:blank",style:{',1155,'this.Em(p',')}})}else{',500,'n,"',580,1155,1256,')}})}}n','.style.top=this.Em(-','k-p);n',576,'left',1093,'m+z);if(v){',899,'if(v.lw<0){z=v.lw;e',1133,'n,-z,true);h=0}if(v.rw>v.w){e',1133,'n,v.rw-v.w+0.1)}}if(!this.msieClipRectBug&&!v.noclip&&!i',3,'u=3/this.em;var s=(v.H==null?v.h:v.H),g=(v.D==null?v.d:v.D);var w=p-s-u,j=p+g+u,h=v.lw-3*u,f=1000;if(v.isFixed){f=v.width-h}n',576,'clip="rect("+this.Em(w',')+" "+this.Em(','f',1280,'j',1280,'h)+")"}}if(v&&q){if(v.H!=null&&(q.H==null||v.H+k>q.H)){q.H=v.H+k}if(v.D!=null&&(q.D==null||v.D-k>q.D)){q.D=v.D-k}if(v.h+k>q.h){q.h=v.h+k}if(v.d-k>q.d){q.d=v.d-k}if(q.H!=null&&q.H<=q.h){delete q.H}if(q.D!=null&&q.D<=q.d){delete q.D}if(v.w+m>q.w){q.w=v.w+m;if(q.width==null){o',800,1093,'q.w)}}if(v.rw+m>q.rw){q.rw=v.rw+m}if(v.lw+m=h-0.01||(o==k-1&&!g.stretch)){if(g.HW[o][2]){l*=g.HW[o][2]}if(g.HW[o][3]){f=g.HW[o][3]}',1148,500,'q,"',526,'this.createChar(','n,[f,g.HW[o][1]],l,j);q.bbox=n.bbox;q.offset=0.65*q.bbox.w;q.scale=l;return}}if(g.stretch){this["extendDelimiter"+g.dir](q,p,g.stretch,l,j)}},extendDelimiterV:',1,'u,o,z,A,r',3,'i','=this.createStack(','u,true);var q','=this.createBox(','i),p',1362,'i);',1354,'q,(z.top','||z.ext),A,r);',1354,'p,(z.bot',1368,'var g={bbox:{w:0,lw:0,rw:0}},x=g;var v=q.bbox.h+q.bbox.d+','p.bbox.h+p.bbox.d;','var l=-q.bbox.h;',1297,'q,0,l,true);l-=q','.bbox.d;if(z.mid','){x',1362,'i);',1354,'x,z.mid,A,r);v+=','x.bbox.h+x.bbox.d','}if(o>v){g=',475,526,1354,'g,z.ext,A,r);var w=g.bbox.h+g.bbox.d,f=w-0.05,s,j,t=(z.mid?2:1);j=s=Math.ceil((o-v)/(t*f));if(!z.fullExtenders){f=(o-v)/(t*s)}var m=(s/(s+1))*(w-f);f=w-m;l+=m+f-g.bbox.h;while(t-->0){while(s-->0){l-=f;',1297,'this.addBox(','i,g','.cloneNode(true)),','0,l,true)}l+=m-g',1377,'&&t){',1297,'x,0,l-x.bbox.h,true);','s=j;l+=-(',1383,')+m+f-g.bbox.h}}}else{l+=(v-o)/2;if(z.mid){',1297,1397,'l+=-(',1383,')}l+=(v-o)/2}',1297,'p,0,l-p.bbox.h,true);l-=',1373,'u.bbox={w:',1094,'q.bbox.w,g.bbox.w,p.bbox.w,x.bbox.w),lw:Math.min(q.bbox.lw,g.bbox.lw,p.bbox.lw,x.bbox.lw),rw:',1094,'q.bbox.rw,g.bbox.rw,p.bbox.rw,x.bbox.rw),h:0,d:-l};u.scale=A;u.offset=0.55*u.bbox.w;u','.isMultiChar=true;this.setStackWidth(','i,u.bbox.w)},extendDelimiterH:',1,'t,g,y,A,q',3,'j',1360,'t,true);var h',1362,'j),u',1362,'j);',1354,'h,(y.left','||y.rep),A,q);',1354,'u,(y.right',1428,144,475,526,1354,'f,y.rep,A,q);var v={bbox:{',1206,'}};',1297,'h,-h.bbox.lw,0,true);var o=(','h.bbox.rw-h.bbox.lw',')+(u.bbox.rw-u.bbox.lw)-0.05,m=',1441,'-0.025;if(y.mid){v',1362,'j);',1354,'v,y.mid,A,q);o+=v.bbox.w}if(g>o',3,'z=f.bbox.rw-f.bbox.lw,i=z-0.05,r,l,s=(y.mid?2:1);l=r=Math.ceil((g-o)/(s*i));i=(g-o)/(s*r);var p=(r/(r+1))*(z-i);i=z-p;m-=f.bbox.lw+p;while(s-->0){while(r-->0){',1297,1390,'j,f',1392,'m,0,true);m+=i}if(y.mid&&s){',1297,'v,m,0,true);m+=v.bbox.w','-p;r=l}}}else{m-=(o-g)/2;if(y.mid){',1297,1457,'}m-=(o-g)/2}',1297,'u,m,0,true);t.bbox={w:m+u.bbox.rw,lw:0,rw:m+u.bbox.rw,H:',1094,'h.bbox.h,f.bbox.h,u.bbox.h,v.bbox.h),D:',1094,'h.bbox.d,f.bbox.d,u.bbox.d,v.bbox.d),h:f.bbox.h,d:f.bbox.d};t.scale=A;t',1414,'j,t.bbox.w)},createChar:',1,'o,k,h,f',3,'n=o,p="",j={fonts:[k[1]],noRemap:true};if(f&&f===a.VARIANT.BOLD){j.fonts=[k[1]+"-bold",k[1]]}if(typeof(k[1])!=="string"){j=k[1]}if(k[0] ',456,'){for(var l=0,','g=k[0].length;l=r[q].low&&s<=r[q].high){if(r[q].remap&&r[q].remap[s]){s=k+r[q].remap[s]}else{s=s-r[q].low+k;if(r[q].add){s+=r[q].add}}if(','j["variant"+r[q].offset',']){j=',453,'VARIANT[',1564,']]}break}}}if(j.remap&&j.remap[s]){if(j.remap[s] ',456,3,'h=j.remap[s];s=h[0];j=',453,1567,'h[1]]}else{s=j.remap[s];if(','j.remap.variant','){j=',453,1567,1576,']}}}if(',453,'REMAP[s]&&!j.noRemap){s=',453,'REMAP[s]}p=this.lookupChar(j,s);y=p[s];if(j!==x&&!y[5].img){if(u','.length){',520,'f,u);u=""}f=v;x=g;if(j!==x){if(x){f=',500,'v,"span")}else{g=j}}this.handleFont(f,p,f!==v);x=j}u=this.handleChar(f,p,y,s,u);if(y[0',']/1000>v.bbox.','h){v.bbox.h=y[0]/1000}if(y[1',1591,'d){v.bbox.d=y[1',']/1000}if(v.bbox.w+y[','3]/1000=0;h--){if(g.Ranges[h][2]==k){g.Ranges.splice(h,1)}}this.loadFont(g.directory+"/"+k+".js")}}}},loadFont:',1,'g',3,'f=',223,'.Queue();','f.Push(["Require",c,this.','fontDir+"/"+g]);if(',410,'){if(!',5,'.isPacked){g=g.replace(/\\/([^\\/]*)$/,e.imgPacked+"/$1")}',1705,'webfontDir+"/png/"+g])}','d.RestartAfter(','f.Push({}))},',212,':',1,'f){f.available=f.',758,'f.family=f.name}',1713,392,212,'(f))},',249,':',1,'g,f){',216,'disable web fonts");g.',61,717,'if(',354,405,'&&',354,405,'===this.fontInUse){',410,'=true;',216,'switch to image fonts");',216,425,'");',219,'Set("Web-Fonts not available -- ',425,' instead",null,3000);c.Require',422,'",f',266,'this',234,717,'f()}},Element:',16,'Element,',17,':',16,17,',TextNode:',16,'TextNode,addText:',16,'addText,ucMatch:',16,'ucMatch,BIGDIMEN:10000000,ID:0,idPostfix:"",GetID:',13,'this.ID++;return this.ID},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},TeX:{x_height:0.430554,quad:1,num1:0.676508,num2:0.393732,num3:0.44373,denom1:0.685951,denom2:0.344841,sup1:0.412892,sup2:0.3628'], - ['92,sup3:0.288888,sub1:0.15,sub2:0.247217,sup_drop:0.386108,sub_drop:0.05,delim1:2.39,delim2:1,axis_height:0.25,rule_thickness:0.06,','big_op_spacing1',':0.111111,','big_op_spacing2',':0.166666,','big_op_spacing3',':0.2,','big_op_spacing4',':0.6,','big_op_spacing5',':0.1,scriptspace:0.1,nulldelimiterspace:0.12,delimiterfactor:901,delimitershortfall:0.1,min_rule_thickness:1.25},PLANE1',':String.fromCharCode(','55349),NBSP',11,'160),rfuzz:0});MathJax.Hub.Register.StartupHook("mml Jax Ready",','function(){','a=MathJax.ElementJax.mml;a.mbase','.Augment({toHTML:function(','l){','var j=this.','HTMLlineBreaks','();if(','j','.length','>2','){return ','this.','toHTMLmultiline','(l,j)}l=','this.HTMLcreateSpan(','l);','if(this.','type!="mrow"){l','=this.HTMLhandleSize(','l)}for(var g=0,f=','this.data.length',';gg.d){g.d=h.d}if(h.h>g.h){g.h=h.h}if(h.D!=null&&h.D>g.D){g.D=h.D}if(h.H!=null&&h.H>g.H){g.H=h.H}if(i','.style.paddingLeft','){g.w+=','parseFloat(','i',126,')*(i.scale||1)}if(','g.w+h.lwg.rw){g.rw=g.w+h.rw}g.w+=h.w;if(i','.style.paddingRight','){g.w+=',128,'i',133,131,'h.width){g.width=h.width}},',120,93,'f','){f.h=f.d=f.H=f.D=f.','rw=-','e.BIGDIMEN',';f.w=0;f.lw=',145,';','return f},',113,93,100,'f.h===this.BIGDIMEN',143,'w=f.rw=f.lw=0}if(f.D<=f.d){delete f.D}if(f.H<=f.h){delete f.H}},HTMLzeroBBox:',15,'return{h:0,d:0,w:0,lw:0,rw:0}},',108,93,'f){',31,'isEmbellished','()){',90,'this.Core().',108,'(f)}','return false},','HTMLstretchH',93,'g,f',25,'this.HTMLspanElement','()},',50,93,'g,f,i',25,173,174,'HTMLnotEmpty',93,'f){while(f){if((f.type!=="mrow"&&f.type!=="texatom")||f.data',23,'>1',25,'true}f=f.data[0]}',168,'HTMLmeasureChild',93,'g,',100,38,'g]!=null){','e.Measured(',38,41,'f),f)}else{f.bbox=','this.HTMLzeroBBox','()}},HTMLcreateSpan',93,'f){',31,'spanID',105,173,21,'g){while(g','.firstChild','){g','.removeChild(','g',209,')}g','.bbox={w:0,h:0,d:0,lw:0,','rw:0};g.scale=1;g.isMultChar=null;g','.style.cssText','="";',90,'g}}',31,'href){f','=','e.addElement(','f,"a",{href:this.href})}f=',224,'f,"span",{className:','this.type','});if(e.imgHeightBug){f.style.display="inline-block"}if(this["class"]!=null){f.className+=" "+this["class"]}',31,'style){f',217,'=this.style;if(f','.style.fontSize','){this.mathsize=f',234,';f',234,'=""}}','this.spanID=','e.GetID();f.id=(','this.id||"MathJax-Span-"+this.spanID)+e.idPostfix',';f',215,'lr:0};',31,222,'.parentNode','.bbox=f.bbox}',149,122,':',15,'if(!this.spanID',25,'null}',90,'document.getElementById','((',242,')},','HTMLhandleVariant',93,'g,f,h){e.handleVariant(g,f,h)},HTMLhandleSize',93,'f){if(!f.scale){f.scale','=this.HTMLgetScale',21,'f.scale!==1){f',234,'=e.Percent(f.scale)}}',149,'HTMLhandleColor',93,'k){var m','=this.getValues("','mathcolor','","color");if(this','.mathbackground','){m',279,'=this',279,'}if(','this.background','){m.','background','=',285,'}',31,'style&&','k.style.backgroundColor','){m',279,'=',293,';',293,'="transparent"}if(m.color','&&!this.',277,286,277,'=m.color','}if(m.',287,'&&!this',279,'){m',279,'=m.',287,306,277,'){k.style.color=m.',277,'}if(m',279,'&&m',279,'!==a.COLOR.TRANSPARENT){var n=1/e.em,j=0,i=0;',31,'isToken){j=k.bbox.lw;i=','k.bbox.rw','-k.bbox.w','}if(k',126,'!==""){j+=',128,'k',126,')*(k.scale||1)}','if(k',133,'!==""){i-=',128,'k',133,333,'var h','=Math.max(','0,e.getW(k)+(e.PaddingWidthBug?0:i-j));if(e.','msieCharPaddingWidthBug','&&k',126,'!==""){h+=',128,'k',126,333,71,'k.bbox.h+k.bbox.d',',f=-k.bbox.d;if(h>0){h+=2*n;j-=n}if(l>0){l+=2*n;f-=n}i=-h-j;var g=e.Element("span",{id:"','MathJax-Color-"+this.spanID+e.idPostfix',',style:{display:"inline-block",','backgroundColor:m',279,',','width:e.Em(h),height:e.Em(l),','verticalAlign:e.Em(f),','marginLeft',':e.Em(j),','marginRight',':e.Em(i)}});if(e.','msieInlineBlockAlignBug','){g','.style.position="relative";','g','.style.width','=g.style.','height=0;g','.style.verticalAlign',371,362,371,364,218,'e.placeBox(',224,'g,"span",{noAdjust:true',356,'position:"absolute",overflow:"hidden",',360,287,':m',279,'}}),j,k.bbox.h+n)}k',248,'.insertBefore(','g,k',60,'g}',90,'null},HTMLremoveColor',63,'f=',258,'("',355,');if(f){f',248,211,'f)}},','HTMLhandleSpace',93,'i){',31,'useMMLspacing','){',31,'type!=="mo"){return}var g',276,'scriptlevel','","lspace","','rspace','");if(g.',414,'<=0||','this.hasValue("','lspace")||',420,416,'")){','g.lspace',342,'0,','e.length2em(',425,'));','g.rspace',342,'0,',428,431,'));var f=this,h=this.Parent();while(h&&h.',162,'()&&h.Core()===f){f=h;h=h.Parent();i=f.',122,'()}if(',425,'){i',126,'=e.Em(',425,')}if(',431,'){i',133,444,431,')}}}else{',19,'texSpacing',21,'j!==""){j=',428,'j)/(i.scale||1);if(i',126,'){j+=',128,'i',126,')}i',126,444,'j)}}},','HTMLgetScale',63,'h=1,f',276,'mathsize","',414,'","fontsize","scriptminsize");',31,'style',105,173,21,'g',234,'!=""){','f.fontsize','=g',234,'}}if(',483,301,'mathsize){','f.mathsize','=',483,'}if(f.',414,'!==0){if(f.',414,'>2){f.',414,'=2}h=Math.pow(this.Get("scriptsizemultiplier"),f.',414,');','f.scriptminsize','=',428,502,');if(h<',502,'){h=',502,'}}h*=',428,490,60,'h},HTMLgetVariant',63,'f',276,'mathvariant','","fontfamily","','fontweight','","','fontstyle','");',31,'style){var h=',173,21,'h.style.fontFamily','){','f.fontfamily','=',528,'}if(','h.style.fontWeight','){f.',520,'=',534,'}if(','h.style.fontStyle','){f.fontStyle=',540,'}}var g=f.',518,';',31,'variantForm){g="-"+e.fontInUse+"-variant"}if(',530,301,518,'){if(!f.',520,'&&f.',518,'.match(/bold/)){f.',520,'="bold"}if(!f.',522,553,518,'.match(/italic/)){f.',522,'="italic"}return{FONTS:[],fonts:[],noRemap:true,defaultFont:{family:',530,',style:f.',522,',weight:f.',520,'}}}if(f.',520,'==="bold"){g={normal',':a.VARIANT.','BOLD,italic',572,'BOLDITALIC',',fraktur',572,'BOLDFRAKTUR,script',572,'BOLDSCRIPT,"','sans-serif":a.VARIANT.','BOLDSANSSERIF',',"sans-serif','-italic":a.VARIANT.','SANSSERIFBOLDITALIC}[g]||g}else{if(f.',520,'==="normal"){g={','bold',572,'normal,"bold',584,'ITALIC,"bold-fraktur":a.VARIANT.FRAKTUR,"bold-script":a.VARIANT.SCRIPT,"bold-',581,'SANSSERIF',583,'-bold',584,'SANSSERIFITALIC','}[g]||g}}','if(f.',522,'==="italic"){g={normal',572,'ITALIC,bold',572,575,',"',581,598,',"bold-',581,585,522,587,'italic',572,'NORMAL,"bold',584,'BOLD',583,584,'SANSSERIF',583,'-bold',584,582,599,90,'e.FONTDATA.','VARIANT[g',']}},{HTMLautoload',63,'f=','e.autoloadDir+"/"+',228,'+".js";d.RestartAfter(c.Require(','f))},',95,93,'f',105,634,'f',636,'g))},',169,93,'g,f','){this.HTMLremoveColor();','return this.toHTML(g,f',')},',50,93,177,649,650,',i)}});a.chars',17,'g,f){this.',262,'(g,f,','this.data.join','("").','replace(/[\\u2061-\\u2064]/g,""))}});a.','entity',17,659,262,'(g,f,this.toString().',664,'mi',17,'j){j',33,29,'j));j','.bbox=null;','var h=this','.HTMLgetVariant();for(var g=0,f=this.data.length;gk.bbox.w){k.bbox.ic=',325,326,';e.createBlank(k,k.bbox.ic);k.bbox.w=',325,'}}',56,'k',58,'k',60,'k},',108,93,'f){if(!this.','Get("stretchy")){',90,'false}var g=',662,'("");if(g',23,'>1',25,'false}g=',629,'DELIMITERS[','g.charCodeAt(0)];return(g&&g.dir==f.substr(0,1))},',50,93,'l,k,n',649,'var f',276,'symmetric","','maxsize","minsize','");var j=',173,'(),g;var i=',740,',m=j.scale;','if(f.symmetric){g','=2*','Math.max(','k-i,n+i)}else{g=k+n}f.maxsize=',428,'f.maxsize,','j.bbox.h+j.bbox.d',');f.minsize=',428,'f.minsize,',815,');g',342,818,'Math.min(',814,'g));j=',29,'l);','e.createDelimiter(','j,',662,'("").charCodeAt(0),','g,m);',809,'=(',815,')/2+i}else{g=(',815,')*k/(k+n)}e.positionDelimiter(j,g);',56,'j',58,'j',60,'j},',169,93,'i,f',649,'var g',276,803,'","',518,'","',520,417,520,'==="bold"&&!this.',518,'){g.',518,'=a.VARIANT.BOLD',103,173,'(),j=h.scale;','g.maxsize','=',428,866,',h.bbox.w);g.minsize=',428,'g.minsize,','h.bbox.w);f',342,872,823,866,',f));h=',29,'i);',828,'h,',662,831,'f,j,g.',518,');',56,'h',58,'h',60,'h}});a.mtext',17,'k){k',33,29,'k));k',677,31,'Parent().type==="merror"){e.addText(k,',662,'(""));',71,'e.getHD(k),g=e.getW(k);k.bbox={h:l.h,d:l.d,w:g,lw:0,rw:g}}else{',709,65,35,67,'if(',38,70,38,728,662,'("").',730,'}}',56,'k',58,'k',60,'k}});a.ms','.Augment({toHTML:a.mbase.HTMLautoload});a.','mglyph',925,'mspace',17,'j){j',33,29,'j));var g',276,'height","depth","width','");g',279,'=this',279,';if(',285,'&&!this',279,'){g',279,'=',285,'}var i=',428,'g.height),k=',428,'g.depth),f=',428,'g.width);',738,'j,i,k,f,g',279,60,683,'mphantom',17,'j,g,l){j=',29,'j);if(',38,'0]!=null){','var k=',195,38,'0].toHTML(','j),',964,'l!=null){e.Remeasured(',38,'0].',50,'(j,g,l),j)}else{if(g!=null){e.Remeasured(',38,'0].',169,'(j,g),j)}}j.bbox={w:','k.bbox.w,','h:k.bbox.h,d:k.bbox.d,','lw:0,rw:0};',65,'j.childNodes',23,67,986,'[h].','style.visibility','="hidden"}}',56,'j',58,'j',60,'j},','HTMLstretchH:a.mbase.HTMLstretchH,HTMLstretchV:a.mbase.HTMLstretchV});a.','mpadded',17,'j,h,l){j=',29,964,38,966,'var g','=e.createStack(','j,true);var k','=e.createBox(','g);',195,38,970,'k),k);if(l!=null){e.Remeasured(',38,'0].',50,'(k,h,l),k)}else{if(h!=null){e.Remeasured(',38,'0].',169,'(k,h),k)}}var i',276,935,415,'voffset"),f=0,m=0;if(i.lspace){f','=this.HTMLlength2em(k,i.','lspace)}if(i.voffset){m',1028,'voffset)}',379,'k,f,m);j.bbox={',983,'w:',982,'lw:',823,'0,k.bbox.lw+f),rw:',811,982,325,'+f),H',':Math.max((k.bbox.','H==null?-',145,':k.bbox.H),k.bbox.h+m),D',1044,'D==null?-',145,':k.bbox.D),k.bbox.d-m)};if(i.height','!==""){j.bbox.','h',1028,'height,"h",0)}if(i.depth',1052,'d',1028,'depth,"d",0)}if(i.width',1052,'w',1028,'width,"w",0)}if(j.bbox.H<=j.bbox.h','){delete j.bbox.','H}if(j.bbox.D<=j.bbox.d',1064,'D}e.setStackWidth(g,j.bbox.w)}',56,'j',58,'j',60,'j},HTMLlength2em',93,'j,k,l,',100,'f==null){f=-',145,103,'String(k).match','(/width|height|depth/);var i=(h?j.bbox[h[0].charAt(0)]:(l?j.bbox[l]:null));var g=',428,'k,i);if(l&&',1080,'(/^\\s*[-+]/)){',90,811,'f,j.bbox[l]+g)}else{',90,'g}},',999,'mrow','.Augment({',169,93,'h,f',649,'var g=',173,'();',38,'this.core].',169,'(g,f);',43,'g,true',58,'g',60,'g},',50,93,'i,g,j',649,'var f=',173,'();',38,1102,50,'(f,g,j);',43,'f,true',58,'f',60,'f}});a.mstyle',17,100,38,966,'f=',38,970,'f);',240,38,'0].spanID;',56,'f);this.',273,'(f)}return f},HTMLspanElement:function(){return(this.data[0]!=null?this.data[0].HTMLspanElement():null)},HTMLstretchH:function(g,f){return(this.data[0]!=null?this.data[0].HTMLstretchH(g,f):g)},HTMLstretchV:function(g,f,i){return(this.data[0]!=null?this.data[0].HTMLstretchV(g,f,i):g)}});a','.mfrac',17,'y){y=',29,'y',');var h',1008,'y);var k',1010,'h),j',1010,'h',');this.HTMLmeasureChild(','0,k',1155,'1,j);var f',276,713,'","linethickness","numalign","denomalign","bevelled");var C',267,'(),x=f.',713,';var B=',740,'*C;if(f.bevelled){var A=(x?0.4:0.15);var l',342,353,',',815,')+2*A;var z',1010,'h);',828,'z,47,l);',379,'k,0,(k.bbox.d-k','.bbox.h)/2+B','+A);',379,'z,k.bbox.w-A/2,(z.bbox.d-z',1179,');',379,'j,k.bbox.w+z.bbox.w-A,(j.bbox.d-j',1179,'-A)}else{var g',342,982,'j.bbox.w);var o=e.thickness2em(f.linethickness),s,r,n,m;var w=','e.TeX.min_rule_thickness/this.em',';if(x){n=e.TeX.num1;m=e.TeX.denom1}else{n=(o===0?e.TeX.num3:e.TeX.num2);m=e.TeX.denom2}n*=C;m*=C;if(o===0){s=Math.max((x?7:3)*','e.TeX.rule_thickness',',2*w);r=(n-k.bbox.d',')-(j.bbox.h-m);if(ro){f+=((',353,')-(o-s))/2}var u=',629,794,629,'RULECHAR];if(!u||iF){F=q.bbox.w}if(!I[H]&&F>g){g=F}}}if(g==-',145,'){g=F}if(',1504,'){g=F=B}var w=',1194,',A=',629,'TeX_factor;var h=l[',1466,']||{bbox:',199,174,'J=(h.bbox.ic||0);var p,n,s,r,o,v,E;for(H=0,C=',35,';H0){m+=y;l-=y}}',379,1705,811,'m,',1679,'));',379,1693,811,'l,',1672,'))}}',56,'C',58,'C',60,'C},',999,'mmultiscripts',925,'mtable',925,'math',17,'n,g){var k=this.Get("alttext");if(k){g.setAttribute("aria-label",k)}var h=',224,'n,"nobr",{style:{visibility:"hidden"}});n=',29,'h);var l',1008,'n),i',1010,'l),m;l',234,'=h',248,234,';h',248,234,218,'if(',38,966,'if(e.msieColorBug){if(',285,'){',38,'0].',287,'=',285,';delete ',285,'}if(this',279,'){',38,'0].mathbackground=this',279,';delete this',279,'}}a.mbase.prototype','.displayAlign','=d.config',1775,';a.mbase.prototype','.displayIndent','=d.config',1779,';m=',195,38,970,'i),i)}',379,1609,'j=e.em/e.outerEm;e.em/=j;n.bbox.h','*=j;n.bbox.','d',1790,'w',1790,'lw',1790,'rw*=j;if(m&&m.bbox.width!=null){l',370,'=m.bbox.width;i',370,'="100%"}this.',273,'(n);if(m){',1202,'n,m.bbox.h*j,m.bbox.d*j,0)}if(!this.isMultiline&&this.Get("display")==="block"&&n.bbox.width==null){var o',276,'indentalignfirst','","','indentshiftfirst','","indentalign","indentshift");if(o.',1807,'!==a.INDENTALIGN.','INDENTALIGN){','o.indentalign','=o.',1807,'}if(',1814,'===a.INDENTALIGN.AUTO){',1814,'=this',1775,'}g.style.textAlign=',1814,';if(o.',1809,'!==a.INDENTSHIFT.INDENTSHIFT){','o.indentshift','=o.',1809,'}if(',1828,'==="auto"){',1828,'=this',1779,'}if(',1828,'&&',1814,1812,'CENTER){n.style[{left:"',362,'",right:"',364,'"}[',1814,']]=e.Em(',428,1828,'))}}h.',991,218,90,'n}});a.TeXAtom',17,'g){g=',29,'g);if(',38,966,31,'texClass===a.TEXCLASS.VCENTER){var f',1008,'g',1148,1010,'f);',195,38,970,'h),h);',379,'h,0,',740,'-(',1262,')/2+h.bbox.d)}else{g.bbox=',38,970,'g).bbox}}',56,'g',58,'g',60,'g}})});d.Browser.Select({MSIE',93,'f){var i=f','.versionAtLeast("','7.0");var h=f',1890,'8.0")&&document.documentMode>7;var g=(document.compatMode==="BackCompat");','e.config.styles[".MathJax .MathJax_HitBox','"]["',287,'-color"]="white";',1894,'"].opacity=0;',1894,'"].filter="alpha(opacity=0)";e',1093,'getMarginScale:e.getMSIEmarginScale,','PaddingWidthBug:true,','msieAccentBug:true,msieColorBug:true,msieRelativeWidthBug:g,msieMarginWidthBug:true,msiePaddingWidthBug:true,',344,':(h&&!g),msieBorderWidthBug:g,',366,':(!h||g),msieVerticalAlignBug:(h&&!g),msiePlaceBoxBug:(h&&!g),msieClipRectBug:!h,msieNegativeSpaceBug:g,negativeSkipBug:true,msieIE6:!i,msieItalicWidthBug',':true,zeroWidthBug:true,FontFaceBug:true,','allowWebFonts',':"eot"})},Firefox',93,'g){var h=false;if(g',1890,'3.5")){var f=String','(document.location',').replace(/[^\\/]*$/,"");if',1917,'.protocol!=="file:"||(d.config.root+"/").substr(0,f',23,')===f){h="otf"}}e',1093,'ffVerticalAlignBug:true,AccentBug:true,',1911,':h})},Safari',93,'j){var h=j',1890,'3.0");var g=j',1890,'3.1");j.isMobile','=(navigator.appVersion.match','(/Mobile/i)!=null);var f',1933,'(/ Android (\\d+)\\.(\\d+)/));var k=(g&&j.isMobile&&(navigator.platform.match(/iPad|iPod|iPhone/)||(f!=null&&(f[1]<2||(f[1]==2&&f[2]<2)))));e',1093,'config:{styles:{".MathJax img, .MathJax nobr, .MathJax a":{"max-width":"5000em","max-height":"5000em"}}},','rfuzz:0.05,AccentBug:true,AdjustSurd:true,','safariContextMenuBug:true,','safariNegativeSpaceBug:true,',742,':!g,safariTextNodeBug:!h,','safariWebFontSerif',':["serif"],',1911,':(g&&!k?(j.isPC?"svg":"otf"):false)});if(k){var i=','MathJax.Hub.config["HTML-CSS','"];if(i){i.availableFonts=[];i.preferredFont=null}else{',1948,'"]={availableFonts:[],preferredFont:null}}}},Chrome',93,'f){e',1093,1939,1911,':"svg",',1941,1944,':[""]})},Opera',93,'f){f.isMini',1933,'("Opera Mini")!=null);e.config.styles[".MathJax .merror"]["vertical-align"]=null;e',1093,'operaHeightBug:true,operaVerticalAlignBug:true,operaFontSizeBug:f',1890,'10.61"),negativeSkipBug',1910,1904,1911,':(f',1890,'10.0")&&!f.isMini?"otf":false)})},Konqueror',93,'f){e',1093,754,':true,noContextMenuBug:true})}});if(d.config.menuSettings.zoom!=="None"){c.Require("[MathJax]/extensions/MathZoom.js")}e.loadComplete("jax.js")})(MathJax.Ajax,MathJax.Hub,MathJax.OutputJax["HTML-CSS"]);'] + ['(','function(','c,d,e','){var ','a;var b=','MathJax','.Object.Subclass({timeout:5*1000,FontInfo:{STIX:{family:"STIXSizeOneSym",','testString',':"() {} []"},TeX:{family:"MathJax_Size1",',7,':"() {} []"}},','comparisonFont',':["sans-serif","monospace","script","Times","Courier","Arial","Helvetica"],testSize:["40px","50px","60px","30px","20px"],Init:','function(){','this.div','=','MathJax.HTML.','addElement','(','document.body',',"div','",{style:{','position:"absolute','",','visibility:"hidden",','top:0,left:0,','width:"auto",padding:0,border:0,margin:0,textAlign:"left",textIndent:0,textTransform:"none",lineHeight:"normal",letterSpacing:"normal",wordSpacing:"normal','",','fontSize',':','this.testSize','[0],','fontWeight',':"normal",','fontStyle',':"normal"}},[""]);this.text=',14,'.firstChild','},findFont:',1,'j,g){if(g&&this.','testCollection','(g)){','return g','}for(var ','h=0,f=j','.length;h=0){','if(this.negativeSkipBug){',144,'i',871,';i',871,874,'j=',513,';if(i',37,'){i',492,'j,i',37,266,'i',488,'j)}j=',513,'}i',488,518,');g=',518,'.offsetLeft-j.offsetLeft;i',511,518,');',899,'i',511,'j);i',871,'=f}}',43,'/this.em},Measured:',1,'h,g){if(h','.bbox.width','==null&&h.bbox.w&&!h.bbox.isMultiline',3,'f=this.getW(h);h.bbox.rw+=f-h.bbox.w;h.bbox.w=f}if(!g){g=h',620,'}if(!','g.bbox){g.bbox','=h.bbox}return h},Remeasured:',1,'g,f){f.bbox=this.Measured(g,f).bbox},Em:',1,'f){if(Math.abs(f)<0.0006',57,'"0em"}return f.toFixed(3',').replace(/\\.?0','+$/,"")+"em"},Percent:',1,'f',57,'(100*f).toFixed(1',952,'+$/,"")+"%"},length2percent:',1,'f',57,' ','this.Percent(','this.length2em(f','))},length2em:',1,'k,i){if(typeof(k)!=="string"){k=k.toString()}if(k===""){return""}','if(k===a.SIZE.','NORMAL',57,' 1}',969,'BIG',57,' 2}',969,'SMALL',57,' 0.71}if(k==="infinity"){return e.BIGDIMEN}',225,453,'TeX_factor;if(k.match(/mathspace$/)){return e.MATHSPACE[k]*h}var g=k.match(/^\\s*([-+]?(?:\\.\\d+|\\d+(?:\\.\\d*)?))?(pt|em|ex|mu|px|in|mm|cm|%)?/);',144,'parseFloat(g','[1]||"1"),j=g[2];if(i==null){i=1','}if(j==="','em','"){return f','*h',987,'ex',989,'*e.TeX.x_height*h}if(j==="%"){return f/100*i',987,'px',989,'/e.em',987,'pt',989,'/10*h',987,'in','"){return f*this.pxPerInch/e.em',987,'cm',1005,'/2.54',987,'mm',1005,'/25.4',987,'pc',1005,'/12',987,'mu',989,'/18*h}return f*h*i},thickness2em:',1,'f',3,'g=e.TeX.rule_thickness;','if(f===a.LINETHICKNESS.','MEDIUM',57,' g}',1026,'THIN',57,' 0.67*g}',1026,'THICK',57,' 1.67*g}return ',965,',g)},createStrut:',1,'i,g,j',3,'f=',475,580,479,'height:g+"px",width:"1px",marginRight:"-1px"}});if(j){i',492,'f,i',37,266,'i',488,'f)}return f},createBlank:',1,'g,f,h',3,'i=',475,580,479,'height:"1px",width',':this.Em(f)}});if(','h){g',492,'i,g',37,266,'g',488,'i)}return i},createShift:',1,'g,f,i',3,'h=',475,'span',21,592,1063,'i){g',492,'h,g',37,266,'g',488,'h)}return h},createSpace:',1,'k,j,m,f,g',3,'i','=this.Em(','Math.max(','0,j+m)),l','=this.Em(-m);',532,'l',1093,'e.getHD(k',620,').d-m)}if(k.isBox||k',625,'=="mspace"){','k.bbox={h:j*k.scale,d:m*k.scale,w:f*k.scale,rw:f*k.scale,lw:0};k',797,'=i;k',576,'verticalAlign','=l}else{k=',500,'k,"span',21,'height:i,',1109,':l}})}if(f>=0){k',800,1093,'f);k',576,'display="inline-block"}else{',49,'msieNegativeSpaceBug){k',797,'=""}k',576,592,1093,'f);if(e.safariNegativeSpaceBug&&k',620,37,'==k){this','.createBlank(','k,0,true)}}if(g&&g!==a.COLOR.TRANSPARENT){k',576,'backgroundColor=g}return k},createRule:',1,'o,k,m,p,i',3,'j=e.TeX.min_rule_thickness;if(p>0&&p*this.em0&&(k+m)*this.em0&&n',508,'==0){n',800,1093,'p)}if(o.isBox||o',625,1104,'o.bbox=n.bbox}','return n},createFrame:',1,'o,m,n,p,r,g',3,'l=(this.msieBorderWidthBug?0:2*r);var q',1093,'m+n-l),f=this.Em(-n-r),k',1093,'p-l);var i',1093,'r)+" "+g;var j=',500,'o,"span',21,'border:i,',1153,479,'width:k,height:q},bbox:{h:m,d:n',1159,'f){j',576,1109,760,'j},createStack:',1,'h,j,g){',49,'msiePaddingWidthBug){this',515,'h,0)}var i=String(g).match(/%$/);var f=(!i&&g!=null?g:0);h=',500,'h,"span",{noAdjust:true,style:{',1153,310,'",width:(i?"100%":this.Em(f)),height:0}});if(!j){h',620,'.bbox=h.bbox={','h:-this.BIGDIMEN,d:-this.BIGDIMEN',',w:f,lw:','this.BIGDIMEN',',rw:(!i&&g!=null?g:-',1208,')};if(i){h',938,'=g}}return h},createBox:',1,'g,f',3,'h=',500,'g,"span',21,22,'"},isBox:true});if(f!=null){h',800,760,'h},addBox:',1,'f,g){g',871,874,'g.isBox=true;return f',488,'g)},placeBox:',1,'n,m,k,i',3,'o=n',620,',v=n.bbox,q=o.bbox;',49,'msiePlaceBoxBug){',520,'n,this.NBSP)}',49,'imgSpaceBug){',520,'n,this.imgSpace)}var p=n',881,'/this.em+1,z=0;if(n.noAdjust){p-=1}else{',532,500,'n,"img',636,324,'",border:0,src:"about:blank",style:{',1155,'this.Em(p',')}})}else{',500,'n,"',580,1155,1256,')}})}}n','.style.top=this.Em(-','k-p);n',576,'left',1093,'m+z);if(v){',899,'if(v.lw<0){z=v.lw;e',1133,'n,-z,true);h=0}if(v.rw>v.w){e',1133,'n,v.rw-v.w+0.1)}}if(!this.msieClipRectBug&&!v.noclip&&!i',3,'u=3/this.em;var s=(v.H==null?v.h:v.H),g=(v.D==null?v.d:v.D);var w=p-s-u,j=p+g+u,h=v.lw-3*u,f=1000;if(v.isFixed){f=v.width-h}n',576,'clip="rect("+this.Em(w',')+" "+this.Em(','f',1280,'j',1280,'h)+")"}}if(v&&q){if(v.H!=null&&(q.H==null||v.H+k>q.H)){q.H=v.H+k}if(v.D!=null&&(q.D==null||v.D-k>q.D)){q.D=v.D-k}if(v.h+k>q.h){q.h=v.h+k}if(v.d-k>q.d){q.d=v.d-k}if(q.H!=null&&q.H<=q.h){delete q.H}if(q.D!=null&&q.D<=q.d){delete q.D}if(v.w+m>q.w){q.w=v.w+m;if(q.width==null){o',800,1093,'q.w)}}if(v.rw+m>q.rw){q.rw=v.rw+m}if(v.lw+m=h-0.01||(o==k-1&&!g.stretch)){if(g.HW[o][2]){l*=g.HW[o][2]}if(g.HW[o][3]){f=g.HW[o][3]}',1148,500,'q,"',526,'this.createChar(','n,[f,g.HW[o][1]],l,j);q.bbox=n.bbox;q.offset=0.65*q.bbox.w;q.scale=l;return}}if(g.stretch){this["extendDelimiter"+g.dir](q,p,g.stretch,l,j)}},extendDelimiterV:',1,'u,o,z,A,r',3,'i','=this.createStack(','u,true);var q','=this.createBox(','i),p',1362,'i);',1354,'q,(z.top','||z.ext),A,r);',1354,'p,(z.bot',1368,'var g={bbox:{w:0,lw:0,rw:0}},x=g;var v=q.bbox.h+q.bbox.d+','p.bbox.h+p.bbox.d;','var l=-q.bbox.h;',1297,'q,0,l,true);l-=q','.bbox.d;if(z.mid','){x',1362,'i);',1354,'x,z.mid,A,r);v+=','x.bbox.h+x.bbox.d','}if(o>v){g=',475,526,1354,'g,z.ext,A,r);var w=g.bbox.h+g.bbox.d,f=w-0.05,s,j,t=(z.mid?2:1);j=s=Math.ceil((o-v)/(t*f));if(!z.fullExtenders){f=(o-v)/(t*s)}var m=(s/(s+1))*(w-f);f=w-m;l+=m+f-g.bbox.h;while(t-->0){while(s-->0){l-=f;',1297,'this.addBox(','i,g','.cloneNode(true)),','0,l,true)}l+=m-g',1377,'&&t){',1297,'x,0,l-x.bbox.h,true);','s=j;l+=-(',1383,')+m+f-g.bbox.h}}}else{l+=(v-o)/2;if(z.mid){',1297,1397,'l+=-(',1383,')}l+=(v-o)/2}',1297,'p,0,l-p.bbox.h,true);l-=',1373,'u.bbox={w:',1094,'q.bbox.w,g.bbox.w,p.bbox.w,x.bbox.w),lw:Math.min(q.bbox.lw,g.bbox.lw,p.bbox.lw,x.bbox.lw),rw:',1094,'q.bbox.rw,g.bbox.rw,p.bbox.rw,x.bbox.rw),h:0,d:-l};u.scale=A;u.offset=0.55*u.bbox.w;u','.isMultiChar=true;this.setStackWidth(','i,u.bbox.w)},extendDelimiterH:',1,'t,g,y,A,q',3,'j',1360,'t,true);var h',1362,'j),u',1362,'j);',1354,'h,(y.left','||y.rep),A,q);',1354,'u,(y.right',1428,144,475,526,1354,'f,y.rep,A,q);var v={bbox:{',1206,'}};',1297,'h,-h.bbox.lw,0,true);var o=(','h.bbox.rw-h.bbox.lw',')+(u.bbox.rw-u.bbox.lw)-0.05,m=',1441,'-0.025;if(y.mid){v',1362,'j);',1354,'v,y.mid,A,q);o+=v.bbox.w}if(g>o',3,'z=f.bbox.rw-f.bbox.lw,i=z-0.05,r,l,s=(y.mid?2:1);l=r=Math.ceil((g-o)/(s*i));i=(g-o)/(s*r);var p=(r/(r+1))*(z-i);i=z-p;m-=f.bbox.lw+p;while(s-->0){while(r-->0){',1297,1390,'j,f',1392,'m,0,true);m+=i}if(y.mid&&s){',1297,'v,m,0,true);m+=v.bbox.w','-p;r=l}}}else{m-=(o-g)/2;if(y.mid){',1297,1457,'}m-=(o-g)/2}',1297,'u,m,0,true);t.bbox={w:m+u.bbox.rw,lw:0,rw:m+u.bbox.rw,H:',1094,'h.bbox.h,f.bbox.h,u.bbox.h,v.bbox.h),D:',1094,'h.bbox.d,f.bbox.d,u.bbox.d,v.bbox.d),h:f.bbox.h,d:f.bbox.d};t.scale=A;t',1414,'j,t.bbox.w)},createChar:',1,'o,k,h,f',3,'n=o,p="",j={fonts:[k[1]],noRemap:true};if(f&&f===a.VARIANT.BOLD){j.fonts=[k[1]+"-bold",k[1]]}if(typeof(k[1])!=="string"){j=k[1]}if(k[0] ',456,'){for(var l=0,','g=k[0].length;l=r[q].low&&s<=r[q].high){if(r[q].remap&&r[q].remap[s]){s=k+r[q].remap[s]}else{s=s-r[q].low+k;if(r[q].add){s+=r[q].add}}if(','j["variant"+r[q].offset',']){j=',453,'VARIANT[',1564,']]}break}}}if(j.remap&&j.remap[s]){if(j.remap[s] ',456,3,'h=j.remap[s];s=h[0];j=',453,1567,'h[1]]}else{s=j.remap[s];if(','j.remap.variant','){j=',453,1567,1576,']}}}if(',453,'REMAP[s]&&!j.noRemap){s=',453,'REMAP[s]}p=this.lookupChar(j,s);y=p[s];if(j!==x&&!y[5].img){if(u','.length){',520,'f,u);u=""}f=v;x=g;if(j!==x){if(x){f=',500,'v,"span")}else{g=j}}this.handleFont(f,p,f!==v);x=j}u=this.handleChar(f,p,y,s,u);if(y[0',']/1000>v.bbox.','h){v.bbox.h=y[0]/1000}if(y[1',1591,'d){v.bbox.d=y[1',']/1000}if(v.bbox.w+y[','3]/1000=0;h--){if(g.Ranges[h][2]==k){g.Ranges.splice(h,1)}}this.loadFont(g.directory+"/"+k+".js")}}}},loadFont:',1,'g',3,'f=',223,'.Queue();','f.Push(["Require",c,this.','fontDir+"/"+g]);if(',410,'){if(!',5,'.isPacked){g=g.replace(/\\/([^\\/]*)$/,e.imgPacked+"/$1")}',1705,'webfontDir+"/png/"+g])}','d.RestartAfter(','f.Push({}))},',212,':',1,'f){f.available=f.',758,'f.family=f.name}',1713,392,212,'(f))},',249,':',1,'g,f){',216,'disable web fonts");g.',61,717,'if(',354,405,'&&',354,405,'===this.fontInUse){',410,'=true;',216,'switch to image fonts");',216,425,'");',219,'Set("Web-Fonts not available -- ',425,' instead",null,3000);c.Require',422,'",f',266,'this',234,717,'f()}},Element:',16,'Element,',17,':',16,17,',TextNode:',16,'TextNode,addText:',16,'addText,ucMatch:',16,'ucMatch,BIGDIMEN:10000000,ID:0,idPostfix:"",GetID:',13,'this.ID++;return this.ID},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},TeX:{x_height:0.430554,quad:1,num1:0.676508,num2:0.393732,num3:0.44373,denom1:0.685951,denom2:0.344841,sup1:0.412892,sup2:0.362892,sup3:0.288888,s'], + ['ub1:0.15,sub2:0.247217,sup_drop:0.386108,sub_drop:0.05,delim1:2.39,delim2:1,axis_height:0.25,rule_thickness:0.06,','big_op_spacing1',':0.111111,','big_op_spacing2',':0.166666,','big_op_spacing3',':0.2,','big_op_spacing4',':0.6,','big_op_spacing5',':0.1,scriptspace:0.1,nulldelimiterspace:0.12,delimiterfactor:901,delimitershortfall:0.1,min_rule_thickness:1.25},PLANE1',':String.fromCharCode(','55349),NBSP',11,'160),rfuzz:0});MathJax.Hub.Register.StartupHook("mml Jax Ready",function(){a=MathJax.ElementJax.mml;a.mbase','.Augment({toHTML:function(','l){','var j=this.','HTMLlineBreaks','();if(','j','.length','>2','){return ','this.','toHTMLmultiline','(l,j)}l=','this.HTMLcreateSpan(','l);','if(this.','type!="mrow"){l','=this.HTMLhandleSize(','l)}for(var g=0,f=','this.data.length',';gg.d){g.d=h.d}if(h.h>g.h){g.h=h.h}if(h.D!=null&&h.D>g.D){g.D=h.D}if(h.H!=null&&h.H>g.H){g.H=h.H}if(i','.style.paddingLeft','){g.w+=','parseFloat(','i',124,')*(i.scale||1)}if(','g.w+h.lwg.rw){g.rw=g.w+h.rw}g.w+=h.w;if(i','.style.paddingRight','){g.w+=',126,'i',131,129,'h.width){g.width=h.width}},',118,91,'f','){f.h=f.d=f.H=f.D=f.','rw=-','e.BIGDIMEN',';f.w=0;f.lw=',143,';','return f},',111,91,98,'f.h===this.BIGDIMEN',141,'w=f.rw=f.lw=0}if(f.D<=f.d){delete f.D}if(f.H<=f.h){delete f.H}},HTMLzeroBBox',':function(){','return{h:0,d:0,w:0,lw:0,rw:0}},',106,91,'f){',29,'isEmbellished','()){',88,'this.Core().',106,'(f)}','return false},','HTMLstretchH',91,'g,f',23,'this.HTMLspanElement','()},',48,91,'g,f,i',23,171,172,'HTMLnotEmpty',91,'f){while(f){if((f.type!=="mrow"&&f.type!=="texatom")||f.data',21,'>1',23,'true}f=f.data[0]}',166,'HTMLmeasureChild',91,'g,',98,36,'g]!=null){','e.Measured(',36,39,'f),f)}else{f.bbox=','this.HTMLzeroBBox','()}},HTMLcreateSpan',91,'f){',29,'spanID',103,171,19,'g){while(g','.firstChild','){g','.removeChild(','g',207,')}g','.bbox={w:0,h:0,d:0,lw:0,','rw:0};g.scale=1;g.isMultChar=null;g','.style.cssText','="";',88,'g}}',29,'href){f','=','e.addElement(','f,"a",{href:this.href})}f=',222,'f,"span",{className:','this.type','});if(e.imgHeightBug){f.style.display="inline-block"}if(this["class"]!=null){f.className+=" "+this["class"]}',29,'style){f',215,'=this.style;if(f','.style.fontSize','){this.mathsize=f',232,';f',232,'=""}}','this.spanID=','e.GetID();f.id=(','this.id||"MathJax-Span-"+this.spanID)+e.idPostfix',';f',213,'lr:0};',29,220,'.parentNode','.bbox=f.bbox}',147,120,154,'if(!this.spanID',23,'null}',88,'document.getElementById','((',240,')},','HTMLhandleVariant',91,'g,f,h){e.handleVariant(g,f,h)},HTMLhandleSize',91,'f){if(!f.scale){f.scale','=this.HTMLgetScale',19,'f.scale!==1){f',232,'=e.Percent(f.scale)}}',147,'HTMLhandleColor',91,'k){var m','=this.getValues("','mathcolor','","color");if(this','.mathbackground','){m',276,'=this',276,'}if(','this.background','){m.','background','=',282,'}',29,'style&&','k.style.backgroundColor','){m',276,'=',290,';',290,'="transparent"}if(m.color','&&!this.',274,283,274,'=m.color','}if(m.',284,'&&!this',276,'){m',276,'=m.',284,303,274,'){k.style.color=m.',274,'}if(m',276,'&&m',276,'!==a.COLOR.TRANSPARENT){var n=1/e.em,j=0,i=0;',29,'isToken){j=k.bbox.lw;i=','k.bbox.rw','-k.bbox.w','}if(k',124,'!==""){j+=',126,'k',124,')*(k.scale||1)}','if(k',131,'!==""){i-=',126,'k',131,330,'var h','=Math.max(','0,e.getW(k)+(e.PaddingWidthBug?0:i-j));if(e.','msieCharPaddingWidthBug','&&k',124,'!==""){h+=',126,'k',124,330,69,'k.bbox.h+k.bbox.d',',f=-k.bbox.d;if(h>0){h+=2*n;j-=n}if(l>0){l+=2*n;f-=n}i=-h-j;var g=e.Element("span",{id:"','MathJax-Color-"+this.spanID+e.idPostfix',',style:{display:"inline-block",','backgroundColor:m',276,',','width:e.Em(h),height:e.Em(l),','verticalAlign:e.Em(f),','marginLeft',':e.Em(j),','marginRight',':e.Em(i)}});if(e.','msieInlineBlockAlignBug','){g','.style.position="relative";','g','.style.width','=g.style.','height=0;g','.style.verticalAlign',368,359,368,361,216,'e.placeBox(',222,'g,"span",{noAdjust:true',353,'position:"absolute",overflow:"hidden",',357,284,':m',276,'}}),j,k.bbox.h+n)}k',246,'.insertBefore(','g,k',58,'g}',88,'null},HTMLremoveColor',61,'f=',255,'("',352,');if(f){f',246,209,'f)}},','HTMLhandleSpace',91,'i){',29,'useMMLspacing','){',29,'type!=="mo"){return}var g',273,'scriptlevel','","lspace","','rspace','");if(g.',411,'<=0||','this.hasValue("','lspace")||',417,413,'")){','g.lspace',339,'0,','e.length2em(',422,'));','g.rspace',339,'0,',425,428,'));var f=this,h=this.Parent();while(h&&h.',160,'()&&h.Core()===f){f=h;h=h.Parent();i=f.',120,'()}if(',422,'){i',124,'=e.Em(',422,')}if(',428,'){i',131,441,428,')}}}else{',17,'texSpacing',19,'j!==""){j=',425,'j)/(i.scale||1);if(i',124,'){j+=',126,'i',124,')}i',124,441,'j)}}},','HTMLgetScale',61,'h=1,f',273,'mathsize","',411,'","fontsize","scriptminsize");',29,'style',103,171,19,'g',232,'!=""){','f.fontsize','=g',232,'}}if(',480,298,'mathsize){','f.mathsize','=',480,'}if(f.',411,'!==0){if(f.',411,'>2){f.',411,'=2}h=Math.pow(this.Get("scriptsizemultiplier"),f.',411,');','f.scriptminsize','=',425,499,');if(h<',499,'){h=',499,'}}h*=',425,487,58,'h},HTMLgetVariant',61,'f',273,'mathvariant','","fontfamily","','fontweight','","','fontstyle','");',29,'style){var h=',171,19,'h.style.fontFamily','){','f.fontfamily','=',525,'}if(','h.style.fontWeight','){f.',517,'=',531,'}if(','h.style.fontStyle','){f.fontStyle=',537,'}}var g=f.',515,';',29,'variantForm){g="-"+e.fontInUse+"-variant"}if(',527,298,515,'){if(!f.',517,'&&f.',515,'.match(/bold/)){f.',517,'="bold"}if(!f.',519,550,515,'.match(/italic/)){f.',519,'="italic"}return{FONTS:[],fonts:[],noRemap:true,defaultFont:{family:',527,',style:f.',519,',weight:f.',517,'}}}if(f.',517,'==="bold"){g={normal',':a.VARIANT.','BOLD,italic',569,'BOLDITALIC',',fraktur',569,'BOLDFRAKTUR,script',569,'BOLDSCRIPT,"','sans-serif":a.VARIANT.','BOLDSANSSERIF',',"sans-serif','-italic":a.VARIANT.','SANSSERIFBOLDITALIC}[g]||g}else{if(f.',517,'==="normal"){g={','bold',569,'normal,"bold',581,'ITALIC,"bold-fraktur":a.VARIANT.FRAKTUR,"bold-script":a.VARIANT.SCRIPT,"bold-',578,'SANSSERIF',580,'-bold',581,'SANSSERIFITALIC','}[g]||g}}','if(f.',519,'==="italic"){g={normal',569,'ITALIC,bold',569,572,',"',578,595,',"bold-',578,582,519,584,'italic',569,'NORMAL,"bold',581,'BOLD',580,581,'SANSSERIF',580,'-bold',581,579,596,88,'e.FONTDATA.','VARIANT[g',']}},{HTMLautoload',61,'f=','e.autoloadDir+"/"+',226,'+".js";d.RestartAfter(c.Require(','f))},',93,91,'f',103,631,'f',633,'g))},',167,91,'g,f','){this.HTMLremoveColor();','return this.toHTML(g,f',')},',48,91,175,646,647,',i)}});a.chars',15,'g,f){this.',259,'(g,f,','this.data.join','("").','replace(/[\\u2061-\\u2064]/g,""))}});a.','entity',15,656,259,'(g,f,this.toString().',661,'mi',15,'j){j',31,27,'j));j','.bbox=null;','var h=this','.HTMLgetVariant();for(var g=0,f=this.data.length;gk.bbox.w){k.bbox.ic=',322,323,';e.createBlank(k,k.bbox.ic);k.bbox.w=',322,'}}',54,'k',56,'k',58,'k},',106,91,'f){if(!this.','Get("stretchy")){',88,'false}var g=',659,'("");if(g',21,'>1',23,'false}g=',626,'DELIMITERS[','g.charCodeAt(0)];return(g&&g.dir==f.substr(0,1))},',48,91,'l,k,n',646,'var f',273,'symmetric","','maxsize","minsize','");var j=',171,'(),g;var i=',737,',m=j.scale;','if(f.symmetric){g','=2*','Math.max(','k-i,n+i)}else{g=k+n}f.maxsize=',425,'f.maxsize,','j.bbox.h+j.bbox.d',');f.minsize=',425,'f.minsize,',812,');g',339,815,'Math.min(',811,'g));j=',27,'l);','e.createDelimiter(','j,',659,'("").charCodeAt(0),','g,m);',806,'=(',812,')/2+i}else{g=(',812,')*k/(k+n)}e.positionDelimiter(j,g);',54,'j',56,'j',58,'j},',167,91,'i,f',646,'var g',273,800,'","',515,'","',517,414,517,'==="bold"&&!this.',515,'){g.',515,'=a.VARIANT.BOLD',101,171,'(),j=h.scale;','g.maxsize','=',425,863,',h.bbox.w);g.minsize=',425,'g.minsize,','h.bbox.w);f',339,869,820,863,',f));h=',27,'i);',825,'h,',659,828,'f,j,g.',515,');',54,'h',56,'h',58,'h}});a.mtext',15,'k){k',31,27,'k));k',674,29,'Parent().type==="merror"){e.addText(k,',659,'(""));',69,'e.getHD(k),g=e.getW(k);k.bbox={h:l.h,d:l.d,w:g,lw:0,rw:g}}else{',706,63,33,65,'if(',36,68,36,725,659,'("").',727,'}}',54,'k',56,'k',58,'k}});a.ms','.Augment({toHTML:a.mbase.HTMLautoload});a.','mglyph',922,'mspace',15,'j){j',31,27,'j));var g',273,'height","depth","width','");g',276,'=this',276,';if(',282,'&&!this',276,'){g',276,'=',282,'}var i=',425,'g.height),k=',425,'g.depth),f=',425,'g.width);',735,'j,i,k,f,g',276,58,680,'mphantom',15,'j,g,l){j=',27,'j);if(',36,'0]!=null){','var k=',193,36,'0].toHTML(','j),',961,'l!=null){e.Remeasured(',36,'0].',48,'(j,g,l),j)}else{if(g!=null){e.Remeasured(',36,'0].',167,'(j,g),j)}}j.bbox={w:','k.bbox.w,','h:k.bbox.h,d:k.bbox.d,','lw:0,rw:0};',63,'j.childNodes',21,65,983,'[h].','style.visibility','="hidden"}}',54,'j',56,'j',58,'j},','HTMLstretchH:a.mbase.HTMLstretchH,HTMLstretchV:a.mbase.HTMLstretchV});a.','mpadded',15,'j,h,l){j=',27,961,36,963,'var g','=e.createStack(','j,true);var k','=e.createBox(','g);',193,36,967,'k),k);if(l!=null){e.Remeasured(',36,'0].',48,'(k,h,l),k)}else{if(h!=null){e.Remeasured(',36,'0].',167,'(k,h),k)}}var i',273,932,412,'voffset"),f=0,m=0;if(i.lspace){f','=this.HTMLlength2em(k,i.','lspace)}if(i.voffset){m',1025,'voffset)}',376,'k,f,m);j.bbox={',980,'w:',979,'lw:',820,'0,k.bbox.lw+f),rw:',808,979,322,'+f),H',':Math.max((k.bbox.','H==null?-',143,':k.bbox.H),k.bbox.h+m),D',1041,'D==null?-',143,':k.bbox.D),k.bbox.d-m)};if(i.height','!==""){j.bbox.','h',1025,'height,"h",0)}if(i.depth',1049,'d',1025,'depth,"d",0)}if(i.width',1049,'w',1025,'width,"w",0)}if(j.bbox.H<=j.bbox.h','){delete j.bbox.','H}if(j.bbox.D<=j.bbox.d',1061,'D}e.setStackWidth(g,j.bbox.w)}',54,'j',56,'j',58,'j},HTMLlength2em',91,'j,k,l,',98,'f==null){f=-',143,101,'String(k).match','(/width|height|depth/);var i=(h?j.bbox[h[0].charAt(0)]:(l?j.bbox[l]:null));var g=',425,'k,i);if(l&&',1077,'(/^\\s*[-+]/)){',88,808,'f,j.bbox[l]+g)}else{',88,'g}},',996,'mrow','.Augment({',167,91,'h,f',646,'var g=',171,'();',36,'this.core].',167,'(g,f);',41,'g,true',56,'g',58,'g},',48,91,'i,g,j',646,'var f=',171,'();',36,1099,48,'(f,g,j);',41,'f,true',56,'f',58,'f}});a.mstyle',15,98,36,963,'f=',36,967,'f);',238,36,'0].spanID;',54,'f);this.',270,'(f)}return f},HTMLspanElement:function(){return(this.data[0]!=null?this.data[0].HTMLspanElement():null)},HTMLstretchH:function(g,f){return(this.data[0]!=null?this.data[0].HTMLstretchH(g,f):g)},HTMLstretchV:function(g,f,i){return(this.data[0]!=null?this.data[0].HTMLstretchV(g,f,i):g)}});a','.mfrac',15,'y){y=',27,'y',');var h',1005,'y);var k',1007,'h),j',1007,'h',');this.HTMLmeasureChild(','0,k',1152,'1,j);var f',273,710,'","linethickness","numalign","denomalign","bevelled");var C',264,'(),x=f.',710,';var B=',737,'*C;if(f.bevelled){var A=(x?0.4:0.15);var l',339,350,',',812,')+2*A;var z',1007,'h);',825,'z,47,l);',376,'k,0,(k.bbox.d-k','.bbox.h)/2+B','+A);',376,'z,k.bbox.w-A/2,(z.bbox.d-z',1176,');',376,'j,k.bbox.w+z.bbox.w-A,(j.bbox.d-j',1176,'-A)}else{var g',339,979,'j.bbox.w);var o=e.thickness2em(f.linethickness),s,r,n,m;var w=','e.TeX.min_rule_thickness/this.em',';if(x){n=e.TeX.num1;m=e.TeX.denom1}else{n=(o===0?e.TeX.num3:e.TeX.num2);m=e.TeX.denom2}n*=C;m*=C;if(o===0){s=Math.max((x?7:3)*','e.TeX.rule_thickness',',2*w);r=(n-k.bbox.d',')-(j.bbox.h-m);if(ro){f+=((',350,')-(o-s))/2}var u=',626,791,626,'RULECHAR];if(!u||iF){F=q.bbox.w}if(!I[H]&&F>g){g=F}}}if(g==-',143,'){g=F}if(',1501,'){g=F=B}var w=',1191,',A=',626,'TeX_factor;var h=l[',1463,']||{bbox:',197,172,'J=(h.bbox.ic||0);var p,n,s,r,o,v,E;for(H=0,C=',33,';H0){m+=y;l-=y}}',376,1702,808,'m,',1676,'));',376,1690,808,'l,',1669,'))}}',54,'C',56,'C',58,'C},',996,'mmultiscripts',922,'mtable',922,'math',15,'n,g){var k=this.Get("alttext");if(k){g.setAttribute("aria-label",k)}var h=',222,'n,"nobr",{style:{visibility:"hidden"}});n=',27,'h);var l',1005,'n),i',1007,'l),m;l',232,'=h',246,232,';h',246,232,216,'if(',36,963,'if(e.msieColorBug){if(',282,'){',36,'0].',284,'=',282,';delete ',282,'}if(this',276,'){',36,'0].mathbackground=this',276,';delete this',276,'}}a.mbase.prototype','.displayAlign','=d.config',1772,';a.mbase.prototype','.displayIndent','=d.config',1776,';m=',193,36,967,'i),i)}',376,1606,'j=e.em/e.outerEm;e.em/=j;n.bbox.h','*=j;n.bbox.','d',1787,'w',1787,'lw',1787,'rw*=j;if(m&&m.bbox.width!=null){l',367,'=m.bbox.width;i',367,'="100%"}this.',270,'(n);if(m){',1199,'n,m.bbox.h*j,m.bbox.d*j,0)}if(!this.isMultiline&&this.Get("display")==="block"&&n.bbox.width==null){var o',273,'indentalignfirst','","','indentshiftfirst','","indentalign","indentshift");if(o.',1804,'!==a.INDENTALIGN.','INDENTALIGN){','o.indentalign','=o.',1804,'}if(',1811,'===a.INDENTALIGN.AUTO){',1811,'=this',1772,'}g.style.textAlign=',1811,';if(o.',1806,'!==a.INDENTSHIFT.INDENTSHIFT){','o.indentshift','=o.',1806,'}if(',1825,'==="auto"){',1825,'=this',1776,'}if(',1825,'&&',1811,1809,'CENTER){n.style[{left:"',359,'",right:"',361,'"}[',1811,']]=e.Em(',425,1825,'))}}h.',988,216,88,'n}});a.TeXAtom',15,'g){g=',27,'g);if(',36,963,29,'texClass===a.TEXCLASS.VCENTER){var f',1005,'g',1145,1007,'f);',193,36,967,'h),h);',376,'h,0,',737,'-(',1259,')/2+h.bbox.d)}else{g.bbox=',36,967,'g).bbox}}',54,'g',56,'g',58,'g}});setTimeout(MathJax.Callback(["loadComplete",e,"jax.js"]),0)});d.Browser.Select({MSIE',91,'f){var i=f','.versionAtLeast("','7.0");var h=f',1887,'8.0")&&document.documentMode>7;var g=(document.compatMode==="BackCompat");','e.config.styles[".MathJax .MathJax_HitBox','"]["',284,'-color"]="white";',1891,'"].opacity=0;',1891,'"].filter="alpha(opacity=0)";e',1090,'getMarginScale:e.getMSIEmarginScale,','PaddingWidthBug:true,','msieAccentBug:true,msieColorBug:true,msieRelativeWidthBug:g,msieMarginWidthBug:true,msiePaddingWidthBug:true,',341,':(h&&!g),msieBorderWidthBug:g,',363,':(!h||g),msieVerticalAlignBug:(h&&!g),msiePlaceBoxBug:(h&&!g),msieClipRectBug:!h,msieNegativeSpaceBug:g,negativeSkipBug:true,msieIE6:!i,msieItalicWidthBug',':true,zeroWidthBug:true,FontFaceBug:true,','allowWebFonts',':"eot"})},Firefox',91,'g){var h=false;if(g',1887,'3.5")){var f=String','(document.location',').replace(/[^\\/]*$/,"");if',1914,'.protocol!=="file:"||(d.config.root+"/").substr(0,f',21,')===f){h="otf"}}e',1090,'ffVerticalAlignBug:true,AccentBug:true,',1908,':h})},Safari',91,'j){var h=j',1887,'3.0");var g=j',1887,'3.1");j.isMobile','=(navigator.appVersion.match','(/Mobile/i)!=null);var f',1930,'(/ Android (\\d+)\\.(\\d+)/));var k=(g&&j.isMobile&&(navigator.platform.match(/iPad|iPod|iPhone/)||(f!=null&&(f[1]<2||(f[1]==2&&f[2]<2)))));e',1090,'config:{styles:{".MathJax img, .MathJax nobr, .MathJax a":{"max-width":"5000em","max-height":"5000em"}}},','rfuzz:0.05,AccentBug:true,AdjustSurd:true,','safariContextMenuBug:true,','safariNegativeSpaceBug:true,',739,':!g,safariTextNodeBug:!h,','safariWebFontSerif',':["serif"],',1908,':(g&&!k?(j.isPC?"svg":"otf"):false)});if(k){var i=','MathJax.Hub.config["HTML-CSS','"];if(i){i.availableFonts=[];i.preferredFont=null}else{',1945,'"]={availableFonts:[],preferredFont:null}}}},Chrome',91,'f){e',1090,1936,1908,':"svg",',1938,1941,':[""]})},Opera',91,'f){f.isMini',1930,'("Opera Mini")!=null);e.config.styles[".MathJax .merror"]["vertical-align"]=null;e',1090,'operaHeightBug:true,operaVerticalAlignBug:true,operaFontSizeBug:f',1887,'10.61"),negativeSkipBug',1907,1901,1908,':(f',1887,'10.0")&&!f.isMini?"otf":false)})},Konqueror',91,'f){e',1090,751,':true,noContextMenuBug:true})}});if(d.config.menuSettings.zoom!=="None"){c.Require("[MathJax]/extensions/MathZoom.js")}})(MathJax.Ajax,MathJax.Hub,MathJax.OutputJax["HTML-CSS"]);'] ]); diff --git a/jax/output/NativeMML/config.js b/jax/output/NativeMML/config.js index 2f5b93f19..068d8b59f 100644 --- a/jax/output/NativeMML/config.js +++ b/jax/output/NativeMML/config.js @@ -13,6 +13,6 @@ */ MathJax.Unpack([ - ['MathJax.OutputJax','.','NativeMML','=',0,'({id:"',2,'",version:"1.0.1",directory:',0,'.directory+"/',2,'",extensionDir:',0,'.extensionDir+"/',2,'",config:{scale:100,showMathMenu:true,showMathMenuMSIE:true,styles:{"DIV.MathJax_MathML":{"text-align":"center",margin:".75em 0px"}}}});',0,'.',2,'.Register("jax/mml");(function(b){if(b.isMSIE){var a=document.createElement("object");a.id="mathplayer";a.classid="clsid:32F66A20-7614-11D4-BD11-00104BD3F987";document.getElementsByTagName("head")[0].appendChild(a);','document.namespaces.','add("mjx","http://www.w3.org/1998/Math/MathML");',20,'mjx.doImport("#mathplayer")}})(MathJax.Hub.Browser);',0,'.',2,'.loadComplete("config.js");'] + ['MathJax.OutputJax','.','NativeMML','=',0,'({id:"',2,'",version:"1.0.2",directory:',0,'.directory+"/',2,'",extensionDir:',0,'.extensionDir+"/',2,'",config:{scale:100,showMathMenu:true,showMathMenuMSIE:true,styles:{"DIV.MathJax_MathML":{"text-align":"center",margin:".75em 0px"}}}});',0,'.',2,'.Register("jax/mml");(function(b){if(b.isMSIE){var a=document.createElement("object");a.id="mathplayer";a.classid="clsid:32F66A20-7614-11D4-BD11-00104BD3F987";document.getElementsByTagName("head")[0].appendChild(a);','document.namespaces.','add("mjx","http://www.w3.org/1998/Math/MathML");',20,'mjx.doImport("#mathplayer")}})(MathJax.Hub.Browser);',0,'.',2,'.loadComplete("config.js");'] ]); diff --git a/jax/output/NativeMML/jax.js b/jax/output/NativeMML/jax.js index 43aef4408..db6e343f4 100644 --- a/jax/output/NativeMML/jax.js +++ b/jax/output/NativeMML/jax.js @@ -13,6 +13,6 @@ */ MathJax.Unpack([ - ['(','function','(b,e,d','){var ','a,c=e.Browser.isMSIE;','b.Augment({','LEFTBUTTON',':(c?1:0),MENUKEY:"altKey",','noContextMenuBug',':e.Browser.isKonequeror,msieQuirks:(c&&!(document.compatMode==="BackCompat")),','config:{styles',':{}},settings:','e.config.menuSettings',',Startup:',1,'(){','return ','MathJax.','Ajax.Styles(','this.config.','styles)},Config:',1,'(){this.SUPER(arguments).Config','.call(this',');if(','this.settings.scale','){',19,'scale=',25,'}},Translate:',1,'(g){if(!g','.parentNode','){return','}var k=g','.previousSibling',';if(k&&String(k.className).match(/^MathJax(_MathML|_Display)?$/)){k',33,'.removeChild(','k)}var j=g.',17,'elementJax.root;var i=(j.Get("display")==="block"?"div":"span");var h=document.','createElement','(i),f=h;h.className="','MathJax_MathML','";h.style.fontSize=',19,'scale+"%";if(c){f=','MathJax.HTML.addElement(','h,"span",{className:"MathJax_MathContainer",','style:{display:"inline-block",','position:"relative','"}})}j.','toNativeMML(','f);g',33,'.insertBefore(h,g);if(c){if(',19,'showMathMenuMSIE){this.MSIEoverlay(h)}}else{j=h','.firstChild',';j.','oncontextmenu','=this.','ContextMenu',';j.','onmouseover',63,'Mouseover',';j.','onmousedown',63,'Mousedown;j.onclick',63,'Click',';j.','ondblclick',63,'DblClick','}},Remove:',1,'(f',3,'g=f.SourceElement();if(!g',34,'}g=g',36,';if(!g',34,'}if(g.className.match(/',45,'/)){g',33,39,'g)}},MMLnamespace:"http://www.w3.org/1998/Math/MathML",MSIEoverlay:',1,'(m',3,'l=m',60,';','m.style.position','="absolute";var n','=m.scrollHeight',',h=m.offsetWidth;var j=',49,'m,"img",{src:"about:blank",style:{','width:0,height:','n+"px"}});var f',103,'-n;m',39,'j);',101,'="";var k,i,g=(m',33,'.nodeName.toLowerCase()==="','div");if(g&&this.quirks){k=-n;i=Math.floor(-h/2)}else{k=f-n,i=-h}',49,'m,"span",{',51,107,'0,',52,'"}},[["span",{',51,'position:"absolute",left:i+"px",top:k+"px",width:l.offsetWidth+"px",height:n+"px",cursor:"pointer","background-color":"white",filter:"alpha(opacity=0)"},',70,':this.MSIEevent',',',62,128,',onclick',128,',onmousemove',128,',',76,128,',',66,128,',onmouseout',128,'}]])},MSIEmath:',1,'(f',3,'g=f',33,36,60,';return(g',116,'span"?g',60,':g)},MSIEevent:',1,'(){var g=b.MSIEmath(this);var f','=window.event',';var h=b["MSIE"+f.type];if(h&&h.call(b,f,g,this)){','return false','}g.fireEvent("on"+f.type,f);',161,'},MSIEmousedown:',1,'(h,g,f){if(','h[this.MENUKEY]&&h.button===this.',6,'&&this','.settings.context','!=="','MathJax"){this.trapUp=this.trapClick=true;this.ContextMenu.call(f,h,true);return true}','if(','this.MSIEzoomKeys','&&',174,'(h)){this.trapUp=true;',16,'true}',161,'},MSIEcontextmenu:',1,166,'this',170,'==="',172,161,'},',64,':',1,'(i,j','){if(b.config.showMathMenu','&&(b',170,'==="MathJax','"||j)){if(b.safariContextMenuBug','){setTimeout("','window.getSelection().','empty()",0)}var ','g=',17,'Menu;if(g){if(','document.selection',199,205,'.',201,'f=(c?this',33,33,'.nextSibling',':this',33,213,');g.jax=e.getJaxFor(f);g.menu.items[1].menu.items[1].name=(','g.jax.inputJax.id','==="MathML"?"Original":',218,');','delete ','b.trapClick;',222,'b.trapUp;',16,'g.menu.Post(i)}else{if(!','d.loadingMathMenu','){',228,'=true;if(!i){i',159,'}var h={pageX:i.pageX,pageY:i.pageY,clientX:i.clientX,clientY:i.clientY};',17,'Callback.Queue(','d.Require("[MathJax]/extensions/','MathMenu.js"),',1,'(){',222,228,'},[this,arguments.callee,h,j])}if(!i){i',159,'}if(','i.preventDefault','){',245,'()}if(','i.stopPropagation','){',249,'()}i.cancelBubble=true;i.returnValue=false;',161,'}}},Mousedown:',1,'(f',194,'){if(!f){f',159,'}if(b',170,197,'"){if(!b.',8,'||f.button!==2',34,'}}else{if(!f[b.MENUKEY]||f.button!==b.',6,34,'}}',16,'b.',64,23,',f,true)}},',68,':',1,'(f){b.HandleEvent(f,"',68,'",this)},',74,':',1,279,74,281,78,':',1,279,78,281,'HandleEvent:',1,'(h,f,g){},NAMEDSPACE:{negativeveryverythinmathspace:"-.0556em",negativeverythinmathspace:"-.1111em",negativethinmathspace:"-.1667em",negativemediummathspace:"-.2222em",negativethickmathspace:"-.2778em",negativeverythickmathspace:"-.3333em",negativeveryverythickmathspace:"-.3889em"}});','MathJax.Hub.Register.StartupHook("','mml Jax Ready",',1,'(){a=',17,'ElementJax.mml;a.mbase','.Augment({toNativeMML:function(','k',3,'h=','this.NativeMMLelement','(this.type);','this.NativeMMLattributes(h);','for(var j=','0',',g=this.data.length;j