Matching with an FC_CHARSET works for me. No idea if what I'm doing is right, but roughly what I do is:
- Identify script for each character (using http://unicode.org/Public/UNIDATA/Scripts.txt)
- Split runs based on script (so that no run has two different scripts)
- Build an FC_CHARSET for the run.
- Match and use the resulting font.
So if a font didn't define all the characters in a script, I might still get some missing glyphs. But it seems to work reasonably well. If I wanted to make sure all characters had glyphs, I could probably so a second round of splitting where adjacent characters for which no glyphs was found were broken off into a separate text run and rematched. So far I haven't bothered.
Hope that helps.
On 19 January 2015 at 22:51, Sam Varshavchik <mrsam@xxxxxxxxxxxxxxx> wrote:
Akira TAGOH writes:
That way is what Pango do to figure out the glyph coverage in fonts. they convert the result into their own structure so that it's not that easy to find out a font that have the certain coverage in fontconfig only.
You mean match by FC_CHARSET? That was the first part of what I'm trying to figure out, whether creating an FcCharset containing the unicode characters in the text, and then trying to match a font using it, will work.
On Mon, Jan 19, 2015 at 12:51 PM, Sam Varshavchik <<URL:mailto:mrsam@courier-mta.com>mrsam@xxxxxxxxxxxxxxx> wrote:
I'm learning the fontconfig API, and I'm trying to figure out how to do
the following.
I have arbitrary Unicode text, and I would like to match a reasonable font
to use for displaying it. It's possible that I might need more than one
font if, say, the text is a mixture of Latin characters and Asian
ideographs.
I see that FC_CHARSET is an option to FcPattern. Does this sound like I'm
on the right track:
A) Construct an FcCharset and add all unicode characters in the text to
display
B) Add it as a FC_CHARSET value to an FcPattern.
C) Use FcFontList() to search for the matching font.
The developer reference contains the following statement: "Fontconfig uses
some of these properties for font matching and font completion. Others are
provided as a convenience for the application's rendering mechanism."
So, I guess I'm trying to clarify whether I can use the FC_CHARSET
property to search for fonts that have coverage for my unicode text, or if
this a non-searchable property, only.
_______________________________________________
Fontconfig mailing list
Fontconfig@xxxxxxxxxxxxxxxxxxxxx
http://lists.freedesktop.org/mailman/listinfo/fontconfig
_______________________________________________ Fontconfig mailing list Fontconfig@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/fontconfig