mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-22 10:00:33 +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\surd{^\lyxsurd}
|
||||||
\def\textdegree{\kern-1mu^{\circ}\kern-4mu}
|
\def\textdegree{\kern-1mu^{\circ}\kern-4mu}
|
||||||
else
|
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 ≅
|
cong lyxsymbol 64 0 mathrel ≅
|
||||||
surd lyxsymbol 214 0 mathord √
|
surd lyxsymbol 214 0 mathord √
|
||||||
textdegree lyxsymbol 176 0 mathord °
|
textdegree lyxsymbol 176 0 mathord °
|
||||||
|
@ -343,6 +343,16 @@ bool FontLoader::available(FontInfo const & f)
|
|||||||
static vector<int> cache(NUM_FAMILIES, false);
|
static vector<int> cache(NUM_FAMILIES, false);
|
||||||
|
|
||||||
FontFamily family = f.family();
|
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])
|
if (cache_set[family])
|
||||||
return cache[family];
|
return cache[family];
|
||||||
cache_set[family] = true;
|
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);
|
docstring cmd(from_ascii("\\") + name);
|
||||||
bool is_combining;
|
bool is_combining;
|
||||||
bool termination;
|
bool termination;
|
||||||
@ -135,9 +133,6 @@ bool isUnicodeSymbolAvailable(docstring const & /*name*/, char_type & /*c*/)
|
|||||||
is_combining, termination);
|
is_combining, termination);
|
||||||
}
|
}
|
||||||
return c != 0 && !is_combining;
|
return c != 0 && !is_combining;
|
||||||
#else
|
|
||||||
return false;
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -635,6 +635,9 @@ fontinfo fontinfos[] = {
|
|||||||
// LyX internal usage
|
// LyX internal usage
|
||||||
{"lyxtex", inh_family, inh_series,
|
{"lyxtex", inh_family, inh_series,
|
||||||
UP_SHAPE, Color_latex},
|
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,
|
{"lyxsymbol", SYMBOL_FAMILY, inh_series,
|
||||||
inh_shape, Color_math},
|
inh_shape, Color_math},
|
||||||
{"lyxboldsymbol", SYMBOL_FAMILY, BOLD_SERIES,
|
{"lyxboldsymbol", SYMBOL_FAMILY, BOLD_SERIES,
|
||||||
|
Loading…
Reference in New Issue
Block a user