mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-12-23 21:40:19 +00:00
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.
This commit is contained in:
parent
8c0e1b5c70
commit
c1ac09e11f
@ -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 °
|
||||
|
@ -343,6 +343,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;
|
||||
|
@ -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
|
||||
}
|
||||
|
||||
|
||||
|
@ -635,6 +635,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,
|
||||
|
Loading…
Reference in New Issue
Block a user