accented font support in Squeak

Richard A. O'Keefe ok at atlas.otago.ac.nz
Thu Oct 4 00:07:10 UTC 2001


I should clarify the way the Computer Modern fonts handle accents.

The "New Font Selection Scheme" in LaTeX supports several font
encodings.  From table 7.12 from the LaTeX Companion:
	T1	The "Cork" encoding
	OT1	The "Old" TeX encoding as defined in the TeXBook
	OML	The Old Math text encoding (ditto)
	OMS	The Old Math Symbol encoding (ditto)
	OMX	The Old Math eXtended encoding (ditto)
and there are quite a few others.
	
The OT1 encoding uses 7-bit codes, and does not contain any precomposed
accented characters.  What it _does_ have is accent characters that are
designed to be _added_ to base characters using the \accent primitive.

So it is possible (by design) to *generate* accented letters from the
"Computer Modern" fonts (which use the OT1 encoding), but it is not
possible to simply *extract* them.

The T1 encoding uses 8-bit codes.  For letters, it is an extension of
Windows 1252, which is an extension of Latin 1.  As the top 128 characters
are all letters in the T1 encoding (except for section, currency pound,
inverted question mark, and inverted exclamation mark), it is clear that
most of the symbols in Latin 1 and Windows 1252 have moved elsewhere
(mainly into the C0 control area, but some into the Math fonts).

A T1-encoded font contains a lot of precomposed accented letters,
so it *is* possible to extract all the Latin 1 and Windows 1252 accented
letters from such a font.

The "European Computer Modern" fonts, known as the EC fonts, are Computer
Modern fonts using the T1 encoding.

The easiest method of getting accented letters from Computer Modern
is therefore to start from the ec fonts.

Since the EC fonts, the Metafont program which constructs the bitmaps at
any desired scale, and the scripts that Metafont uses for this, are all
freely available and redistributable, this would make possible a
multiplatform version of Squeak automatically creating fonts that are
just right for the actual screen resolution, not for the late unlamented
one-pixel-equals-one-point resolution Squeak currently assumes.





More information about the Squeak-dev mailing list