RE: Single Unicode Font

From: G. Adam Stanislav (
Date: Thu May 24 2001 - 13:16:07 EDT

At 13:11 22-05-2001 -0700, Carl W. Brown wrote:
>There is no easy solution.

Yes, there is, though it is probably beyond the scope of this list.

Nevertheless, there is a very simple solution. It needs to be done
on the OS level: Create metafonts.

To the application, the metafont looks just like any other font.
It has a font name and serves the image of any 31-bit Unicode.
The application just asks for the glyph associated with any
31-bit character encoding.

The metafont either returns the proper glyph, or a substitute
(e.g., it will return the glyph of character 'z' when zcaron is
not available), or just the default box.

The application is forever freed from figuring out which font
to use for which section of Unicode, or from substituting characters
with diacritics with the same characters without diacritics.

To the system, the metacode is a user-configurable list of fonts.
It tells the system that when the appliaction asks for a character
within the Latin range, it needs to fetch the glyph from a specific
Latin font. If the application asks for a Devanagari character,
the system needs to fetch it from a different font. If the
application is asking for a Latin-2 character, say the zcaron
mentioned above, and no Latin-2 font has been configured into
this metafont, the systen will figure out it can use a 'z' without
the caron and will fetch it from the Latin-1 font.

In other words, huge all-of-unicode (AOU) fonts are a kludge. It is
absurd to have a separate AOU font for serif (e.g. Times-Unicode), and
another one for sans serif (e.g. Helvetica-Unicode), and yet another
for a typewriter face (e.g. Courier-Unicode). There would be too much
duplication. The idea of serif and sans serif may make sense to
Latin characters, even Greek, Cyrillic, etc. But perhaps it makes no
sense to some other scripts. Is there a typewriter version of
Devanagari? Or a serif version of geometric shapes?

Some sections of Unicode can be covered by the exact same glyphs no
matter what font type one is using. Others require different glyphs
depending on the desirable typeface.

The metafonts are a very simple solution to this problem: You could
have a metafont which could appear to the application as a font named
Helvetica-Unicode (just an example). When asked for a 'Z', the system
(not the application!) would return the letter 'Z' from a separate font
name Helvetica-Latin. If it asked for Zcaron, the system would return
Zcaron from a separate font named Helvetica-CentralEurope, or just
plain 'Z' from Helvetica-Latin if Helvetica-CentralEurope did not exist
on the system, or even if it did exist but were not configured into
the Helvetica-Unicode metanode. If the application asked for a Hun
character, the system would return it from whichever Hun code was
user configured into Helvetica-Unicode - Chinese, Japanese, Korean,
whatever the user wanted.

Now, say the application wanted to display the same characters in
Times-Unicode: It could be configured to look up into Times-Latin,
Times-CentralEuropean, and the same Hun font that Helvetica-Unicode
used--or a different one, of course, if that was how the user
configured it.

Several "standard" metafonts could be distributed with each OS. They
would have a default configuration. The average user would probably
just accept them as they are, while users with specific needs would
fine-tune them as necessary.

To sum up:

  The OS should choose the right glyph:
- An exact match if available;
- A substitute if an exact match not available;
- A box (or other default) if a substitute not available.

As far as I know, no existing OS does this. But this is the only
reasonable way of doing it in the future. I invite all OS manufacturers
to apply this idea to their systems.


--- finds a good domain for you
and checks for its existence.

This archive was generated by hypermail 2.1.2 : Fri Jul 06 2001 - 00:18:17 EDT