Re: Font lookup ranges [was Re: Notes on Pango Xft backend]
- From: Owen Taylor <otaylor redhat com>
- To: Keith Packard <keithp keithp com>
- Cc: fonts xfree86 org, gtk-i18n-list gnome org
- Subject: Re: Font lookup ranges [was Re: Notes on Pango Xft backend]
- Date: Mon, 3 Jun 2002 18:12:54 -0400 (EDT)
Keith Packard <keithp keithp com> writes:
> > b) Call FcFontSetSort() separately for each language, and somehow
> > influence the sort order; what we'd like to do is make including
> > the specified language tag have an weight:
>
> Language tags are currently given greater weight than family names, but
> given two families which both support the requested language tag, they
> will be ordered by family name.
>
> This algorithm is used by Mozilla and works reasonably well, as you say
> there are still some significant issues. One important detail -- language
> tags are only used when attempting to disambiguate fonts with Han glyphs;
> in all other cases, language tags are not passed to the matching routine
> at all.
Hmmm, limiting font tag usage to CJK definitely would reduce the
possible harm that could result; and probably makes sense. (At
least initially.)
Pango would simply contain a small table mapping language tags
onto FC_LANG attributes to add.
> > c) Pango adds the language tag to the pattern it feeds to
> > FcConfigSubstitute, and fonts.conf does pattern matching magic
> > to provide a different "Sans-serif" alias for every language.
> >
> > Can't say I like this too much:
> >
> > - Requires lots of careful configuration (more than just
> > slapping extra fonts into "Sans-serif".) Configuration is bad.
>
> I don't think it requires careful configuration; the config file just
> needs to list all of the fonts that are 'sans-serif' in the definition of
> the 'sans-serif' alias. Once placed in the pattern, the language tag will
> force the appropriate one to be selected in preference to the others, and
> the preference order in the sans-serif alias definition will refine the
> selection.
>
> Do you think this would work:
>
> if (language_tag == Han language)
> PatternAddInteger (FC_LANG, language_tag)
> FcConfigSubstitute
> FcFontSetSort
This is fine; I thought you were suggesting something that
would involve conditionalizing on language in fonts.conf.
> with the config file containing:
>
> <alias>
> <family>sans-serif</family>
> <prefer>
> <family>MS Gothic</family>
> <family>AR PL KaitiM Big5</family>
> <family>Norasi</family>
> <family>Garuda</family>
> <family>Arial Unicode MS</family>
> </prefer>
> </alias>
>
> Ask for "sans\-serif:lang=traditionalchinese" and this will pick
> "AR PL KaitiM Big5" instead of "Arial Unicode MS".
I'm worried that with this same configuration file
We have:
- User is running in ja_JP locale so the default language tag
for Pango is 'ja-jp'
- They pull up a Traditional Chinese document (not itself tagged)
in their word processor and see that it is a mix of MS Gothic and
AR PL KaitiM Big5.
- They select "AR PL KaitiM Big5" from the font menu.
- The display doesn't change because Xft is still finding
MS Gothic which matches the language tag.
If the user has explicitely chosen a font, and it has the characters,
I think there is an obligation to use it.
Regards,
Owen
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]