commit acc771b2123797c42463c1a564f4934f2b3bef41
Author: Georg Baum <[email protected]>
Date: Fri Nov 14 19:09:34 2014 +0100
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 9f33433..2b5aea2 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 8081cd6..1a887ff 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<int> 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 d198998..961e70e 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 21d41dd..1915e2b 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 e079e31..ff2d217 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