Re: [Font] How does Gtk show a string contains different languages?



Thanks so much,Tor.

     I work on X11(Ubuntu).
     And you are right,
     "it's fontconfig that causes the fallback to
     "AR PL New Sung""
    
     I didn't know Gtk+ uses Pango as text tool before.
     So , I will try to look into Pango now.
     Thanks for your help !


2008/10/17 Tor Lillqvist <tml iki fi>
>   Please tell me which file I shall trace.

Trace? I asume you mean to ask what source code you need to browse and
understand what it does?

You didn't tell whether you are on X11 (Unix, including Linux, and
also Cygwin) or Windows, For X11, you need to look into Pango and
fontconfig. For Windows, just pango.

As you mention Tahoma specifically, my first guess would be that you
are on Windows, as Tahoma is the default UI font on XP, isn't it? One
thing that will interest you then is the builtin_aliases table in the
file pango/pango-utils.c in Pango. It contains the line:

 "tahoma = \"tahoma,arial unicode ms,lucida sans unicode,browallia
new,mingliu,simhei,gulimche,ms
gothic,sylfaen,kartika,latha,mangal,raavi\"",

which means that when GTK+ ask for "tahoma", that alias list then says
that it should use mingliu or simhei for Chinese, so I don't know why
you get "AR PL New Sung". (Note that entries in the built-in aliases
table can be overridden by an explicit pango.aliases file.) So maybe
you are on X11 anyway, and it's fontconfig that causes the fallback to
"AR PL New Sung"?

Note that how font and glyph fallback works in Pango on Windows is not
ideal at all. It would be much better if it worked more like on X11,
and if the "native" fallback information that Windows itself uses
would be taken into consideration, and no explicit alias table (either
the built-in or a pango.aliases file) would be needed. There are a
couple of bugs open against Pango on Windows for features that work on
X11 but not Windows. Unfortunately the concepts and code is rather
hard to understand and less documented than one would want, and the
code is also ad-hoc to some extent (I take partial responsibility for
that myself, of course)...

--tml



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]