From daaaf9f98926be8c10c662e3cbac2239b6e465f6 Mon Sep 17 00:00:00 2001 From: "karlt+@karlt.net" Date: Wed, 2 Apr 2008 14:06:17 -0700 Subject: [PATCH] Add mathfontSymbol.properties for SymbolMT on MS Windows b=425367 r=pavlov --- browser/installer/removed-files.in | 2 + layout/mathml/base/src/Makefile.in | 21 +++++-- layout/mathml/base/src/mathfont.properties | 4 ++ .../mathml/base/src/mathfontSymbol.properties | 61 +++++++++++-------- layout/mathml/base/src/mathml.pkg | 3 + layout/mathml/content/src/mathml.css | 2 +- modules/libpref/src/init/all.js | 7 ++- 7 files changed, 66 insertions(+), 34 deletions(-) diff --git a/browser/installer/removed-files.in b/browser/installer/removed-files.in index 3c12a9c328c..188e5e95d69 100644 --- a/browser/installer/removed-files.in +++ b/browser/installer/removed-files.in @@ -553,7 +553,9 @@ res/fonts/mathfontMath2.properties res/fonts/mathfontMath4.properties res/fonts/mathfontMTExtra.properties res/fonts/mathfontPUA.properties +#ifndef XP_WIN res/fonts/mathfontSymbol.properties +#endif res/fonts/fontEncoding.properties res/fonts/pangoFontEncoding.properties res/fonts/fontNameMap.properties diff --git a/layout/mathml/base/src/Makefile.in b/layout/mathml/base/src/Makefile.in index 28af5fc4832..0b670832e92 100644 --- a/layout/mathml/base/src/Makefile.in +++ b/layout/mathml/base/src/Makefile.in @@ -113,18 +113,31 @@ FORCE_STATIC_LIB = 1 include $(topsrcdir)/config/rules.mk -_PROPERTIES = \ - mathfont.properties \ +font_properties = \ mathfontUnicode.properties \ mathfontSTIXNonUnicode.properties \ mathfontSTIXSize1.properties \ mathfontStandardSymbolsL.properties \ $(NULL) -libs:: $(_PROPERTIES) +ifeq ($(TARGET_MD_ARCH),win32) +font_properties += \ + mathfontSymbol.properties +endif + +libs:: $(font_properties) $(INSTALL) $^ $(DIST)/bin/res/fonts -install:: $(_PROPERTIES) +install:: $(font_properties) $(SYSINSTALL) $(IFLAGS1) $^ $(DESTDIR)$(mozappdir)/res/fonts +math_properties = mathfont.properties + +$(DIST)/bin/res/fonts/$(math_properties) $(DESTDIR)$(mozappdir)/res/fonts/$(math_properties): $(math_properties) Makefile + test -d $(@D) || $(NSINSTALL) -D $(@D) + $(PYTHON) $(MOZILLA_DIR)/config/Preprocessor.py --marker=% $(DEFINES) $(ACDEFINES) $< > $@ + +libs:: $(DIST)/bin/res/fonts/$(math_properties) +install:: $(DESTDIR)$(mozappdir)/res/fonts/$(math_properties) + DEFINES += -D_IMPL_NS_LAYOUT diff --git a/layout/mathml/base/src/mathfont.properties b/layout/mathml/base/src/mathfont.properties index dd806653d6f..eb93bdc6c30 100644 --- a/layout/mathml/base/src/mathfont.properties +++ b/layout/mathml/base/src/mathfont.properties @@ -51,7 +51,11 @@ mathfont_missing_dialog_message = To properly display the MathML on this page yo # 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 +%else font.mathfont-glyph-tables = STIXNonUnicode, 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", diff --git a/layout/mathml/base/src/mathfontSymbol.properties b/layout/mathml/base/src/mathfontSymbol.properties index 312c23f0343..72757960fc9 100644 --- a/layout/mathml/base/src/mathfontSymbol.properties +++ b/layout/mathml/base/src/mathfontSymbol.properties @@ -20,6 +20,7 @@ # # Contributor(s): # Roger B. Sidje +# Karl Tomlinson , Mozilla Corporation # # Alternatively, the contents of this file may be used under the terms of # either the GNU General Public License Version 2 or later (the "GPL"), or @@ -38,36 +39,42 @@ # LOCALIZATION NOTE: FILE # Do not translate anything in this file -# This file contains the list of all stretchy MathML chars that -# can be rendered with the indicated mathfont. +# This file contains the list of all stretchy MathML chars that can be +# rendered with Monotype's Symbol font. +# +# This file should normally only be installed on MS Windows systems as other +# platforms have different fonts with the same family name but different +# character codes. mathfont = Symbol # [ T/L | M | B/R | G | size0 ... size{N-1} ] -\u0028 = \uF8FF\uFFFD\uF8FF\uF8FF\u0028 # ( -\u0029 = \uF8FF\uFFFD\uF8FF\uF8FF\u0029 # ) -\u005B = \uF8FF\uFFFD\uF8FF\uF8FF\u005B # [ -\u005D = \uF8FF\uFFFD\uF8FF\uF8FF\u005D # ] -\u007B = \uF8FF\uF8FF\uF8FF\uF8FF\u007B # { -\u007C = \uFFFD\uFFFD\uFFFD\u007C\u007C # | -\u007D = \uF8FF\uF8FF\uF8FF\uF8FF\u007D # } -\u2190 = \u2190\uFFFD\uFFFD\uF8FF\u2190 # LeftArrow, larr, leftarrow -\u2191 = \u2191\uFFFD\uFFFD\uF8FF\u2191 # UpArrow, uarr, uparrow -\u2192 = \uFFFD\uFFFD\u2192\uF8FF\u2192 # RightArrow, rarr, rightarrow -\u2193 = \uFFFD\uFFFD\u2193\uF8FF\u2193 # DownArrow, darr, downarrow -\u2194 = \u2190\uFFFD\u2192\uF8FF\u2194 # LeftRightArrow, harr, leftrightarrow -\u2195 = \u2191\uFFFD\u2193\uF8FF\u2195 # UpDownArrow, updownarrow, varr -\u2308 = \u005B.T\uFFFD\uFFFD\u005B.G\u2308 # LeftCeiling, lceil -\u2309 = \u005D.T\uFFFD\uFFFD\u005D.G\u2309 # RightCeiling, rceil -\u230A = \uFFFD\uFFFD\u005B.B\u005B.G\u230A # LeftFloor, lfloor -\u230B = \uFFFD\uFFFD\u005D.B\u005D.G\u230B # RightFloor, rfloor +\u0028 = \uF0E6\uFFFD\uF0E8\uF0E7\uF028 # ( +\u0029 = \uF0F6\uFFFD\uF0F8\uF0F7\uF029 # ) +\u005B = \uF0E9\uFFFD\uF0EB\uF0EA\uF05B # [ +\u005D = \uF0F9\uFFFD\uF0FB\uF0FA\uF05D # ] +\u007B = \uF0EC\uF0ED\uF0EE\uF0EF\uF07B # { +\u007C = \uFFFD\uFFFD\uFFFD\uF07C\uF07C # | +\u007D = \uF0FC\uF0FD\uF0FE\uF0EF\uF07D # } -\u005F = \uFFFD\uFFFD\uFFFD\u005F\u0332 # ad-hock: UnderBar (0x0332) is stretched with underscore -\u00AF = \uFFFD\uFFFD\uFFFD\uF8E5\u00AF # ad-hoc: overbar is stretched with the radical extender +\u00AF = \uFFFD\uFFFD\uFFFD\uF060\uF060 # ad-hoc: overbar is stretched with the radical extender +\u0332 = \uFFFD\uFFFD\uFFFD\uF05F\uF05F # ad-hoc: UnderBar (0x0332) is stretched with underscore -#For Windows -#\u222B = \u2320\uFFFD\u2321\uF8FF\u222B # Integral, int +\u2190 = \uF0AC\uFFFD\uFFFD\uF0BE\uF0AC # LeftArrow, larr, leftarrow +\u2191 = \uF0AD\uFFFD\uFFFD\uF0BD\uF0AD # UpArrow, uarr, uparrow +\u2192 = \uFFFD\uFFFD\uF0AE\uF0BE\uF0AE # RightArrow, rarr, rightarrow +\u2193 = \uFFFD\uFFFD\uF0AF\uF0BD\uF0AF # DownArrow, darr, downarrow +\u2194 = \uF0AC\uFFFD\uF0AE\uF0BE\uF0B4 # LeftRightArrow, harr, leftrightarrow +\u2195 = \uF0AD\uFFFD\uF0AF\uF0BD # UpDownArrow, updownarrow, varr -# For Linux, we want to use a rule as glue for the -# integral to avoid problems with the font' supplied glue -# (this is okay for Windows too) -\u222B = \u2320\uFFFD\u2321\uFFFD\u222B # Integral, int +\u222B = \uF0F3\uFFFD\uF0F5\uF0F4\uF0F2 # Integral, int + +# Using parts of [ and ] +\u2308 = \uF0E9\uFFFD\uFFFD\uF0EA\uF0E9 # LeftCeiling, lceil +\u2309 = \uF0F9\uFFFD\uFFFD\uF0FA\uF0F9 # RightCeiling, rceil +\u230A = \uFFFD\uFFFD\uF0EB\uF0EA\uF0EB # LeftFloor, lfloor +\u230B = \uFFFD\uFFFD\uF0FB\uF0FA\uF0FB # RightFloor, rfloor + +# same as normal arrows +\u27F5 = \uF0AC\uFFFD\uFFFD\uF0BE # LongLeftArrow +\u27F6 = \uFFFD\uFFFD\uF0AE\uF0BE # LongRightArrow +\u27F7 = \uF0AC\uFFFD\uF0AE\uF0BE # LongLeftRightArrow diff --git a/layout/mathml/base/src/mathml.pkg b/layout/mathml/base/src/mathml.pkg index 9bfe798e642..9cea9c80a81 100644 --- a/layout/mathml/base/src/mathml.pkg +++ b/layout/mathml/base/src/mathml.pkg @@ -6,3 +6,6 @@ dist/bin/res/fonts/mathfontUnicode.properties dist/bin/res/fonts/mathfontSTIXNonUnicode.properties dist/bin/res/fonts/mathfontSTIXSize1.properties dist/bin/res/fonts/mathfontStandardSymbolsL.properties +#if TARGET_MD_ARCH==win32 +dist/bin/res/fonts/mathfontSymbol.properties +#endif diff --git a/layout/mathml/content/src/mathml.css b/layout/mathml/content/src/mathml.css index 3db81976f6f..54fb3c29849 100644 --- a/layout/mathml/content/src/mathml.css +++ b/layout/mathml/content/src/mathml.css @@ -54,7 +54,7 @@ math { display: inline; font-size: inherit; font-style: normal; - font-family: STIXGeneral, Cambria, Cambria Math, DejaVu Serif, DejaVu Sans, Times, Lucida Sans Unicode, OpenSymbol, Standard Symbols L, serif; + font-family: STIXGeneral, DejaVu Serif, DejaVu Sans, Cambria, Cambria Math, Times, Lucida Sans Unicode, OpenSymbol, Standard Symbols L, serif; -moz-float-edge: margin-box; } math[mode="display"], math[display="block"] { diff --git a/modules/libpref/src/init/all.js b/modules/libpref/src/init/all.js index ef7af83e141..a6606f50c66 100644 --- a/modules/libpref/src/init/all.js +++ b/modules/libpref/src/init/all.js @@ -852,7 +852,7 @@ pref("intl.locale.matchOS", false); pref("intl.fallbackCharsetList.ISO-8859-1", "windows-1252"); pref("font.language.group", "chrome://global/locale/intl.properties"); -pref("font.mathfont-family", "STIXNonUnicode, STIXSize1, STIXGeneral, Cambria Math, Standard Symbols L, DejaVu Sans"); +pref("font.mathfont-family", "STIXNonUnicode, 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. @@ -1367,6 +1367,9 @@ 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("ui.key.menuAccessKeyFocuses", true); // override double-click word selection behavior. @@ -1761,7 +1764,7 @@ 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, Cambria Math, Symbol, DejaVu Sans"); +pref("font.mathfont-family", "STIXNonUnicode, STIXSize1, STIXGeneral, Symbol, DejaVu Sans, Cambria Math"); // individual font faces to be treated as independent families // names are Postscript names of each face