GNU FreeFont
Why Unicode fonts?
Why should we put characters from lots of different writing systems into a single font at all? How good does such a font need to be? The answers to these questions lead to a policy for including character ranges into GNU FreeFont.
inclusion of character ranges
What glyphs go into a Unicode font? There are two extreme views.
One is that glyphs in a font should comprise a unified design entity.
This makes very good sense only within a single language script. Different script systems, such as Latin, Arabic and Thai, have very different typesetting traditions and conventions.
When mixing, say, French with Thai, what exactly does it mean that they should be in the same style? Does it require an artist, with deep knowledge of typesetting in all the languages involved, to achieve an ideal aesthetic harmony?
The other extreme is that a font should just have a glyph for each slot in its stated character set—never mind how well different scripts mix, and never mind aesthetics generally.
But if text from different languages is never to be mixed, one has to ask, why are the glyphs in one font? Why put characters from many languages (and technical symbols as well) into one font? Why not put them into separate files, call the fonts by separate names?
That is a common approach, but then in an application somebody has to choose the fonts for each run of text. This gets very messy in text with alternating text or lots of symbols. Software can also automatically choose a font (and this too is very common) but of course does a poor job of matching fonts aesthetically.
Either extreme leads to an unworkable absurdity. Somehow a balance must be struck.
It is reasonable that mixed text from a single font should look like it somehow belongs together. At the very least, glyphs from different ranges within one font should be of commensurate size and weight, and the level of decoration should be similar (e.g. serifed vs sans-serif).
The utility of such a collection is to permit convenient insertion of special symbols and text from varied writing scripts, without groping for fonts that contain the desired symbols, and without struggling to find a good stylistic match.
beauty and resources
The usefulness of a font is not independent of its beauty. A font, after all, is an artistic creation (whether a reader of text in the font is aware of it or not). But if a font is really ugly people will not find it useful.
In this project, we can expect that the contributors do not usually have the time or skills of artisans in a professional foundry. This is typical of the relationship between free and bought software. We do the best we can, and for some purposes, it is pretty good.
policy regarding inclusion of character ranges
We are lead to this policy for including characters in FreeFont: We assemble as many freely-licensed Unicode character ranges as we can, subject to the criteria that they are:
- useful for their primary purpose, and
- look pretty good together.
following Unicode
There isn’t much argument against Unicode as a whole. Overall a standard was needed.
Some unfortunate choices were made in individual ranges of Unicode; these cause technical complications. In a few places there are ongoing disputes, and for a very few characters there are outright errors. But an imperfect standard is better than no standard at all, or a bunch of conflicting standards.
The policy for FreeFont will be to follow as closely as makes sense the Unicode standard for whatever characters are included.
In cases of outright errors, the error should be noted and reported to Unicode, and the font should of course do the correct thing. Disputes are of course not our job to resolve, but if an option is to fall back to an undisputed version of the standard, that would be preferred.
The “Public Use” areas of FreeFont are being used for auxiliary glyphs and parts of glyphs, which are used internally by the font as glyph references, and replacements, such as ligatures. The policy is that glyphs in these ranges are not intended to be accessed directly as characters, as to do so amounts to an amendment to the standard.
Regarding the sample glyphs published with the standard, we take them as a reference always to be considered, but not as archetypes of how the character glyphs should look. A character may be represented in an endless variety of styles, for example, while the sample glyph can reflect only one style. Furthermore the sample glyph may really not be the best form for use in FreeFont.
practical applications
A font spanning many Unicode ranges can be helpful in several practical applications. For instance, it can
- provide some scripts and characters that are hard to find
- ease installation of base support for many languages
- facilitate documents mixing symbols and language scripts
- improve appearance web pages with mixed symbols and scripts
arguments against “pan-Unicode” fonts
Many arguments have appeared in recent years against fonts that cover many ranges of Unicode (sometimes incorrectly referred to as “pan-Unicode” fonts).
Two main points are raised in this regard. One is that there is no way to match styles of one script with those of another, so that any collection will be an sub-optimal mixing of styles. The other is that modern font-rendering software will automatically locate a glyph for a given character among all the fonts installed on the system. While both of these points are true, we don’t count them as reasons not to assemble a font such as FreeFont.
The two points are in a sense contrary. The first states that such a font would inevitably produce aesthetically displeasing text, the second states that the text produced by automatically mixing glyphs from effectively random fonts produces adequate results.
While modern font-rendering software will indeed find a glyph for a given character (so long as that character is among the fonts installed on the system) it will often find a glyph from a font that matches the surrounding font very poorly. It works for some purposes, for some people, but it often makes terribly ugly choices, making it useless for other purposes. Using a single Unicode font such as FreeFont can actually help such systems, by providing compatible glyphs for many ranges—while the font rendering system still serves to find those characters that are missing.
It is very true that there is little correspondence of typographic styles between different language scripts. Moreover it is very unnatural to impose upon one script a style that is traditional for another. So what is the solution to text from mixed languages? Some kind of compromise is required. It is possible to balance optical size and weight of characters of different scripts, as well as some sense of degree of decoration. So one can always carefully choose fonts that go well together, to achieve a fit that looks good. But if this can be done with multiple fonts, it can also be done in one font. (Not to say it’s easy.)
Once again, the goal of FreeFont is to collect glyphs that look pretty good together.