[Fontconfig] how to recognize a fallback character

Werner LEMBERG wl at gnu.org
Wed Aug 22 09:06:03 PDT 2012


>> we have a problem within lilypond.  This is probably a pango
>> question also, but let's start here :-)
> 
> I'd like to hear more about the problem.

Actually, we have two problems:

  (1) The fallback font problem mentioned in the previous mail; you
      can find the full report here, together with a proposed fix
      (which doesn't work as expected, thus writing to this list):

        http://code.google.com/p/lilypond/issues/detail?id=2761

  (2) For some unknown reasons yet, we get different output for the
      same font on GNU/Linux and Windows.  While the former contains
      ligatures (like `fi') and kerning, the latter doesn't have this.
      We suspect a Pango problem since I/O snooping has shown that the
      same fonts are used on both platforms.

      The kerning problem is reported here:

        http://code.google.com/p/lilypond/issues/detail?id=2657

      but the discussion mainly happens here because the ligature
      problem has the same origin, we believe:

        http://code.google.com/p/lilypond/issues/detail?id=2656

      Note that we distribute special versions of the CenturySchL
      fonts as part of the lilypond bundle; we convert the Type1 fonts
      to OTF with FontForge, stripping off some ligatures (like
      `i+j->ij') which shouldn't be active by default.

> One way I have suggested to people in the past is to load a font for
> the following two patters: "SomeFamilyName,sans" and
> "SomeFamilyName,serif".  If the two fonts have the same family name,
> you got a match, otherwise a fallback.

Nice idea!

> But hearing lilypond, I smell you want to load a font you are
> shipping yourself.

Yes.  We have two font interfaces: For music and musical symbols,
lilypond itself manages the font processing, using fontconfig to
locate the font $(Q#|(B we simply add lilypond's font directory to get exact
matches.  For text strings (including musical symbols if part of the
text), we delegate everything to pango.

> I assume lilypond uses Unicode-encoded musical symbols and pango to
> render them?  That's really cool.

It works without problems, at least on GNU/Linux.  Our problems are
with standard fonts, more or less.

> There are ways to force pangofc to load the font you want, they are
> just not documented.  I'll be happy to explain those.

This sounds *very* interesting!


    Werner


More information about the Fontconfig mailing list