[DejaVu-fonts] [Fontconfig] [RFC] Fontconfig lang-specific font override

Owen Taylor otaylor at redhat.com
Mon Jun 12 08:51:36 PDT 2006


On Mon, 2006-06-12 at 17:25 +0200, Ben Laenen wrote:

> Okay, my personal views on this issue now:
> 
> Why I don't want to split DejaVu up in 
> Arabic/Persian/Cyrillic/Latin/Greek/Armenian:
> 
> Because I think it is fixing fontconfig or font renderers for it's 
> limitations in a wrong way (namely in the font, where it should be 
> fixed in fontconfig or the renderers).
> 
> Behold the three features which would make the whole discussion about 
> the "omnibus font" completely unnecessary:
> 
> * BASE tables
> * locl feature
> * and most importantly: more control in the way the aliases are defined 
> in fonts.conf
> 
> (well, basically only number 3 would be sufficient to stop most people 
> discussing about it)
> 
> let's explain:
> * BASE tables take care of the different metrics used in each script. 
> That closes the metrics discussion. See 
> http://www.microsoft.com/OpenType/OTSpec/base.htm

Sadly, I can't find the GNOME bug report where I spent considerable
time answering this. Quickly:

 - Yes, support for BASE would be cool in Pango, and the Pango API
   was designed to support per-script metrics for a font.
 
 - But if you design your font to require BASE support, it isn't 
   going to work well until the necessary support is added to all
   the underlying libraries and many individual applications that
   are making incorrect assumptions.
    
   Not all libraries will even have the necessary APIs in place.

(And it's not like we can save ourselves work by saying we'll only
handle omnibus fonts; we have to support the case of using different
fonts for different scripts, because that's how font designers normally
create fonts.)

> * locl feature: choose different glyphs depending on the current locale. 
> splitting between Arabic/Persian/Pashto/Urdu/Sindhi/Kurdish/etc would 
> be unnecessary if it would work.

I think this is a misunderstanding of the problem. While there may be
a few cases where there are incompatible glyph variants, the bigger
difference is usually more one of taste; different areas have different
typographic traditions.

> * more control in fonts.conf aliases. What I mean with that: if you 
> define "Sans" for example, being able to have different lists for each 
> locale, and to cut out ranges which should not be used when the alias 
> is selected (when you have Arabic locale, you could have "dejavu" as 
> number 1 in the list and e.g. cut out the arabic block). Some work has 
> been done on this apparently, I don't know if everything is possible 
> now.

Extreme fonts.conf complexity is seldom a real answer; a system
integrator can do a lot there to make the best possible 
Serif/Sans-Serif/Monospace, but anything that is surfaced to the user
has to be pretty straightforward. 

> I remember for example the Greek glyphs coming from a CJK script, which 
> looked horrible. One could just "cut out" these glyphs with some 
> setting in fonts.conf if the CJK font somehow comes up first. It also 
> solves the "circular dependency" problem that occurs when font A has 
> scripts V, W and X, and font B has script V, W and X, and you want to 
> use V and W from A, and X from B.
> 
> But it's not only the fact that addition of these things would make 
> splitting DejaVu completely unnecessary which makes me not like the 
> splitting. It's just horribly user-unfriendly too.
> 
> Imagine we did it the way some people proposed, and split up in every 
> script we have right now: a quick count says that that would already 
> mean more than 40 different files (and I'm discarding the experimental 
> font faces in DejaVu). Imagine some more scripts and script variants 
> and this would *literally* mean hundreds of fonts to install.

A little application of common sense would go a long way here; I don't
think 40 font files to handle different scripts is an enormous number,
(Windows ships considerably more than that), but nobody is saying that
there should be a font for every script block in Unicode. 

But you bring up a good point. Trying to take each script and create,
italic and non-italic variants of Serif, Sans-Serif, and Monospace is
pretty much a silly exercise. There is no Arabic typographic tradition
of using differences in slant to convey emphasis, as far as I know...

The arithmetic of script times variant really shows that putting all
scripts into all fonts is resulting in filling a lot squares in the
matrix that it doesn't make fill.

Regards,
					Owen




More information about the Fontconfig mailing list