From: Georg Baum Date: Fri, 14 Nov 2014 18:09:34 +0000 (+0100) Subject: Fix bug #7954 (now really) X-Git-Tag: 2.1.3~84 X-Git-Url: https://git.lyx.org/gitweb/?a=commitdiff_plain;h=acc771b2123797c42463c1a564f4934f2b3bef41;p=features.git Fix bug #7954 (now really) Thanks to maciejr we know now what the remaining problem was with bug 7954: My unicode symbol fallback works fine, the problem was that a font named "Symbol" is available on OS X, but it does not use the font-specific encoding we expect: Almost all glyphs are at their unicode code point. Therefore the bug is fixed by re-enabling the unicode workaround and blocking the Symbol font on OS X. --- diff --git a/lib/symbols b/lib/symbols index 9f33433cdd..2b5aea2feb 100644 --- a/lib/symbols +++ b/lib/symbols @@ -1173,6 +1173,8 @@ lyxsurd cmsy 112 0 mathord √ \def\surd{^\lyxsurd} \def\textdegree{\kern-1mu^{\circ}\kern-4mu} else +# FIXME: These don't work on OS X, since the Symbol font uses a different +# encoding and is therefore disabled in FontLoader::available(). cong lyxsymbol 64 0 mathrel ≅ surd lyxsymbol 214 0 mathord √ textdegree lyxsymbol 176 0 mathord ° diff --git a/src/frontends/qt4/GuiFontLoader.cpp b/src/frontends/qt4/GuiFontLoader.cpp index 8081cd6dca..1a887ff07a 100644 --- a/src/frontends/qt4/GuiFontLoader.cpp +++ b/src/frontends/qt4/GuiFontLoader.cpp @@ -349,6 +349,16 @@ bool FontLoader::available(FontInfo const & f) static vector cache(NUM_FAMILIES, false); FontFamily family = f.family(); +#ifdef Q_WS_MACX + // Apple ships a font name "Symbol", which has more or less the same + // glyphs as the original PostScript Symbol font, but it uses a different + // encoding (see https://en.wikipedia.org/wiki/Symbol_(typeface)#cite_note-2). + // Since we expect the font specific encoding of the original + // PostScript Symbol font, we can't use the one provided on OS X. + // See also the discussion in bug 7954. + if (f.family() == SYMBOL_FAMILY) + return false; +#endif if (cache_set[family]) return cache[family]; cache_set[family] = true; diff --git a/src/mathed/MathFactory.cpp b/src/mathed/MathFactory.cpp index d19899866f..961e70e9f4 100644 --- a/src/mathed/MathFactory.cpp +++ b/src/mathed/MathFactory.cpp @@ -118,10 +118,8 @@ bool canBeDisplayed(char_type c) } -bool isUnicodeSymbolAvailable(docstring const & /*name*/, char_type & /*c*/) +bool isUnicodeSymbolAvailable(docstring const & name, char_type & c) { - // this is too fragile, e.g. prodes W instead of capital omega on OS X -#if 0 docstring cmd(from_ascii("\\") + name); bool is_combining; bool termination; @@ -135,9 +133,6 @@ bool isUnicodeSymbolAvailable(docstring const & /*name*/, char_type & /*c*/) is_combining, termination); } return c != 0 && !is_combining; -#else - return false; -#endif } diff --git a/src/mathed/MathSupport.cpp b/src/mathed/MathSupport.cpp index 21d41dd64e..1915e2b44c 100644 --- a/src/mathed/MathSupport.cpp +++ b/src/mathed/MathSupport.cpp @@ -634,6 +634,9 @@ fontinfo fontinfos[] = { // LyX internal usage {"lyxtex", inh_family, inh_series, UP_SHAPE, Color_latex}, + // FIXME: The following two don't work on OS X, since the Symbol font + // uses a different encoding, and is therefore disabled in + // FontLoader::available(). {"lyxsymbol", SYMBOL_FAMILY, inh_series, inh_shape, Color_math}, {"lyxboldsymbol", SYMBOL_FAMILY, BOLD_SERIES, diff --git a/status.21x b/status.21x index e079e31b34..ff2d217e7e 100644 --- a/status.21x +++ b/status.21x @@ -111,6 +111,8 @@ What's new - Fix computer algebra system computations in formulas with '=' signs. +- Fix rendering of \varOmega on OS X (bug 7954). + * INTERNALS