discuss-gnustep
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: System fonts


From: Jeff Teunissen
Subject: Re: System fonts
Date: Thu, 26 Aug 2004 05:43:52 -0400

Pete French wrote:
> 
> > That still does not explain why the default font should be changed,
> > especially to the much-uglier FreeSans. It's unhinted, fuzzy, and generally
> > a pain to look at, much less use.
> 
> All those points are true, but more ugly does not mean less useful.
> 
> > If you need non-Latin 1 characters (don't confuse this with encoding), use a
> > different font.
> 
> Yes, but, aside from americans maybe, thats pretty much everyone on
> the planet isnt it ? Defaults should be the most useful surely, not
> necessarily the prettiest. Shipping a system with large chunks of
> characters missing by default seems foolish when there is a workable
> alternative.

There are 267 glyphs in the standard Vera font set, covering ISO Latin 1 and
ISO Latin 15 (The Latin 15 character set is the same as Latin 1 but contains
the Euro symbol instead of the "stone" generic currency symbol), plus
accents for creating composite glyphs and some math symbols.

ISO Latin 1 contains characters for the Western European languages. English,
French, Portuguese, Spanish, Italian, German, the Scandinavian languages,
and so on. That is most of the people who use GNUstep.

It doesn't contain Cyrillic characters (I think that's Latin 2, which has
multiple encodings -- ISO 8859-2, KOI8-R, etc), which are used in many
Eastern European languages. Some people in countries writing in languages
that use the Cyrillic characters also use GNUstep.

It also doesn't have Greek, Modern Hebrew, Arabic, Devanagari, Bengali,
Thai, Chinese, Japanese, or Korean.

It is a well-hinted font, with wide characters and spacing.

The FreeSans distribution _I_ have (which may be different from what others
have, because many people distribute different versions of this font)
contains 1932 glyphs covering Latin 1/15, Cyrillic, what looks like
Georgian, Modern Hebrew, Thai, Devanagari, maybe Bengali, a few languages I
don't recognize, math symbols, and Japanese (hiragana). No Chinese, Japanese
(katakana), or Korean.

It is an unhinted font, with semi-narrow characters and spacing.

Now, to the meat of the problem:

The Vera font set looks good at large and small sizes, thanks to hinting.
Because Vera is wide and tall, if the user changes the system font to
FreeSans everything will look relatively fine. The glyphs will be smaller
and more closely packed, but everything will fit on the screen -- because
the system font for the developer (at least, when developing the interface)
is presumably still Vera.

If you go at this from the other direction (the default is FreeSans),
FreeSans becomes the only font that *can* be the system font for many cases,
because it is so narrow and closely-packed. Vera becomes useless for
everyone.

So, onto the suggestions:

If you are creating a UI that always contains non-Latin1 text, use Free*
fonts (FreeSans, FreeMono, FreeSerif) for the whole UI and place that
requirement in the code or .gorm file.

If you are creating a UI that doesn't normally contain non-Latin1 text, do
not set any specific font faces in the UI (whether in code or in a Gorm
file) and use a Vera font as your system font while you are developing that
UI. If the user writes a non-Latin1 language, they should switch their
system font to one of the Free* fonts -- which will almost certainly have
smaller metrics than Vera, allowing all of the text in that UI to
comfortably fit inside the labels, textfields, and the window without having
to resize anything.

It's not perfect, but it's better than setting the default system font to
FreeSans.

-- 
| Jeff Teunissen  -=-  Pres., Dusk To Dawn Computing  -=-  deek @ d2dc.net
| GPG: 1024D/9840105A   7102 808A 7733 C2F3 097B  161B 9222 DAB8 9840 105A
| Core developer, The QuakeForge Project        http://www.quakeforge.net/
| Specializing in Debian GNU/Linux              http://www.d2dc.net/~deek/




reply via email to

[Prev in Thread] Current Thread [Next in Thread]