From 39527d2a349ebfdc1c846fbe6c697f93a5984782 Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Wed, 8 Jan 2014 13:32:26 -0500 Subject: [PATCH 1/6] Fix font names in font-test data so that local versions of the web fonts can be detected. This still has to be tested on Windows and Linux. Issue #711. --- unpacked/jax/output/HTML-CSS/jax.js | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/unpacked/jax/output/HTML-CSS/jax.js b/unpacked/jax/output/HTML-CSS/jax.js index 6ece947af..ac2098515 100644 --- a/unpacked/jax/output/HTML-CSS/jax.js +++ b/unpacked/jax/output/HTML-CSS/jax.js @@ -42,12 +42,12 @@ FontInfo: { STIX: {family: "STIXSizeOneSym", testString: "() {} []"}, TeX: {family: "MathJax_Size1", testString: "() {} []"}, - "STIX-Web": {family: "STIXWeb_Size1", testString: "() {} []"}, - "Asana-Math": {family: "AsanaMath_Size1", testString: "() {} []"}, - "Gyre-Pagella": {family: "GyrePagella_Size1", testString: "() {} []"}, - "Gyre-Termes": {family: "GyreTermes_Size1", testString: "() {} []"}, - "Latin-Modern": {family: "LatinModern_Size1", testString: "() {} []"}, - "Neo-Euler": {family: "NeoEuler_Size1", testString: "() {} []"} + "STIX-Web": {family: "STIXMathJax_Size1-Regular", testString: "() {} []"}, + "Asana-Math": {family: "AsanaMathJax_Size1-Regular", testString: "() {} []"}, + "Gyre-Pagella": {family: "GyrePagellaMathJax_Size1-Regular", testString: "() {} []"}, + "Gyre-Termes": {family: "GyreTermesMathJax_Size1-Regular", testString: "() {} []"}, + "Latin-Modern": {family: "LatinModernMathJax_Size1-Regular", testString: "() {} []"}, + "Neo-Euler": {family: "NeoEulerMathJax_Size1-Regular'", testString: "() {} []"} }, comparisonFont: ["sans-serif","monospace","script","Times","Courier","Arial","Helvetica"], testSize: ["40px","50px","60px","30px","20px"], From b5454061ccf3150201cc2bc34f77f04f69730542 Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Fri, 10 Jan 2014 14:47:00 -0500 Subject: [PATCH 2/6] Identify IE11 properly for now (more needs to be done with the browser detection code in teh future). Issue #658. --- unpacked/MathJax.js | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/unpacked/MathJax.js b/unpacked/MathJax.js index e101e0a78..92335d597 100644 --- a/unpacked/MathJax.js +++ b/unpacked/MathJax.js @@ -1580,7 +1580,7 @@ MathJax.Message = { } if (!this.div) { var frame = document.body; - if (MathJax.Hub.Browser.isMSIE) { + if (MathJax.Hub.Browser.isMSIE && window.attachEvent) { frame = this.frame = this.addDiv(document.body); frame.removeAttribute("id"); frame.style.position = "absolute"; frame.style.border = frame.style.margin = frame.style.padding = "0px"; @@ -2961,17 +2961,17 @@ MathJax.Hub.Startup = { } BASE.Ajax.config = CONFIG; + var AGENT = navigator.userAgent; var BROWSERS = { isMac: (navigator.platform.substr(0,3) === "Mac"), isPC: (navigator.platform.substr(0,3) === "Win"), - isMSIE: (window.ActiveXObject != null && window.clipboardData != null), - isFirefox: (navigator.userAgent.match(/Gecko/) != null && - navigator.userAgent.match(/KHTML/) == null), - isSafari: (navigator.userAgent.match(/ (Apple)?WebKit\//) != null && + isMSIE: ("ActiveXObject" in window && "clipboardData" in window), + isFirefox: (AGENT.match(/Gecko\//) && !AGENT.match(/like Gecko/)), + isSafari: (AGENT.match(/ (Apple)?WebKit\//) != null && (!window.chrome || window.chrome.loadTimes == null)), isChrome: (window.chrome != null && window.chrome.loadTimes != null), isOpera: (window.opera != null && window.opera.version != null), - isKonqueror: (window.hasOwnProperty && window.hasOwnProperty("konqueror") && navigator.vendor == "KDE"), + isKonqueror: ("konqueror" in window && navigator.vendor == "KDE"), versionAtLeast: function (v) { var bv = (this.version).split('.'); v = (new String(v)).split('.'); for (var i = 0, m = v.length; i < m; i++) @@ -2985,7 +2985,7 @@ MathJax.Hub.Startup = { } }; - var AGENT = navigator.userAgent + var xAGENT = AGENT .replace(/^Mozilla\/(\d+\.)+\d+ /,"") // remove initial Mozilla, which is never right .replace(/[a-z][-a-z0-9._: ]+\/\d+[^ ]*-[^ ]*\.([a-z][a-z])?\d+ /i,"") // remove linux version .replace(/Gentoo |Ubuntu\/(\d+\.)*\d+ (\([^)]*\) )?/,""); // special case for these @@ -2997,11 +2997,11 @@ MathJax.Hub.Startup = { if (browser === "Mac" || browser === "PC") continue; HUB.Browser = HUB.Insert(new String(browser),BROWSERS); var VERSION = new RegExp( - ".*(Version)/((?:\\d+\\.)+\\d+)|" + // for Safari and Opera10 + ".*(Version/| Trident/.*; rv:)((?:\\d+\\.)+\\d+)|" + // for Safari and Opera10 ".*("+browser+")"+(browser == "MSIE" ? " " : "/")+"((?:\\d+\\.)*\\d+)|"+ // for one of the main browser "(?:^|\\(| )([a-z][-a-z0-9._: ]+|(?:Apple)?WebKit)/((?:\\d+\\.)+\\d+)"); // for unrecognized browser - var MATCH = VERSION.exec(AGENT) || ["","","","unknown","0.0"]; - HUB.Browser.name = (MATCH[1] == "Version" ? browser : (MATCH[3] || MATCH[5])); + var MATCH = VERSION.exec(xAGENT) || ["","","","unknown","0.0"]; + HUB.Browser.name = (MATCH[1] != "" ? browser : (MATCH[3] || MATCH[5])); HUB.Browser.version = MATCH[2] || MATCH[4] || MATCH[6]; break; } @@ -3025,9 +3025,9 @@ MathJax.Hub.Startup = { browser.noContextMenu = browser.isMobile; }, Firefox: function (browser) { - if ((browser.version === "0.0" || navigator.userAgent.match(/Firefox/) == null) && + if ((browser.version === "0.0" || AGENT.match(/Firefox/) == null) && navigator.product === "Gecko") { - var rv = navigator.userAgent.match(/[\/ ]rv:(\d+\.\d.*?)[\) ]/); + var rv = AGENT.match(/[\/ ]rv:(\d+\.\d.*?)[\) ]/); if (rv) {browser.version = rv[1]} else { var date = (navigator.buildID||navigator.productSub||"0").substr(0,8); @@ -3044,8 +3044,8 @@ MathJax.Hub.Startup = { } } browser.isMobile = (navigator.appVersion.match(/Android/i) != null || - navigator.userAgent.match(/ Fennec\//) != null || - navigator.userAgent.match(/Mobile/) != null); + AGENT.match(/ Fennec\//) != null || + AGENT.match(/Mobile/) != null); }, Opera: function (browser) {browser.version = opera.version()}, MSIE: function (browser) { From b9685dd5076b192b6cbf6b2a3c175c0545657dd1 Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Mon, 13 Jan 2014 11:50:49 -0500 Subject: [PATCH 3/6] Fix incorrect min-width for mtd elements. Resolves issue #699. --- unpacked/jax/output/NativeMML/jax.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/unpacked/jax/output/NativeMML/jax.js b/unpacked/jax/output/NativeMML/jax.js index 7e38c035e..ef21711ae 100644 --- a/unpacked/jax/output/NativeMML/jax.js +++ b/unpacked/jax/output/NativeMML/jax.js @@ -974,8 +974,9 @@ tag = nMML.adjustWidths[i]; var style = tag.getAttribute("style") || ""; if (!style.match(/(^|;)\s*min-width:/)) { - mtd.push(tag.scrollWidth); - var width = (tag.scrollWidth/nMML.ex).toFixed(3)+"ex"; + var width = tag.firstChild.scrollWidth; + mtd.push(width); + width = (width/nMML.ex).toFixed(3)+"ex"; style = style.replace(/;?\s*$/,"; "); tag.setAttribute("style",style+"min-width:"+width); } From 86ac34e91b86bec2e70c5d98aeb53f072262150a Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Mon, 13 Jan 2014 11:52:39 -0500 Subject: [PATCH 4/6] Fix new web fonts bold-italic variant (issue #716) and STIX-Web lower-case Greek in sans-serif and sans-serif-italic variants (issue #697). --- .../jax/output/HTML-CSS/fonts/Asana-Math/fontdata.js | 2 +- .../jax/output/HTML-CSS/fonts/Gyre-Pagella/fontdata.js | 2 +- .../jax/output/HTML-CSS/fonts/Gyre-Termes/fontdata.js | 2 +- .../jax/output/HTML-CSS/fonts/Latin-Modern/fontdata.js | 2 +- unpacked/jax/output/HTML-CSS/fonts/Neo-Euler/fontdata.js | 2 +- unpacked/jax/output/HTML-CSS/fonts/STIX-Web/fontdata.js | 9 ++++++--- unpacked/jax/output/HTML-CSS/fonts/STIX/fontdata.js | 5 +++-- unpacked/jax/output/SVG/fonts/Asana-Math/fontdata.js | 2 +- unpacked/jax/output/SVG/fonts/Gyre-Pagella/fontdata.js | 2 +- unpacked/jax/output/SVG/fonts/Gyre-Termes/fontdata.js | 2 +- unpacked/jax/output/SVG/fonts/Latin-Modern/fontdata.js | 2 +- unpacked/jax/output/SVG/fonts/Neo-Euler/fontdata.js | 2 +- unpacked/jax/output/SVG/fonts/STIX-Web/fontdata.js | 9 ++++++--- 13 files changed, 25 insertions(+), 18 deletions(-) diff --git a/unpacked/jax/output/HTML-CSS/fonts/Asana-Math/fontdata.js b/unpacked/jax/output/HTML-CSS/fonts/Asana-Math/fontdata.js index a058e2037..4b56275d8 100644 --- a/unpacked/jax/output/HTML-CSS/fonts/Asana-Math/fontdata.js +++ b/unpacked/jax/output/HTML-CSS/fonts/Asana-Math/fontdata.js @@ -91,7 +91,7 @@ "bold": {fonts: [MAIN,NORMAL,MONOSPACE,LATIN,ALPHABETS,MARKS,ARROWS,OPERATORS,SYMBOLS,SHAPES,MISC,VARIANTS,NONUNICODE,SIZE1], bold:true , offsetA: 0x1D400, offsetG: 0x1D6A8, offsetN: 0x1D7CE}, "italic": {fonts: [MAIN,NORMAL,MONOSPACE,LATIN,ALPHABETS,MARKS,ARROWS,OPERATORS,SYMBOLS,SHAPES,MISC,VARIANTS,NONUNICODE,SIZE1], italic:true, offsetA: 0x1D434, offsetG: 0x1D6E2, remap: {0x1D455: 0x210E}}, - "bolditalic": {fonts: [MAIN,NORMAL,MONOSPACE,LATIN,ALPHABETS,MARKS,ARROWS,OPERATORS,SYMBOLS,SHAPES,MISC,VARIANTS,NONUNICODE,SIZE1], bold: true, italic:true, offsetA: 0x1D468, offsetG: 0x1D71C}, + "bold-italic": {fonts: [MAIN,NORMAL,MONOSPACE,LATIN,ALPHABETS,MARKS,ARROWS,OPERATORS,SYMBOLS,SHAPES,MISC,VARIANTS,NONUNICODE,SIZE1], bold: true, italic:true, offsetA: 0x1D468, offsetG: 0x1D71C}, "double-struck": { fonts: [DOUBLESTRUCK], offsetA: 0x1D538, diff --git a/unpacked/jax/output/HTML-CSS/fonts/Gyre-Pagella/fontdata.js b/unpacked/jax/output/HTML-CSS/fonts/Gyre-Pagella/fontdata.js index cb79d17ce..a713228bb 100644 --- a/unpacked/jax/output/HTML-CSS/fonts/Gyre-Pagella/fontdata.js +++ b/unpacked/jax/output/HTML-CSS/fonts/Gyre-Pagella/fontdata.js @@ -91,7 +91,7 @@ "bold": {fonts: [MAIN,NORMAL,MONOSPACE,LATIN,ALPHABETS,MARKS,ARROWS,OPERATORS,SYMBOLS,SHAPES,MISC,VARIANTS,NONUNICODE,SIZE1], bold:true , offsetA: 0x1D400, offsetG: 0x1D6A8, offsetN: 0x1D7CE}, "italic": {fonts: [MAIN,NORMAL,MONOSPACE,LATIN,ALPHABETS,MARKS,ARROWS,OPERATORS,SYMBOLS,SHAPES,MISC,VARIANTS,NONUNICODE,SIZE1], italic:true, offsetA: 0x1D434, offsetG: 0x1D6E2, remap: {0x1D455: 0x210E}}, - "bolditalic": {fonts: [MAIN,NORMAL,MONOSPACE,LATIN,ALPHABETS,MARKS,ARROWS,OPERATORS,SYMBOLS,SHAPES,MISC,VARIANTS,NONUNICODE,SIZE1], bold: true, italic:true, offsetA: 0x1D468, offsetG: 0x1D71C}, + "bold-italic": {fonts: [MAIN,NORMAL,MONOSPACE,LATIN,ALPHABETS,MARKS,ARROWS,OPERATORS,SYMBOLS,SHAPES,MISC,VARIANTS,NONUNICODE,SIZE1], bold: true, italic:true, offsetA: 0x1D468, offsetG: 0x1D71C}, "double-struck": { fonts: [DOUBLESTRUCK], offsetA: 0x1D538, diff --git a/unpacked/jax/output/HTML-CSS/fonts/Gyre-Termes/fontdata.js b/unpacked/jax/output/HTML-CSS/fonts/Gyre-Termes/fontdata.js index 97377d969..0ae5eded4 100644 --- a/unpacked/jax/output/HTML-CSS/fonts/Gyre-Termes/fontdata.js +++ b/unpacked/jax/output/HTML-CSS/fonts/Gyre-Termes/fontdata.js @@ -91,7 +91,7 @@ "bold": {fonts: [MAIN,NORMAL,MONOSPACE,LATIN,ALPHABETS,MARKS,ARROWS,OPERATORS,SYMBOLS,SHAPES,MISC,VARIANTS,NONUNICODE,SIZE1], bold:true , offsetA: 0x1D400, offsetG: 0x1D6A8, offsetN: 0x1D7CE}, "italic": {fonts: [MAIN,NORMAL,MONOSPACE,LATIN,ALPHABETS,MARKS,ARROWS,OPERATORS,SYMBOLS,SHAPES,MISC,VARIANTS,NONUNICODE,SIZE1], italic:true, offsetA: 0x1D434, offsetG: 0x1D6E2, remap: {0x1D455: 0x210E}}, - "bolditalic": {fonts: [MAIN,NORMAL,MONOSPACE,LATIN,ALPHABETS,MARKS,ARROWS,OPERATORS,SYMBOLS,SHAPES,MISC,VARIANTS,NONUNICODE,SIZE1], bold: true, italic:true, offsetA: 0x1D468, offsetG: 0x1D71C}, + "bold-italic": {fonts: [MAIN,NORMAL,MONOSPACE,LATIN,ALPHABETS,MARKS,ARROWS,OPERATORS,SYMBOLS,SHAPES,MISC,VARIANTS,NONUNICODE,SIZE1], bold: true, italic:true, offsetA: 0x1D468, offsetG: 0x1D71C}, "double-struck": { fonts: [DOUBLESTRUCK], offsetA: 0x1D538, diff --git a/unpacked/jax/output/HTML-CSS/fonts/Latin-Modern/fontdata.js b/unpacked/jax/output/HTML-CSS/fonts/Latin-Modern/fontdata.js index e291ea1e2..90485328e 100644 --- a/unpacked/jax/output/HTML-CSS/fonts/Latin-Modern/fontdata.js +++ b/unpacked/jax/output/HTML-CSS/fonts/Latin-Modern/fontdata.js @@ -93,7 +93,7 @@ "bold": {fonts: [MAIN,NORMAL,MONOSPACE,LATIN,ALPHABETS,MARKS,ARROWS,OPERATORS,SYMBOLS,SHAPES,MISC,VARIANTS,NONUNICODE,SIZE1], bold:true , offsetA: 0x1D400, offsetG: 0x1D6A8, offsetN: 0x1D7CE}, "italic": {fonts: [MAIN,NORMAL,MONOSPACE,LATIN,ALPHABETS,MARKS,ARROWS,OPERATORS,SYMBOLS,SHAPES,MISC,VARIANTS,NONUNICODE,SIZE1], italic:true, offsetA: 0x1D434, offsetG: 0x1D6E2, remap: {0x1D455: 0x210E}}, - "bolditalic": {fonts: [MAIN,NORMAL,MONOSPACE,LATIN,ALPHABETS,MARKS,ARROWS,OPERATORS,SYMBOLS,SHAPES,MISC,VARIANTS,NONUNICODE,SIZE1], bold: true, italic:true, offsetA: 0x1D468, offsetG: 0x1D71C}, + "bold-italic": {fonts: [MAIN,NORMAL,MONOSPACE,LATIN,ALPHABETS,MARKS,ARROWS,OPERATORS,SYMBOLS,SHAPES,MISC,VARIANTS,NONUNICODE,SIZE1], bold: true, italic:true, offsetA: 0x1D468, offsetG: 0x1D71C}, "double-struck": { fonts: [DOUBLESTRUCK], offsetA: 0x1D538, diff --git a/unpacked/jax/output/HTML-CSS/fonts/Neo-Euler/fontdata.js b/unpacked/jax/output/HTML-CSS/fonts/Neo-Euler/fontdata.js index 6a74e4553..7b7c1ef83 100644 --- a/unpacked/jax/output/HTML-CSS/fonts/Neo-Euler/fontdata.js +++ b/unpacked/jax/output/HTML-CSS/fonts/Neo-Euler/fontdata.js @@ -82,7 +82,7 @@ "bold": {fonts: [MAIN,NORMAL,ALPHABETS,MARKS,ARROWS,OPERATORS,SYMBOLS,SHAPES,VARIANTS,NONUNICODE,SIZE1], bold:true , offsetA: 0x1D400, offsetG: 0x1D6A8, offsetN: 0x1D7CE}, "italic": {fonts: [MAIN,NORMAL,ALPHABETS,MARKS,ARROWS,OPERATORS,SYMBOLS,SHAPES,VARIANTS,NONUNICODE,SIZE1], italic:true}, - "bolditalic": {fonts: [MAIN,NORMAL,ALPHABETS,MARKS,ARROWS,OPERATORS,SYMBOLS,SHAPES,VARIANTS,NONUNICODE,SIZE1], bold: true, italic:true}, + "bold-italic": {fonts: [MAIN,NORMAL,ALPHABETS,MARKS,ARROWS,OPERATORS,SYMBOLS,SHAPES,VARIANTS,NONUNICODE,SIZE1], bold: true, italic:true}, "double-struck": { fonts: [DOUBLESTRUCK], offsetA: 0x1D538, diff --git a/unpacked/jax/output/HTML-CSS/fonts/STIX-Web/fontdata.js b/unpacked/jax/output/HTML-CSS/fonts/STIX-Web/fontdata.js index b08aaf66d..f93236b7e 100644 --- a/unpacked/jax/output/HTML-CSS/fonts/STIX-Web/fontdata.js +++ b/unpacked/jax/output/HTML-CSS/fonts/STIX-Web/fontdata.js @@ -155,7 +155,7 @@ "bold": {fonts: [MAINBOLD,NORMALBOLD,FRAKTURBOLD,DOUBLESTRUCKBOLD,SANSSERIFBOLD,LATINBOLD,ALPHABETSBOLD,MARKSBOLD,ARROWSBOLD,OPERATORSBOLD,SYMBOLSBOLD,SHAPESBOLD,MISCBOLD,VARIANTSBOLD,SIZE1], bold:true }, "italic": {fonts: [MAINITALIC,NORMALITALIC,SCRIPTITALIC,DOUBLESTRUCKITALIC,SANSSERIFITALIC,LATINITALIC,ALPHABETSITALIC,MARKSITALIC,MISCITALIC,VARIANTSITALIC,SIZE1], italic:true}, - "bolditalic": {fonts: [MAINBOLDITALIC,NORMALBOLDITALIC,SCRIPTBOLDITALIC,DOUBLESTRUCKBOLDITALIC,SANSSERIFBOLDITALIC,LATINBOLDITALIC,ALPHABETSBOLDITALIC,MARKSBOLDITALIC,SHAPESBOLDITALIC,MISCBOLDITALIC,VARIANTSBOLDITALIC,SIZE1], bold: true, italic:true}, + "bold-italic": {fonts: [MAINBOLDITALIC,NORMALBOLDITALIC,SCRIPTBOLDITALIC,DOUBLESTRUCKBOLDITALIC,SANSSERIFBOLDITALIC,LATINBOLDITALIC,ALPHABETSBOLDITALIC,MARKSBOLDITALIC,SHAPESBOLDITALIC,MISCBOLDITALIC,VARIANTSBOLDITALIC,SIZE1], bold: true, italic:true}, "double-struck": { fonts: [DOUBLESTRUCK], offsetA: 0x1D538, @@ -184,7 +184,8 @@ fonts: [SANSSERIF], offsetA: 0x1D5A0, offsetN: 0x1D7E2, - offsetG: 0xE17D + offsetG: 0xE17D, + offsetE: 0xE17D }, "bold-sans-serif": { fonts: [SANSSERIFBOLD], bold:true, @@ -196,7 +197,8 @@ fonts: [SANSSERIFITALIC], italic: true, offsetA: 0x1D608, offsetN: 0xE1B4, - offsetG: 0xE1BF + offsetG: 0xE1BF, + offsetE: 0xE1BF }, "sans-serif-bold-italic": { fonts: [SANSSERIFBOLDITALIC], bold:true, italic: true, @@ -223,6 +225,7 @@ {name: "alpha", low: 0x61, high: 0x7A, offset: "A", add: 26}, {name: "Alpha", low: 0x41, high: 0x5A, offset: "A"}, {name: "number", low: 0x30, high: 0x39, offset: "N"}, + {name: "greek-non-unicode", low: 0x03B1, high: 0x03C9, offset: "E", add: 25}, {name: "greek", low: 0x03B1, high: 0x03C9, offset: "G", add: 26}, {name: "Greek", low: 0x0391, high: 0x03F6, offset: "G", remap: {0x03F5: 52, 0x03D1: 53, 0x03F0: 54, 0x03D5: 55, 0x03F1: 56, 0x03D6: 57, 0x03F4: 17}} diff --git a/unpacked/jax/output/HTML-CSS/fonts/STIX/fontdata.js b/unpacked/jax/output/HTML-CSS/fonts/STIX/fontdata.js index f18ed3ead..229ce75f6 100644 --- a/unpacked/jax/output/HTML-CSS/fonts/STIX/fontdata.js +++ b/unpacked/jax/output/HTML-CSS/fonts/STIX/fontdata.js @@ -87,9 +87,9 @@ 0x1D4A4: 0x2110, 0x1D4A7: 0x2112, 0x1D4A8: 0x2133, 0x1D4AD: 0x211B, 0x1D4BA: 0x212F, 0x1D4BC: 0x210A, 0x1D4C4: 0x2134}}, "bold-script": {fonts: [BITALIC], offsetA: 0x1D4D0, bold:true, italic:true}, - "sans-serif": {offsetA: 0x1D5A0, offsetN: 0x1D7E2, offsetG: 0xE17D}, + "sans-serif": {offsetA: 0x1D5A0, offsetN: 0x1D7E2, offsetG: 0xE17D, offsetE: 0xE17D}, "bold-sans-serif": {offsetA: 0x1D5D4, offsetG: 0x1D756, offsetN: 0x1D7EC, bold:true}, - "sans-serif-italic": {fonts: [ITALIC,NONUNII], offsetA: 0x1D608, offsetN: 0xE1B4, offsetG: 0xE1BF, italic:true}, + "sans-serif-italic": {fonts: [ITALIC,NONUNII], offsetA: 0x1D608, offsetN: 0xE1B4, offsetG: 0xE1BF, offsetE: 0xE1BF, italic:true}, "sans-serif-bold-italic": {fonts: [BITALIC,"STIXNonUnicode-bold-italic"], offsetA: 0x1D63C, offsetN: 0xE1F6, offsetG: 0x1D790, bold:true, italic:true}, "monospace": {offsetA: 0x1D670, offsetN: 0x1D7F6, remap: {0x20: [0x20,"-STIX-variant"]}}, // use a special space for monospace (see below) @@ -122,6 +122,7 @@ {name: "alpha", low: 0x61, high: 0x7A, offset: "A", add: 26}, {name: "Alpha", low: 0x41, high: 0x5A, offset: "A"}, {name: "number", low: 0x30, high: 0x39, offset: "N"}, + {name: "greek-non-unicode", low: 0x03B1, high: 0x03C9, offset: "E", add: 25}, {name: "greek", low: 0x03B1, high: 0x03C9, offset: "G", add: 26}, {name: "Greek", low: 0x0391, high: 0x03F6, offset: "G", remap: {0x03F5: 53, 0x03D1: 54, 0x03F0: 55, 0x03D5: 56, 0x03F1: 57, 0x03D6: 58, 0x03F4: 17}} diff --git a/unpacked/jax/output/SVG/fonts/Asana-Math/fontdata.js b/unpacked/jax/output/SVG/fonts/Asana-Math/fontdata.js index 5052c17fc..477d76d7c 100644 --- a/unpacked/jax/output/SVG/fonts/Asana-Math/fontdata.js +++ b/unpacked/jax/output/SVG/fonts/Asana-Math/fontdata.js @@ -88,7 +88,7 @@ "bold": {fonts: [MAIN,NORMAL,MONOSPACE,LATIN,ALPHABETS,MARKS,ARROWS,OPERATORS,SYMBOLS,SHAPES,MISC,VARIANTS,NONUNICODE,SIZE1], bold:true , offsetA: 0x1D400, offsetG: 0x1D6A8, offsetN: 0x1D7CE}, "italic": {fonts: [MAIN,NORMAL,MONOSPACE,LATIN,ALPHABETS,MARKS,ARROWS,OPERATORS,SYMBOLS,SHAPES,MISC,VARIANTS,NONUNICODE,SIZE1], italic:true, offsetA: 0x1D434, offsetG: 0x1D6E2, remap: {0x1D455: 0x210E}}, - "bolditalic": {fonts: [MAIN,NORMAL,MONOSPACE,LATIN,ALPHABETS,MARKS,ARROWS,OPERATORS,SYMBOLS,SHAPES,MISC,VARIANTS,NONUNICODE,SIZE1], bold: true, italic:true, offsetA: 0x1D468, offsetG: 0x1D71C}, + "bold-italic": {fonts: [MAIN,NORMAL,MONOSPACE,LATIN,ALPHABETS,MARKS,ARROWS,OPERATORS,SYMBOLS,SHAPES,MISC,VARIANTS,NONUNICODE,SIZE1], bold: true, italic:true, offsetA: 0x1D468, offsetG: 0x1D71C}, "double-struck": { fonts: [DOUBLESTRUCK], offsetA: 0x1D538, diff --git a/unpacked/jax/output/SVG/fonts/Gyre-Pagella/fontdata.js b/unpacked/jax/output/SVG/fonts/Gyre-Pagella/fontdata.js index e38b3cb44..d495b2832 100644 --- a/unpacked/jax/output/SVG/fonts/Gyre-Pagella/fontdata.js +++ b/unpacked/jax/output/SVG/fonts/Gyre-Pagella/fontdata.js @@ -88,7 +88,7 @@ "bold": {fonts: [MAIN,NORMAL,MONOSPACE,LATIN,ALPHABETS,MARKS,ARROWS,OPERATORS,SYMBOLS,SHAPES,MISC,VARIANTS,NONUNICODE,SIZE1], bold:true , offsetA: 0x1D400, offsetG: 0x1D6A8, offsetN: 0x1D7CE}, "italic": {fonts: [MAIN,NORMAL,MONOSPACE,LATIN,ALPHABETS,MARKS,ARROWS,OPERATORS,SYMBOLS,SHAPES,MISC,VARIANTS,NONUNICODE,SIZE1], italic:true, offsetA: 0x1D434, offsetG: 0x1D6E2, remap: {0x1D455: 0x210E}}, - "bolditalic": {fonts: [MAIN,NORMAL,MONOSPACE,LATIN,ALPHABETS,MARKS,ARROWS,OPERATORS,SYMBOLS,SHAPES,MISC,VARIANTS,NONUNICODE,SIZE1], bold: true, italic:true, offsetA: 0x1D468, offsetG: 0x1D71C}, + "bold-italic": {fonts: [MAIN,NORMAL,MONOSPACE,LATIN,ALPHABETS,MARKS,ARROWS,OPERATORS,SYMBOLS,SHAPES,MISC,VARIANTS,NONUNICODE,SIZE1], bold: true, italic:true, offsetA: 0x1D468, offsetG: 0x1D71C}, "double-struck": { fonts: [DOUBLESTRUCK], offsetA: 0x1D538, diff --git a/unpacked/jax/output/SVG/fonts/Gyre-Termes/fontdata.js b/unpacked/jax/output/SVG/fonts/Gyre-Termes/fontdata.js index f998154b5..b00b03a37 100644 --- a/unpacked/jax/output/SVG/fonts/Gyre-Termes/fontdata.js +++ b/unpacked/jax/output/SVG/fonts/Gyre-Termes/fontdata.js @@ -88,7 +88,7 @@ "bold": {fonts: [MAIN,NORMAL,MONOSPACE,LATIN,ALPHABETS,MARKS,ARROWS,OPERATORS,SYMBOLS,SHAPES,MISC,VARIANTS,NONUNICODE,SIZE1], bold:true , offsetA: 0x1D400, offsetG: 0x1D6A8, offsetN: 0x1D7CE}, "italic": {fonts: [MAIN,NORMAL,MONOSPACE,LATIN,ALPHABETS,MARKS,ARROWS,OPERATORS,SYMBOLS,SHAPES,MISC,VARIANTS,NONUNICODE,SIZE1], italic:true, offsetA: 0x1D434, offsetG: 0x1D6E2, remap: {0x1D455: 0x210E}}, - "bolditalic": {fonts: [MAIN,NORMAL,MONOSPACE,LATIN,ALPHABETS,MARKS,ARROWS,OPERATORS,SYMBOLS,SHAPES,MISC,VARIANTS,NONUNICODE,SIZE1], bold: true, italic:true, offsetA: 0x1D468, offsetG: 0x1D71C}, + "bold-italic": {fonts: [MAIN,NORMAL,MONOSPACE,LATIN,ALPHABETS,MARKS,ARROWS,OPERATORS,SYMBOLS,SHAPES,MISC,VARIANTS,NONUNICODE,SIZE1], bold: true, italic:true, offsetA: 0x1D468, offsetG: 0x1D71C}, "double-struck": { fonts: [DOUBLESTRUCK], offsetA: 0x1D538, diff --git a/unpacked/jax/output/SVG/fonts/Latin-Modern/fontdata.js b/unpacked/jax/output/SVG/fonts/Latin-Modern/fontdata.js index 202f889a3..1c29dbb39 100644 --- a/unpacked/jax/output/SVG/fonts/Latin-Modern/fontdata.js +++ b/unpacked/jax/output/SVG/fonts/Latin-Modern/fontdata.js @@ -90,7 +90,7 @@ "bold": {fonts: [MAIN,NORMAL,MONOSPACE,LATIN,ALPHABETS,MARKS,ARROWS,OPERATORS,SYMBOLS,SHAPES,MISC,VARIANTS,NONUNICODE,SIZE1], bold:true , offsetA: 0x1D400, offsetG: 0x1D6A8, offsetN: 0x1D7CE}, "italic": {fonts: [MAIN,NORMAL,MONOSPACE,LATIN,ALPHABETS,MARKS,ARROWS,OPERATORS,SYMBOLS,SHAPES,MISC,VARIANTS,NONUNICODE,SIZE1], italic:true, offsetA: 0x1D434, offsetG: 0x1D6E2, remap: {0x1D455: 0x210E}}, - "bolditalic": {fonts: [MAIN,NORMAL,MONOSPACE,LATIN,ALPHABETS,MARKS,ARROWS,OPERATORS,SYMBOLS,SHAPES,MISC,VARIANTS,NONUNICODE,SIZE1], bold: true, italic:true, offsetA: 0x1D468, offsetG: 0x1D71C}, + "bold-italic": {fonts: [MAIN,NORMAL,MONOSPACE,LATIN,ALPHABETS,MARKS,ARROWS,OPERATORS,SYMBOLS,SHAPES,MISC,VARIANTS,NONUNICODE,SIZE1], bold: true, italic:true, offsetA: 0x1D468, offsetG: 0x1D71C}, "double-struck": { fonts: [DOUBLESTRUCK], offsetA: 0x1D538, diff --git a/unpacked/jax/output/SVG/fonts/Neo-Euler/fontdata.js b/unpacked/jax/output/SVG/fonts/Neo-Euler/fontdata.js index 1aa7dfc22..0de477aa7 100644 --- a/unpacked/jax/output/SVG/fonts/Neo-Euler/fontdata.js +++ b/unpacked/jax/output/SVG/fonts/Neo-Euler/fontdata.js @@ -79,7 +79,7 @@ "bold": {fonts: [MAIN,NORMAL,ALPHABETS,MARKS,ARROWS,OPERATORS,SYMBOLS,SHAPES,VARIANTS,NONUNICODE,SIZE1], bold:true , offsetA: 0x1D400, offsetG: 0x1D6A8, offsetN: 0x1D7CE}, "italic": {fonts: [MAIN,NORMAL,ALPHABETS,MARKS,ARROWS,OPERATORS,SYMBOLS,SHAPES,VARIANTS,NONUNICODE,SIZE1], italic:true}, - "bolditalic": {fonts: [MAIN,NORMAL,ALPHABETS,MARKS,ARROWS,OPERATORS,SYMBOLS,SHAPES,VARIANTS,NONUNICODE,SIZE1], bold: true, italic:true}, + "bold-italic": {fonts: [MAIN,NORMAL,ALPHABETS,MARKS,ARROWS,OPERATORS,SYMBOLS,SHAPES,VARIANTS,NONUNICODE,SIZE1], bold: true, italic:true}, "double-struck": { fonts: [DOUBLESTRUCK], offsetA: 0x1D538, diff --git a/unpacked/jax/output/SVG/fonts/STIX-Web/fontdata.js b/unpacked/jax/output/SVG/fonts/STIX-Web/fontdata.js index f87c8d271..ec5509952 100644 --- a/unpacked/jax/output/SVG/fonts/STIX-Web/fontdata.js +++ b/unpacked/jax/output/SVG/fonts/STIX-Web/fontdata.js @@ -152,7 +152,7 @@ "bold": {fonts: [MAINBOLD,NORMALBOLD,FRAKTURBOLD,DOUBLESTRUCKBOLD,SANSSERIFBOLD,LATINBOLD,ALPHABETSBOLD,MARKSBOLD,ARROWSBOLD,OPERATORSBOLD,SYMBOLSBOLD,SHAPESBOLD,MISCBOLD,VARIANTSBOLD,SIZE1], bold:true }, "italic": {fonts: [MAINITALIC,NORMALITALIC,SCRIPTITALIC,DOUBLESTRUCKITALIC,SANSSERIFITALIC,LATINITALIC,ALPHABETSITALIC,MARKSITALIC,MISCITALIC,VARIANTSITALIC,SIZE1], italic:true}, - "bolditalic": {fonts: [MAINBOLDITALIC,NORMALBOLDITALIC,SCRIPTBOLDITALIC,DOUBLESTRUCKBOLDITALIC,SANSSERIFBOLDITALIC,LATINBOLDITALIC,ALPHABETSBOLDITALIC,MARKSBOLDITALIC,SHAPESBOLDITALIC,MISCBOLDITALIC,VARIANTSBOLDITALIC,SIZE1], bold: true, italic:true}, + "bold-italic": {fonts: [MAINBOLDITALIC,NORMALBOLDITALIC,SCRIPTBOLDITALIC,DOUBLESTRUCKBOLDITALIC,SANSSERIFBOLDITALIC,LATINBOLDITALIC,ALPHABETSBOLDITALIC,MARKSBOLDITALIC,SHAPESBOLDITALIC,MISCBOLDITALIC,VARIANTSBOLDITALIC,SIZE1], bold: true, italic:true}, "double-struck": { fonts: [DOUBLESTRUCK], offsetA: 0x1D538, @@ -181,7 +181,8 @@ fonts: [SANSSERIF], offsetA: 0x1D5A0, offsetN: 0x1D7E2, - offsetG: 0xE17D + offsetG: 0xE17D, + offsetE: 0xE17D }, "bold-sans-serif": { fonts: [SANSSERIFBOLD], bold:true, @@ -193,7 +194,8 @@ fonts: [SANSSERIFITALIC], italic: true, offsetA: 0x1D608, offsetN: 0xE1B4, - offsetG: 0xE1BF + offsetG: 0xE1BF, + offsetE: 0xE1BF }, "sans-serif-bold-italic": { fonts: [SANSSERIFBOLDITALIC], bold:true, italic: true, @@ -220,6 +222,7 @@ {name: "alpha", low: 0x61, high: 0x7A, offset: "A", add: 26}, {name: "Alpha", low: 0x41, high: 0x5A, offset: "A"}, {name: "number", low: 0x30, high: 0x39, offset: "N"}, + {name: "greek-non-unicode", low: 0x03B1, high: 0x03C9, offset: "E", add: 25}, {name: "greek", low: 0x03B1, high: 0x03C9, offset: "G", add: 26}, {name: "Greek", low: 0x0391, high: 0x03F6, offset: "G", remap: {0x03F5: 52, 0x03D1: 53, 0x03F0: 54, 0x03D5: 55, 0x03F1: 56, 0x03D6: 57, 0x03F4: 17}} From a57696fde50070dd9f0894df9d9473da2d618c02 Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Mon, 13 Jan 2014 11:59:21 -0500 Subject: [PATCH 5/6] Fix up comment. --- unpacked/MathJax.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/unpacked/MathJax.js b/unpacked/MathJax.js index 92335d597..714500c61 100644 --- a/unpacked/MathJax.js +++ b/unpacked/MathJax.js @@ -2997,7 +2997,7 @@ MathJax.Hub.Startup = { if (browser === "Mac" || browser === "PC") continue; HUB.Browser = HUB.Insert(new String(browser),BROWSERS); var VERSION = new RegExp( - ".*(Version/| Trident/.*; rv:)((?:\\d+\\.)+\\d+)|" + // for Safari and Opera10 + ".*(Version/| Trident/.*; rv:)((?:\\d+\\.)+\\d+)|" + // for Safari, Opera10, and IE11+ ".*("+browser+")"+(browser == "MSIE" ? " " : "/")+"((?:\\d+\\.)*\\d+)|"+ // for one of the main browser "(?:^|\\(| )([a-z][-a-z0-9._: ]+|(?:Apple)?WebKit)/((?:\\d+\\.)+\\d+)"); // for unrecognized browser var MATCH = VERSION.exec(xAGENT) || ["","","","unknown","0.0"]; From 65cc50ac5cfe18c1dedbf0437bc4b5413e7dbaa9 Mon Sep 17 00:00:00 2001 From: "Davide P. Cervone" Date: Mon, 13 Jan 2014 15:49:16 -0500 Subject: [PATCH 6/6] Fixed font name table to work on Windows as well as Macs with the new web fonts installed locally --- unpacked/jax/output/HTML-CSS/jax.js | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/unpacked/jax/output/HTML-CSS/jax.js b/unpacked/jax/output/HTML-CSS/jax.js index ac2098515..84231c98c 100644 --- a/unpacked/jax/output/HTML-CSS/jax.js +++ b/unpacked/jax/output/HTML-CSS/jax.js @@ -42,12 +42,19 @@ FontInfo: { STIX: {family: "STIXSizeOneSym", testString: "() {} []"}, TeX: {family: "MathJax_Size1", testString: "() {} []"}, - "STIX-Web": {family: "STIXMathJax_Size1-Regular", testString: "() {} []"}, - "Asana-Math": {family: "AsanaMathJax_Size1-Regular", testString: "() {} []"}, - "Gyre-Pagella": {family: "GyrePagellaMathJax_Size1-Regular", testString: "() {} []"}, - "Gyre-Termes": {family: "GyreTermesMathJax_Size1-Regular", testString: "() {} []"}, - "Latin-Modern": {family: "LatinModernMathJax_Size1-Regular", testString: "() {} []"}, - "Neo-Euler": {family: "NeoEulerMathJax_Size1-Regular'", 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"],