diff --git a/unpacked/extensions/HTML-CSS/handle-floats.js b/unpacked/extensions/HTML-CSS/handle-floats.js index b919a0540..beba99a83 100644 --- a/unpacked/extensions/HTML-CSS/handle-floats.js +++ b/unpacked/extensions/HTML-CSS/handle-floats.js @@ -41,42 +41,9 @@ MathJax.Extension["HTML-CSS/handle-floats"] = { }; // -// Make the display DIV be a table-cell -// Use padding to get the separation, since table cells don't do margin -// Make the width large (it will shrink to fit the remaining room) +// This file is now obsolete, since the HTML-CSS output already handles +// floating elements properly. // -MathJax.Hub.Config({ - "HTML-CSS": { - styles: { - ".MathJax_Display": { - display: "table-cell", - padding: "1em 0 ! important", - width: (MathJax.Hub.Browser.isMSIE && (document.documentMode||0) < 8 ? "100%" : "1000em") - } - } - } -}); - -// -// Two consecutive equations would end up side-by-side, so force a separator -// (Needed by IE8, IE9, and Firefox, at least). -// -MathJax.Hub.Register.StartupHook("HTML-CSS Jax Ready",function () { - var HTMLCSS = MathJax.OutputJax["HTML-CSS"], - TRANSLATE = HTMLCSS.Translate; - HTMLCSS.Augment({ - Translate: function (script,state) { - TRANSLATE.apply(this,arguments); - if (script.MathJax.elementJax.HTMLCSS.display) { - var next = script.nextSibling; - if (!next || next.className !== "MathJax_MSIE_Separator") { - var span = HTMLCSS.Element("span",{className:"MathJax_MSIE_Separator"}); - script.parentNode.insertBefore(span,next); - } - } - } - }); - MathJax.Hub.Startup.signal.Post("HTML-CSS handle-floats Ready"); -}); +MathJax.Hub.Startup.signal.Post("HTML-CSS handle-floats Ready"); MathJax.Ajax.loadComplete("[MathJax]/extensions/HTML-CSS/handle-floats.js"); diff --git a/unpacked/jax/output/HTML-CSS/jax.js b/unpacked/jax/output/HTML-CSS/jax.js index ec9ac237f..0e8692c7a 100644 --- a/unpacked/jax/output/HTML-CSS/jax.js +++ b/unpacked/jax/output/HTML-CSS/jax.js @@ -241,6 +241,8 @@ var EVENT, TOUCH, HOVER; // filled in later + var oldIE = MathJax.Hub.Browser.isMSIE && (document.documentMode||0) < 8; + HTMLCSS.Augment({ config: { styles: { @@ -278,6 +280,11 @@ "min-width": 0, "min-height": 0, width: "100%" }, + + ".MathJax.MathJax_FullWidth": { + display: "table-cell!important", + width: "10000em!important" + }, ".MathJax img, .MathJax nobr, .MathJax a": { border: 0, padding: 0, margin: 0, @@ -331,6 +338,12 @@ width:"1px", height:"60em", "min-height": 0, "max-height":"none" }, + ".MathJax_LineBox": { + display: (oldIE ? "inline-block" : "table-cell") + "!important", + width: (oldIE ? "100%" : "10000em") + "!important", + "min-width":0, "max-width":"none", + padding:0, border:0, margin:0 + }, ".MathJax .MathJax_HitBox": { cursor: "text", @@ -340,7 +353,7 @@ ".MathJax .MathJax_HitBox *": { filter: "none", opacity:1, background:"transparent" // for IE }, - + "#MathJax_Tooltip": { position: "absolute", left: 0, top: 0, width: "auto", height: "auto", @@ -482,8 +495,7 @@ ); // Used in preTranslate to get linebreak width - this.linebreakSpan = this.Element("span",null, - [["hr",{style: {width:"100%", size:1, padding:0, border:0, margin:0}}]]); + this.linebreakSpan = MathJax.HTML.Element("span",{className:"MathJax_LineBox"}); // Set up styles and preload web fonts return AJAX.Styles(this.config.styles,["InitializeHTML",this]); @@ -539,7 +551,7 @@ document.body.appendChild(this.linebreakSpan); this.defaultEx = this.EmExSpan.firstChild.offsetHeight/60; this.defaultEm = this.EmExSpan.lastChild.firstChild.offsetHeight/60; - this.defaultWidth = this.linebreakSpan.firstChild.offsetWidth; + this.defaultWidth = this.linebreakSpan.offsetWidth; document.body.removeChild(this.linebreakSpan); document.body.removeChild(this.EmExSpan); }, @@ -609,7 +621,7 @@ jax = script.MathJax.elementJax; if (!jax) continue; ex = test.firstChild.offsetHeight/60; em = test.lastChild.firstChild.offsetHeight/60; - cwidth = div.previousSibling.firstChild.offsetWidth; + cwidth = Math.max(0,div.previousSibling.offsetWidth - 2); if (relwidth) {maxwidth = cwidth} if (ex === 0 || ex === "NaN") { // can't read width, so move to hidden div for processing @@ -2951,7 +2963,8 @@ if (math && math.bbox.width != null) { span.style.minWidth = (math.bbox.minWidth || span.style.width); span.style.width = math.bbox.width; - box.style.width = stack.style.width = SPAN.style.width = "100%"; + box.style.width = stack.style.width = "100%"; + SPAN.className += " MathJax_FullWidth"; } // // Add color (if any)