Subject: bug#20727: 24.5; Font fallback doesn't work for the Emoji range

From: Eli Zaretskii <[email-masked]>
Date: Mon, 08 Jun 2015 17:30:25 +0300

> Date: Mon, 8 Jun 2015 07:43:04 +0200
> From: Vasilij Schneidermann <[email-masked]>
> Cc: Glenn Morris <[email-masked]>, [email-masked]
> 
> > The "open" entry means Emacs decided to use that font.  Does "DejaVu
> > Sans Mono" have glyphs for those characters?
> 
> I use `gucharmap` to look up glyphs in fonts, you can find it with C-f
> by its name.  Selecting "DejaVu Sans Mono" as font and the "Show only
> glyphs from this font" option from the "View" menu confirms that this
> font doesn't have a glyph for it.

Does the full value of font-log suggest that Emacs even tried to
consider the Symbola font at some point?  My reading of the code seems
to indicate that Emacs won't try any font that's not in the fontset,
for characters that don't have a charset ID (which is what happens
with symbols, see below).

> What struck me as odd however is that Emacs appears to select glyphs by
> script and that there's no "Symbol" script in this font viewer (or more
> likely, not in Unicode at all).  Perhaps here lies the problem.

There's elaborate setup in fontset.el for selecting fonts by script,
so the fact that HELLO displays correctly is not a miracle.  Moreover,
for characters that belong to known charsets -- something that happens
for every letter in some language or script -- Emacs queries available
fonts by charset, so it can find fonts that are not in the fontset, I
think.

However 'symbol' is not a script nor a charset; Emacs conflates into
that pseudo-script all the Unicode blocks that define symbols of some
kind, for which the OTF spec does not define a script tag (for the
list of tags see
https://www.microsoft.com/typography/otspec/scripttags.htm).  We can
also look up fonts by family, registry, and charset, but none of this
helps with symbols, like it does with "real" scripts and character
sets.  So I think we pretty much depend on the fonts in the default
fontset for supporting symbols in general and Emoji in particular.

Therefore, I think we should augment the default fontset to include
good fonts for symbols for which the "usual" fonts rarely if ever
contain glyphs.

The problem is that most such fonts are not free.  Is Symbola free?

There's GNU Unifont, which is free, and is already in the default
fontset, but IMO many of its glyphs are really of low quality.  Do you
have that installed?  I'm guessing not.