From 65c9b8234ee65420938d259ab76ed66971a3f03f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Wang?= Date: Wed, 6 Feb 2013 18:10:33 +0100 Subject: [PATCH] Better handle mathvariant for unknown/invalid values or values not supported by generic fonts. --- unpacked/jax/output/HTML-CSS/jax.js | 19 +++++++++++++------ unpacked/jax/output/SVG/jax.js | 7 +++++++ 2 files changed, 20 insertions(+), 6 deletions(-) diff --git a/unpacked/jax/output/HTML-CSS/jax.js b/unpacked/jax/output/HTML-CSS/jax.js index 4517dc3f2..cd47ce659 100644 --- a/unpacked/jax/output/HTML-CSS/jax.js +++ b/unpacked/jax/output/HTML-CSS/jax.js @@ -1,3 +1,5 @@ +/* -*- Mode: Javascript; indent-tabs-mode:nil; js-indent-level: 2 -*- */ +/* vim: set ts=2 et sw=2 tw=80: */ /************************************************************* * * MathJax/jax/output/HTML-CSS/jax.js @@ -322,15 +324,15 @@ } } else { MathJax.Message.Set("Can't find a valid font using ["+this.config.availableFonts.join(", ")+"]",null,3000); + this.fontInUse = "generic"; this.FONTDATA = { TeX_factor: 1, baselineskip: 1.2, lineH: .8, lineD: .2, ffLineH: .8, - FONTS: {}, VARIANT: {normal: {fonts:[]}}, RANGES: [], - DELIMITERS: {}, RULECHAR: 0x2D, REMAP: {} + FONTS: {}, + VARIANT: { + "normal": {fonts:[]}, "-generic-variant": {fonts:[]}, + "-largeOp": {fonts:[]}, "-smallOp": {fonts:[]} + }, RANGES: [], DELIMITERS: {}, RULECHAR: 0x2D, REMAP: {} }; - if (MathJax.InputJax.TeX && MathJax.InputJax.TeX.Definitions) { - MathJax.InputJax.TeX.Definitions.macros.overline[1] = "002D"; - MathJax.InputJax.TeX.Definitions.macros.underline[1] = "002D"; - } HUB.Startup.signal.Post("HTML-CSS Jax - no valid font"); } this.require.push(MathJax.OutputJax.extensionDir+"/MathEvents.js"); @@ -1847,6 +1849,11 @@ "sans-serif-bold-italic":MML.VARIANT.BOLDSANSSERIF }[variant]||variant; } + if (!(variant in HTMLCSS.FONTDATA.VARIANT)) { + // If the mathvariant value is invalid or not supported by this + // font, fallback to normal. See issue 363. + variant = "normal"; + } return HTMLCSS.FONTDATA.VARIANT[variant]; } },{ diff --git a/unpacked/jax/output/SVG/jax.js b/unpacked/jax/output/SVG/jax.js index 7a61925e2..ab1fea497 100644 --- a/unpacked/jax/output/SVG/jax.js +++ b/unpacked/jax/output/SVG/jax.js @@ -1,3 +1,5 @@ +/* -*- Mode: Javascript; indent-tabs-mode:nil; js-indent-level: 2 -*- */ +/* vim: set ts=2 et sw=2 tw=80: */ /************************************************************* * * MathJax/jax/output/SVG/jax.js @@ -1208,6 +1210,11 @@ "sans-serif-bold-italic":MML.VARIANT.BOLDSANSSERIF }[variant]||variant; } + if (!(variant in SVG.FONTDATA.VARIANT)) { + // If the mathvariant value is invalid or not supported by this + // font, fallback to normal. See issue 363. + variant = "normal"; + } return SVG.FONTDATA.VARIANT[variant]; },