Bug 569195 - Add support for STIX Fonts 1.0. r=karlt
authorFrédéric Wang <fred.wang@free.fr>
Fri, 11 Jun 2010 10:15:43 +1200
changeset 43484 535903851195238a7b856e641fb25fe6e963a450
parent 43483 01f4a0bad338d689bdbff88e292de84378aba98d
child 43485 ce0bec337cdde9e1e01276b63846393d9befc91f
push id13731
push userktomlinson@mozilla.com
push dateThu, 10 Jun 2010 22:40:46 +0000
treeherdermozilla-central@ce0bec337cdd [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewerskarlt
bugs569195
milestone1.9.3a6pre
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 569195 - Add support for STIX Fonts 1.0. r=karlt
layout/mathml/Makefile.in
layout/mathml/mathfont.properties
layout/mathml/mathfontSTIXSize1.properties
layout/mathml/mathfontSTIXSizeOneSym.properties
modules/libpref/src/init/all.js
--- a/layout/mathml/Makefile.in
+++ b/layout/mathml/Makefile.in
@@ -96,16 +96,17 @@ include $(topsrcdir)/config/config.mk
 FORCE_STATIC_LIB = 1
 
 include $(topsrcdir)/config/rules.mk
 
 font_properties = \
 	mathfontUnicode.properties \
 	mathfontSTIXNonUnicode.properties \
 	mathfontSTIXSize1.properties \
+	mathfontSTIXSizeOneSym.properties \
 	mathfontStandardSymbolsL.properties \
 	$(NULL)
 
 ifeq ($(TARGET_MD_ARCH),win32)
 font_properties += \
 	mathfontSymbol.properties
 endif
 
--- a/layout/mathml/mathfont.properties
+++ b/layout/mathml/mathfont.properties
@@ -48,19 +48,19 @@ mathfont_missing_dialog_message = To pro
 # Do not translate anything else in this file
 
 # List of fonts that have corresponding properties files containing special
 # glyph tables for stretching MathML characters.  See the documentation at the
 # end of this file for details on the setup of the property file associated to
 # each font.  Do not include the Unicode table in this list.
 
 %ifdef XP_WIN
-font.mathfont-glyph-tables = STIXNonUnicode, STIXSize1, Standard Symbols L, Symbol
+font.mathfont-glyph-tables = STIXNonUnicode, STIXSizeOneSym, STIXSize1, Standard Symbols L, Symbol
 %else
-font.mathfont-glyph-tables = STIXNonUnicode, STIXSize1, Standard Symbols L
+font.mathfont-glyph-tables = STIXNonUnicode, STIXSizeOneSym, STIXSize1, Standard Symbols L
 %endif
 
 # The ordered list of fonts with which to attempt to stretch MathML
 # characters is controlled by setting pref("font.mathfont-family",
 # "CMSY10, CMEX10, ...") for example, or by setting the font-family list in
 # :-moz-math-stretchy in mathml.css.
 #
 # Preferred fonts for particular stretchy characters may be specified in
--- a/layout/mathml/mathfontSTIXSize1.properties
+++ b/layout/mathml/mathfontSTIXSize1.properties
@@ -37,23 +37,24 @@
 #
 # ***** END LICENSE BLOCK *****
 
 #  LOCALIZATION NOTE: FILE
 #  Do not translate anything in this file
 
 # This file contains the list of some stretchy MathML chars that
 # can be rendered with STIXSize* set of fonts,
-# with some help from STIXNonUnicode.
+# with some help from STIXNonUnicode and STIXGeneral.
 
 external.1 = STIXNonUnicode
 external.2 = STIXSize2
 external.3 = STIXSize3
 external.4 = STIXSize4
 external.5 = STIXSize5
+external.6 = STIXGeneral
 
 #        [ T/L |  M  | B/R |  G  | size0 ... size{N-1} ]
 \u0028 = \u239B\uFFFD\u239D\u239C\uFFFD((@2(@3(@4 # (
 \u0029 = \u239E\uFFFD\u23A0\u239F\uFFFD))@2)@3)@4 # )
 \u005B = \u23A1\uFFFD\u23A3\u23A2\u005B[[@2[@3[@4 # [
 \u005D = \u23A4\uFFFD\u23A6\u23A5\u005D]]@2]@3]@4 # ]
 \u007B = \u23A7\u23A8\u23A9\u23AA\u007B{{@2{@3{@4 # {
 \u007D = \u23AB\u23AC\u23AD\u23AA\u007D}}@2}@3}@4 # }
@@ -76,17 +77,17 @@ external.5 = STIXSize5
 \u2A06 = \uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2A06 # N-ARY SQUARE UNION OPERATOR
 \u2A09 = \uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2A09 # N-ARY TIMES OPERATOR
 \u2AFF = \uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2AFF # N-ARY WHITE VERTICAL BAR
 
 # E000 stix-radical symbol vertical extender
 # E001 stix-radical symbol top corner
 \u221A = \uE001@1\uFFFD\u221A@4\uE000@1\uFFFD\u221A\u221A@2\u221A@3 # Sqrt, radic
 
-\u222B = \u2320\uFFFD\u2321\u23AE\u222B # Integral, int
+\u222B = \u2320\uFFFD\u2321\u23AE\uFFFD\u222B@6 # Integral, int
 
 \u27E8 = \uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u27E8\u27E8@2\u27E8@3\u27E8@4 # LeftAngleBracket
 \u27E9 = \uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u27E9\u27E9@2\u27E9@3\u27E9@4 # RightAngleBracket
 
 \u23DE = \uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u23DE\u23DE@2\u23DE@3\u23DE@4\u23DE@5 # &OverBrace; (Unicode)
 \uFE37 = \uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u23DE\u23DE@2\u23DE@3\u23DE@4\u23DE@5 # &OverBrace; (MathML 2.0)
 \u23B4 = \uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u23B4\u23B4@2\u23B4@3\u23B4@4\u23B4@5 # &OverBracket;
 \u23DC = \uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u23DC\u23DC@2\u23DC@3\u23DC@4\u23DC@5 # &OverParenthesis; (Unicode)
copy from layout/mathml/mathfontSTIXSize1.properties
copy to layout/mathml/mathfontSTIXSizeOneSym.properties
--- a/layout/mathml/mathfontSTIXSize1.properties
+++ b/layout/mathml/mathfontSTIXSizeOneSym.properties
@@ -37,23 +37,25 @@
 #
 # ***** END LICENSE BLOCK *****
 
 #  LOCALIZATION NOTE: FILE
 #  Do not translate anything in this file
 
 # This file contains the list of some stretchy MathML chars that
 # can be rendered with STIXSize* set of fonts,
-# with some help from STIXNonUnicode.
+# with some help from STIXNonUnicode, STIXGeneral and STIXIntegralsD.
 
 external.1 = STIXNonUnicode
-external.2 = STIXSize2
-external.3 = STIXSize3
-external.4 = STIXSize4
-external.5 = STIXSize5
+external.2 = STIXSizeTwoSym
+external.3 = STIXSizeThreeSym
+external.4 = STIXSizeFourSym
+external.5 = STIXSizeFiveSym
+external.6 = STIXGeneral
+external.7 = STIXIntegralsD
 
 #        [ T/L |  M  | B/R |  G  | size0 ... size{N-1} ]
 \u0028 = \u239B\uFFFD\u239D\u239C\uFFFD((@2(@3(@4 # (
 \u0029 = \u239E\uFFFD\u23A0\u239F\uFFFD))@2)@3)@4 # )
 \u005B = \u23A1\uFFFD\u23A3\u23A2\u005B[[@2[@3[@4 # [
 \u005D = \u23A4\uFFFD\u23A6\u23A5\u005D]]@2]@3]@4 # ]
 \u007B = \u23A7\u23A8\u23A9\u23AA\u007B{{@2{@3{@4 # {
 \u007D = \u23AB\u23AC\u23AD\u23AA\u007D}}@2}@3}@4 # }
@@ -76,17 +78,44 @@ external.5 = STIXSize5
 \u2A06 = \uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2A06 # N-ARY SQUARE UNION OPERATOR
 \u2A09 = \uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2A09 # N-ARY TIMES OPERATOR
 \u2AFF = \uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2AFF # N-ARY WHITE VERTICAL BAR
 
 # E000 stix-radical symbol vertical extender
 # E001 stix-radical symbol top corner
 \u221A = \uE001@1\uFFFD\u221A@4\uE000@1\uFFFD\u221A\u221A@2\u221A@3 # Sqrt, radic
 
-\u222B = \u2320\uFFFD\u2321\u23AE\u222B # Integral, int
+# Integrals
+\u222B = \u2320\uFFFD\u2321\u23AE\uFFFD\u222B@6\u222B@7
+\u222C = \uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u222C@6\u222C@7
+\u222D = \uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u222D@6\u222D@7
+\u222E = \uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u222E@6\u222E@7
+\u222F = \uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u222F@6\u222F@7
+\u2230 = \uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2230@6\u2230@7
+\u2231 = \uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2231@6\u2231@7
+\u2232 = \uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2232@6\u2232@7
+\u2233 = \uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2233@6\u2233@7
+\u2A0B = \uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2A0B@6\u2A0B@7
+\u2A0C = \uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2A0C@6\u2A0C@7
+\u2A0D = \uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2A0D@6\u2A0D@7
+\u2A0E = \uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2A0E@6\u2A0E@7
+\u2A0F = \uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2A0F@6\u2A0F@7
+\u2A10 = \uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2A10@6\u2A10@7
+\u2A11 = \uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2A11@6\u2A11@7
+\u2A12 = \uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2A12@6\u2A12@7
+\u2A13 = \uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2A13@6\u2A13@7
+\u2A14 = \uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2A14@6\u2A14@7
+\u2A15 = \uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2A15@6\u2A15@7
+\u2A16 = \uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2A16@6\u2A16@7
+\u2A17 = \uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2A17@6\u2A17@7
+\u2A18 = \uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2A18@6\u2A18@7
+\u2A19 = \uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2A19@6\u2A19@7
+\u2A1A = \uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2A1A@6\u2A1A@7
+\u2A1B = \uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2A1B@6\u2A1B@7
+\u2A1C = \uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2A1C@6\u2A1C@7
 
 \u27E8 = \uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u27E8\u27E8@2\u27E8@3\u27E8@4 # LeftAngleBracket
 \u27E9 = \uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u27E9\u27E9@2\u27E9@3\u27E9@4 # RightAngleBracket
 
 \u23DE = \uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u23DE\u23DE@2\u23DE@3\u23DE@4\u23DE@5 # &OverBrace; (Unicode)
 \uFE37 = \uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u23DE\u23DE@2\u23DE@3\u23DE@4\u23DE@5 # &OverBrace; (MathML 2.0)
 \u23B4 = \uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u23B4\u23B4@2\u23B4@3\u23B4@4\u23B4@5 # &OverBracket;
 \u23DC = \uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u23DC\u23DC@2\u23DC@3\u23DC@4\u23DC@5 # &OverParenthesis; (Unicode)
--- a/modules/libpref/src/init/all.js
+++ b/modules/libpref/src/init/all.js
@@ -962,17 +962,17 @@ pref("intl.locale.matchOS",             
 pref("intl.fallbackCharsetList.ISO-8859-1", "windows-1252");
 pref("font.language.group",                 "chrome://global/locale/intl.properties");
 
 // these locales have right-to-left UI
 pref("intl.uidirection.ar", "rtl");
 pref("intl.uidirection.he", "rtl");
 pref("intl.uidirection.fa", "rtl");
 
-pref("font.mathfont-family", "STIXNonUnicode, STIXSize1, STIXGeneral, Standard Symbols L, DejaVu Sans, Cambria Math");
+pref("font.mathfont-family", "STIXNonUnicode, STIXSizeOneSym, STIXSize1, STIXGeneral, Standard Symbols L, DejaVu Sans, Cambria Math");
 
 // Some CJK fonts have bad underline offset, their CJK character glyphs are overlapped (or adjoined)  to its underline.
 // These fonts are ignored the underline offset, instead of it, the underline is lowered to bottom of its em descent.
 pref("font.blacklist.underline_offset", "FangSong,Gulim,GulimChe,MingLiU,MingLiU-ExtB,MingLiU_HKSCS,MingLiU-HKSCS-ExtB,MS Gothic,MS Mincho,MS PGothic,MS PMincho,MS UI Gothic,PMingLiU,PMingLiU-ExtB,SimHei,SimSun,SimSun-ExtB,Hei,Kai,Apple LiGothic,Apple LiSung,Osaka");
 
 pref("images.dither", "auto");
 pref("security.directory",              "");
 
@@ -1624,17 +1624,17 @@ pref("font.default.zh-TW", "sans-serif")
 pref("font.size.variable.zh-TW", 16);
 pref("font.size.fixed.zh-TW", 16);
 
 pref("font.default.zh-HK", "sans-serif");
 pref("font.size.variable.zh-HK", 16);
 pref("font.size.fixed.zh-HK", 16);
 
 // We have special support for Monotype Symbol on Windows.
-pref("font.mathfont-family", "STIXNonUnicode, STIXSize1, STIXGeneral, Symbol, DejaVu Sans, Cambria Math");
+pref("font.mathfont-family", "STIXNonUnicode, STIXSizeOneSym, STIXSize1, STIXGeneral, Symbol, DejaVu Sans, Cambria Math");
 
 // cleartype settings - false implies default system settings 
 
 // use cleartype rendering for downloadable fonts (win xp only)
 pref("gfx.font_rendering.cleartype.use_for_downloadable_fonts", true);
 
 // use cleartype rendering for all fonts always (win xp only)
 pref("gfx.font_rendering.cleartype.always_use_for_content", false);
@@ -2110,17 +2110,17 @@ pref("font.default.zh-TW", "sans-serif")
 pref("font.size.variable.zh-TW", 15);
 pref("font.size.fixed.zh-TW", 16);
 
 pref("font.default.zh-HK", "sans-serif");
 pref("font.size.variable.zh-HK", 15);
 pref("font.size.fixed.zh-HK", 16);
 
 // Apple's Symbol is Unicode so use it
-pref("font.mathfont-family", "STIXNonUnicode, STIXSize1, STIXGeneral, Symbol, DejaVu Sans, Cambria Math");
+pref("font.mathfont-family", "STIXNonUnicode, STIXSizeOneSym, STIXSize1, STIXGeneral, Symbol, DejaVu Sans, Cambria Math");
 
 // individual font faces to be treated as independent families
 // names are Postscript names of each face
 pref("font.single-face-list", "Osaka-Mono");
 
 // optimization hint for fonts with localized names to be read in at startup, otherwise read in at lookup miss
 // names are canonical family names (typically English names)
 pref("font.preload-names-list", "Hiragino Kaku Gothic Pro,Hiragino Mincho Pro,STSong");
@@ -2154,17 +2154,17 @@ pref("mousewheel.system_scroll_override_
 #endif
 
 #ifdef XP_OS2
 
 pref("ui.key.menuAccessKeyFocuses", true);
 
 pref("font.alias-list", "sans,sans-serif,serif,monospace,Tms Rmn,Helv,Courier,Times New Roman");
 
-pref("font.mathfont-family", "STIXNonUnicode, STIXSize1, STIXGeneral, DejaVu Sans");
+pref("font.mathfont-family", "STIXNonUnicode, STIXSizeOneSym, STIXSize1, STIXGeneral, DejaVu Sans");
 
 // Languages only need lists if we have a default that might not be available.
 // Tms Rmn and Helv cannot be used by Thebes but the OS/2 version of FontConfig
 // maps them to Times New Roman and Helvetica, respectively. Those fonts and
 // Courier are available on OS/2 by default.
 
 pref("font.name.serif.ar", "Tms Rmn");
 pref("font.name.sans-serif.ar", "Helv");