From 2c5ecf630336caa27c8c2c2bbabdcf442ac4ae61 Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Thu, 6 Feb 2014 11:54:26 -0500 Subject: [PATCH 1/2] Make sure measuring spans are removed from all elements (including the ones that were changed). Resolves second half of issue #576. --- unpacked/extensions/MatchWebFonts.js | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/unpacked/extensions/MatchWebFonts.js b/unpacked/extensions/MatchWebFonts.js index a6ae643fc..5872faa53 100644 --- a/unpacked/extensions/MatchWebFonts.js +++ b/unpacked/extensions/MatchWebFonts.js @@ -28,7 +28,7 @@ */ (function (HUB,AJAX) { - var VERSION = "2.3"; + var VERSION = "2.3.1"; var CONFIG = MathJax.Hub.CombineConfig("MatchWebFonts",{ matchFor: { @@ -98,9 +98,10 @@ // // Remove markers // + scripts = scripts.concat(size); // some scripts have been moved to the size array for (i = 0, m = scripts.length; i < m; i++) { script = scripts[i]; - if (script.parentNode && script.MathJax.elementJax) { + if (script && script.parentNode && script.MathJax.elementJax) { script.parentNode.removeChild(script.previousSibling); } } @@ -164,6 +165,7 @@ // // Remove markers // + scripts = scripts.concat(size); // some scripts have been moved to the size array for (i = 0, m = scripts.length; i < m; i++) { script = scripts[i]; if (script.parentNode && script.MathJax.elementJax) { @@ -303,7 +305,7 @@ }); }); - HUB.Startup.signal.Post("MathWebFont Extension Ready"); + HUB.Startup.signal.Post("MatchWebFonts Extension Ready"); AJAX.loadComplete("[MathJax]/extensions/MatchWebFonts.js"); })(MathJax.Hub,MathJax.Ajax); From 2de09d8121473a038154beb47f48555956804eed Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Fri, 21 Feb 2014 16:21:09 -0500 Subject: [PATCH 2/2] Add a check if defaultEm is zero, and retry after a delay if it is. WebKit seems to have this happen sometimes when web fonts are used for the page (though hard to reproduce). Resolves issue #576. --- unpacked/jax/output/HTML-CSS/jax.js | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/unpacked/jax/output/HTML-CSS/jax.js b/unpacked/jax/output/HTML-CSS/jax.js index 6ece947af..f89a22013 100644 --- a/unpacked/jax/output/HTML-CSS/jax.js +++ b/unpacked/jax/output/HTML-CSS/jax.js @@ -450,6 +450,23 @@ // InitializeHTML: function () { this.PreloadWebFonts(); + this.getDefaultExEm(); + // + // If the defaultEm size is zero, it might be that a web font hasn't + // arrived yet, so try to wait for it, but don't wait too long. + // + if (this.defaultEm) return; + var ready = MathJax.Callback(); + AJAX.timer.start(AJAX,function (check) { + if (check.time(ready)) {HUB.signal.Post("HTML-CSS Jax - no default em size"); return} + HTMLCSS.getDefaultExEm(); + if (HTMLCSS.defaultEm) {ready()} else {setTimeout(check,check.delay)} + },this.defaultEmDelay,this.defaultEmTimeout); + return ready; + }, + defaultEmDelay: 100, // initial delay when checking for defaultEm + defaultEmTimeout: 1000, // when to stop looking for defaultEm + getDefaultExEm: function () { // // Get the default sizes (need styles in place to do this) //