diff --git a/unpacked/jax/output/HTML-CSS/jax.js b/unpacked/jax/output/HTML-CSS/jax.js
index d3ad84c68..089d9d501 100644
--- a/unpacked/jax/output/HTML-CSS/jax.js
+++ b/unpacked/jax/output/HTML-CSS/jax.js
@@ -38,24 +38,6 @@
var FONTTEST = MathJax.Object.Subclass({
timeout: (isMobile? 15:8)*1000, // timeout for loading web fonts
-
- FontInfo: {
- STIX: {family: "STIXSizeOneSym", testString: "() {} []"},
- TeX: {family: "MathJax_Size1", testString: "() {} []"},
- //
- // These are the new web fonts. The strange use of single quotes is because the
- // testing routine adds quotes at the beginning and ending, so for this list of
- // names, we need to take those into account. We need a list because the names are
- // not handled consistently between Mac and Windows in the font data, as they are
- // in the TeX and original STIX fonts (sigh).
- //
- "STIX-Web": {family: "STIX MathJax Size1','STIXMathJax_Size1-Regular", testString: "() {} []"},
- "Asana-Math": {family: "Asana MathJax Size1','AsanaMathJax_Size1-Regular'", testString: "() {} []"},
- "Gyre-Pagella": {family: "Gyre Pagella MathJax Size1','GyrePagellaMathJax_Size1-Regular", testString: "() {} []"},
- "Gyre-Termes": {family: "Gyre Termes MathJax Size1','GyreTermesMathJax_Size1-Regular", testString: "() {} []"},
- "Latin-Modern": {family: "Latin Modern MathJax Size1','LatinModernMathJax_Size1-Regular", testString: "() {} []"},
- "Neo-Euler": {family: "Neo Euler MathJax Size1','NeoEulerMathJax_Size1-Regular", testString: "() {} []"}
- },
comparisonFont: ["sans-serif","monospace","script","Times","Courier","Arial","Helvetica"],
testSize: ["40px","50px","60px","30px","20px"],
@@ -88,7 +70,12 @@
return null;
},
- testCollection: function (name) {return this.testFont(this.FontInfo[name])},
+ testCollection: function (name) {
+ var font = {testString: "() {} []"};
+ font.family = {TeX:"MathJax_Size1", STIX:"STIXSizeOneSym"}[name] ||
+ name.replace(/-(Math)?/,"")+"MathJax_Size1";
+ return this.testFont(font);
+ },
testFont: function (font) {
if (font.isWebFont && HTMLCSS.FontFaceBug) {
@@ -97,12 +84,27 @@
this.div.style.fontWeight = (font.weight||"normal");
this.div.style.fontStyle = (font.style||"normal");
}
+ //
+ // Hack: Fix up web font names for local access.
+ // (The names for Windows and Mac are different, unlike in the STIX and
+ // TeX fonts, so we have to work out a list of names here.)
+ //
+ // This should be removed when the web fonts are fixed. FIXME
+ //
+ var family = font.familyFixed || font.family;
+ if (!family.match(/$(STIX|MathJax)|'/)) {
+ family = family.replace(/_/g," ").replace(/([a-z])([A-Z])/g,"$1 $2") + "','" + family + "-";
+ if (font.weight) {family += "Bold"}; if (font.style) {family += "Italic"}
+ if (!font.weight && !font.style) {family += "Regular"}
+ font.familyFixed = family = "'"+family+"'"
+ }
+
var W = this.getComparisonWidths(font.testString,font.noStyleChar);
var found = null;
if (W) {
- this.div.style.fontFamily = "'"+font.family+"',"+this.comparisonFont[0];
+ this.div.style.fontFamily = family+","+this.comparisonFont[0];
if (this.div.offsetWidth == W[0]) {
- this.div.style.fontFamily = "'"+font.family+"',"+this.comparisonFont[W[2]];
+ this.div.style.fontFamily = family+","+this.comparisonFont[W[2]];
if (this.div.offsetWidth == W[1]) {found = false}
}
if (found === null && (this.div.offsetWidth != W[3] || this.div.offsetHeight != W[4])) {
@@ -763,8 +765,14 @@
initHTML: function (math,span) {},
initFont: function (name) {
var FONTS = HTMLCSS.FONTDATA.FONTS, AVAIL = HTMLCSS.config.availableFonts;
- if (AVAIL && AVAIL.length && HTMLCSS.Font.testFont(FONTS[name]))
- {FONTS[name].available = true; return null}
+ if (AVAIL && AVAIL.length && HTMLCSS.Font.testFont(FONTS[name])) {
+ FONTS[name].available = true;
+ if (FONTS[name].familyFixed) {
+ FONTS[name].family = FONTS[name].familyFixed;
+ delete FONTS[name].familyFixed;
+ }
+ return null;
+ }
if (!this.allowWebFonts) {return null}
FONTS[name].isWebFont = true;
if (HTMLCSS.FontFaceBug) {