[Fontconfig] [RFC] target font model on Freedesktop systems

Nicolas Mailhot nicolas.mailhot at laposte.net
Wed Jul 24 12:43:19 UTC 2019


Le 2019-07-24 13:49, Akira TAGOH a écrit :

Hi Akira

> On Tue, Jul 23, 2019 at 10:45 PM Nicolas Mailhot
> <nicolas.mailhot at laposte.net> wrote:
>> No foo variable, foo hebrew, foo narrow, foo caption, just a single 
>> foo
>> with different available features (full variability or fixed states on
>> the default axis, real upstream provided states or fakes generated by
>> fontconfig at pango’s request[5], etc)
> 
> Such family name issue should be more likely a font issue. it could be
> worked around but there are a lot of patterns to drop such things
> heuristically and that may be huge costs to be automated; well, that
> may depends what the level of support you expect on it.
> Having something more or less would be useful though, I hope some
> moves happens in fonts side for that too.

I've given up on font creators cleaning up their mess. Microsoft and 
Adobe have been trying for a decade to get them to adopt common 
conventions, and they continue not fixing old projects, and diverging 
randomly on new projects. Each font tooling author and each font creator 
thinks he knows best.

If we agree that this OpenType theorical definition is our target to 
enable freedesktop apps to do interesting text things, the logical 
consequence is to perform naming fixing at the fontconfig level (and 
make sure text libs like Pango do not re-expose accidentally the 
upstream broken naming to apps).

Fixing at the fontconfig level means lots of naming heuristics (that 
you've started working on thank you very much). But, an heuristic is not 
a 100% solution by definition. So we’ll also need you help to define the 
fontconfig grammar, to tell fontconfig things, it can not guess alone.

This is also linked to Peng Wu’s request for an API to tell fontconfig 
what faces to fake using variable font axis. Because:
– such faking needs to persist on disk to be convenient
— the persisting needs to be done fontconfig-side, otherwise the faked 
faces are not shared with apps that do not use pango
— the next logical step is to preset convenient faked faces directly in 
the font package, so you don't need to redo-them in a GUI on all the 
computers one uses

So what Peng Wu sees as a fontconfig API need, I see as a fontconfig 
config file need.

Also, once variable fonts become more common, I'm sure everyone will get 
sick of faking the same font faces in all variable fonts, so someone is 
bound to ask for a generic fontconfig heuristic, that takes available 
axes, and auto-segment them at useful points (probably, using all the 
segmentation levels defined by Microsoft in the WWS whitepaper)

That’s why I’m requesting a formal agreement on the target. Lots of 
things become evident and easy to plan once the exit point is known. 
And, it will probably take years to get there (getting everyone on 
harfbuzz was defined as a target in the 2006 text summit IIRC, we’re 
finishing it now) but at least we’ll be all pushing in the same 
direction.

Regards,

-- 
Nicolas Mailhot


More information about the Fontconfig mailing list