[Fontconfig] asian font configuration
Keith Packard
keithp at keithp.com
Thu Dec 9 07:27:46 EST 2004
Around 1 o'clock on Dec 9, Tor Andersson wrote:
> korean language detection is "broken". only two of all the korean fonts i
> have on my system are correctly identified as being korean:
That's probably just that the ko.lang file has too many glyphs. We can fix
this easily enough. Place all of your Korean fonts in a directory and run:
$ cd <directory containing korean fonts>
$ FC_DEBUG=384 fc-cache -f .
If there are only a few codepoints in ko.lang which aren't included in
your Korean fonts, that will list them as in:
ch(6) { 00c2 00d1 00dc 00e2 00f1 00fc }
This says the font in question (Watanabe) is missing six glyphs required
to support Chamorro. If there are more than 10 missing glyphs, it won't
list the individual glyphs; we'd have to change the libary to display them
all. When you get the list of glyphs, you can remove them from ko.lang,
rebuild the library and see if fontconfig now recognises the fonts
correctly.
If the font advertises support for a single Han language, and that
language is not Korean, then the language coverage checking code won't
even consider Korean when checking for language coverage. You can
distinguish this case by the absense of any 'ko(xx)' debug output in the
above list. That would be more worrisome; I haven't yet found any fonts
which mis-mark their Han language support.
If you can (legally) send the fonts in question along, I'd be happy to do
this work.
> the default configuration for fontconfig is a bit on the scarce side
> regarding font aliases and substitutions for asian fonts.
Thanks muchly for the additional data. The list of alternate common (but
non-free) family names is really nice to have.
I think I'd like to try them in a different part of the configuration and
see if they work for you. For example, as 'Kochi Gothic' is in mapping
from 'sans-serif' to a set of family names, it should suffice to place the
other gothic Japanese fonts in the mapping from family names to
'sans-serif'. From there, it will be mapped into the list of acceptable
'sans-serif' faces, including 'Kochi Gothic'.
Also, you shouldn't need to map specific languages to specific family
names; the language identification in fontconfig should suffice to select
among the families listed for the generic aliases, just placing the family
names in the generic 'serif', 'sans-serif', and 'monospace' aliases should
select them when the application specifies the cooresponding language.
For both of these, the guiding principle is that we do font substitution
in two ways:
1) For intentionally similar faces (Helvetica/Arial, Times/Times New
Roman), we have specific aliases mapping those names:
<alias>
<family>Times</family>
<accept><family>Times New Roman</family></accept>
</alias>
<alias>
<family>Helvetica</family>
<accept><family>Arial</family></accept>
</alias>
2) To set the preferred faces to use when an intentionally similar
face not available, we map first from the given family to one
of the generic names:
<alias>
...
<family>Times</family>
...
<default><family>serif</family></default>
</alias>
Then we map from the generic name to a list of suitable fonts:
<alias>
<family>serif</family>
<prefer>
...
<family>FreeSerif</family>
...
</prefer>
</alias>
If this stuff isn't working for you, we've just got bugs in fontconfig
that need fixing.
> i understand that due to the incapability of freetype to use CMaps to
> encode CID fonts, the ability to use CID-fonts with fontconfig is severely
> limited. however, it would be really really nice if fontconfig were extended
> in this area.
I don't have a lot of experience with Type1 CID fonts as I've tried to
stick to TrueType which supports Unicode so much more nicely.
If you know of code or even documentation which clearly shows how to get
from Unicode to CID stuff, it would be greatly appreciated.
> i think that fontconfig should look at the registry-ordering in the
> CID System Info dict and put to good use. add a property FC_CSI and
> put in a corresponding FC_LANG tag for CID-fonts.
If I can get from Unicode to CID, I can generate FC_LANG tags, but I'm not
sure what other information belongs in fontconfig itself; remember that
fontconfig is designed to provide information needed to select among
fonts, not all of the information needed once you have a font in hand.
-keith
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 228 bytes
Desc: not available
Url : http://lists.freedesktop.org/archives/fontconfig/attachments/20041208/fd0e1d6b/attachment.pgp
More information about the Fontconfig
mailing list