Font Linking vs. Font Fallback

Sorting it all Out
Michael Kaplan's random stuff of dubious value
Be sure to read the disclaimer here first!

Font Linking vs. Font Fallback

  • Comments 18

Yesterday I was with our international MVPs all day as they were meeting with various people all across GIFT and GPTS. It was exciting for me because I had the chance to learn about a lot of things that I do not usually get exposure to, if you know what I mean....

One of the interesting points that came up is the difference between these two technologies (linking vs. fallback), both of which are intended to help with the same problem -- you select a font and then try to use that font to view characters that do not exist within it. But how they work in Windows is very different.

I will limit things in scope at the moment, but soon I will expand it to talk about differences in MLang, Office, and maybe even Avalon....

Font fallback is what Uniscribe uses. With its own internal knowledge of the best fonts to use for the various scripts that it supports, any time it is asked to render a character that is not in the selected font, it borrows the glyph from its preferred font for the script. Note that you can override this choice at any time by simply making sur your initial font contains the characters you want and all of the shaping rules/tables than an OpenType font brings to the mix. If fallback does not do the trick, Uniscribe will fall back to linking.

Font linking, on the other hand, is what GDI uses. It is the value list of fonts under HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontLink\SystemLink that gives the list of fonts to look in if the character cannot be found, and the order to look at them. Again, you can override the mechanism by making sure the initial font you choose has the glyphs.

In this particular case, FALLBACK gets used pretty much exclusively in the case where you have a complex script, something that needs Uniscribe to do its work. And if you look at LINKING, for the most part it is exclusively used to help the East Asian story by allowing the default system locale to choose an ordering for where to look for the appropriate ideograph glyphs in fonts (though the mechanism can be expanded, and sometimes is by ISVs, to cover other languages and scripts).

Now of course the way that the terms are used by other technologies is actually different in some cases, as are their mechanisms -- I will cover this soon (for now I have to get to a presentation for the Shell MVPs, where I am acting as both the 'Slide Boy' and one of the two 'Demo Boys'. :-)

Comment on the blather
Leave a Comment
  • Please add 5 and 5 and type the answer here:
  • Post
Blog - Comment List
  • I know that I can post Indic scripts with no font problems, but classical Greek is always dicy. Everyone sees it differently. No fallback that I can see.

    http://abecedaria.blogspot.com/2005/09/polytonic-greek-fonts.html

    The first quote with no font defined is full of boxes for me. Only the one with Tahoma is reliable on other machines.

    Have you explained this and I just didn't understand. Sorry.

  • Hi Suzanne!

    All three with defined fonts work for me on XP SP2 with Uniscribe turned on.

    The issues you are referring to relate to app-specific behvior (the browser in this case), which I will cover soon....
  • But the one without the defined font does not display properly, right. I do have to define my font, or, shouldn't have to? And yes I am using IE.

    I'll wait for the post on this topic.
  • Correct, Suzanne, that one is not displaying properly.
  • This sounds interesting, I wrote a simple text-editor a while back and used Uniscribe to implement correct caret movement but not for rendering, for which I used the GDI.

    I don't know what I did wrong but I never noticed neither any font-fallback nor font-linking when I had strings with mixed Thai and Chinese in my editor. The Thai characters would display fine, but the Chinese ones would come out as "boxes".

    So I'm looking forward to the continuation of this...

    Great blog btw (i've been reading it for a while but not posted before).
  • The other day bg asked in the Suggestion Box:

    When I launch a .Net winforms app on a jpn version of...
  • I have talked in this blog about a lot of different kind of font mapping features in various Microsoft...
  • I have talked about the notion of the language SKU specific nature of both MS Shell Dlg and of DEFAULT_GUI_FONT,...
  • I have not been shy about criticizing stuff provided by the Windows Shell in the past, but it is not...
  • Oren Novotny asks: When will Segoe UI have support for Hebrew characters? This is important because Outlook

  • Viktor's question not only captured the problem but it also showed that he had been digging into the

  • Cory Nelson asked in the Suggestion Box: I've often seen chat programs and thought "wouldn't it be wonderful

  • (Previous posts in this series can be read here and here ) There are a lot of different distribution

  • Please read the disclaimer ; content of Michael Kaplan's blog not approved by Microsoft! In particular,

  • The title of this blog is an allusion to Coppola's Apocalypse Now , and eventually I'll be quoting a

Page 1 of 2 (18 items) 12