Fine typography: Letters


Many of the effects defined in the Feature Registry are intended to mimic the great old standards of typography. This and the following chapters give a feature-by-feature description of the effects in the Font Registry.

Letter Case

The Letter Case feature type is used to specify changes to the case of letters (in scripts where case has meaning), in either a contextual or a non-contextual manner. The settings of this feature are exclusive: only one can be on at a time.

Upper and Lower Case

Glyphs:
None
Effect:
None
Editor:
TrueEdit will present a standard one-to-one non-contextual editor, such as that used in the "Small Capitals" example. This editor should be left blank: the Upper and Lower Case effect is used to remove other letter case effects, so it should not apply any case changes itself.
Notes:
The Upper & Lower Case selector must be the default setting as it leaves letters in whichever case the user has typed them. Selecting "Upper and Lower Case" should have the effect of removing any letter-case effects which have been imposed on text.

All Caps

Glyphs:
Lowercase and uppercase letters
Effect:
Substitutes uppercase glyphs for lowercase glyphs in all contexts.

Editor:
A standard one-to-one non-contextual editor, as shown in Example 1: Small Caps.
Notes:
If a glyph is not associated with its uppercase form in this table, it cannot be converted to uppercase by the "All Caps" effect. Any glyphs which do not have an uppercase form, such as ligature characters which were directly entered by the user, will be left unchanged and in lowercase.

[Sticky!]

Capitalisation effects cannot split up ligatures, so it is important that the 'mort' table is laid out in such a manner that capitalisation occurs before ligature formation.

All Lower Case

Glyphs:
Lowercase and uppercase letters
Effect:
Substitutes lowercase glyphs for uppercase glyphs in all contexts.
Editor:
A standard one-to-one non-contextual editor, as shown in the "Small Capitals" example.

Small Caps.

Glyphs:
Lowercase and small capital letters
Effect:
Substitutes small capital glyphs for lowercase in all contexts.
Editor:
Shown in "Small Capitals" example.
Notes:
In addition to small caps for the standard Roman alphabet set, the international glyphs and punctuation, if present in a small caps form, should be included in this table. Don't forget about oe and ae diphthong ligatures and lesser-used letters such as eth and thorn.

Because the Macintosh character set includes fi and fl ligatures which can be directly typed by the user, you will need to provide two rather odd glyphs: small caps versions of the fi and fl ligatures.
  • Using a font editor, copy the small cap outlines of F and L next to each other into a single glyph location. Repeat for F and I.
  • Using TrueEdit, map the standard Macintosh characters "fi" (shift-option-5) and "fl" (shift-option-6) to these new glyphs. This is so that when users select a stream of text which has these <shift-option> ligatures in it, a small cap version of FL and FI will be available.
Note that these pseudo-ligatures are only used for directly-entered fi and fl ligatures and not those created by GX from normal text. If the mort table is correctly laid out, capitalisation should occur before ligature formation, and since no capital or small-caps ligatures are defined in the ligature table, no ligatures will be formed.

Initial Caps

In this effect, each individual word is given a capital letter, as shown below:

[Sticky!]
Glyphs:
Lowercase, uppercase, word delimiters
Effect:
When a lowercase glyph immediately follows a word delimiter, that glyph's uppercase form is substituted for the lowercase glyph.
Editor:
A unique contextual editor with three live areas:


The editor has three live areas: for Spaces, for Lower, and for Upper. You can put entries into the Upper column only one at a time.
[Sticky!]
 
Notes:
This setting is intended to convert lower-case letters at the beginnings of words into upper-case. The idea is, a Lower immediately preceded by a Space will be changed to an Upper. Thus, spaces really should contain anything that delimits a word, including punctuation such as the open parenthesis shown above.
 
Also note that there are no exceptions to this behavior, so standard titling capitalization (ie., "of", "the" etc. left in lowercase) won't result.

Initial Caps and Small Caps

This effect is a combination of the "Initial Capitalisation" and "Small Capitals" effects: each word in the text is capitalised, then the lower case letters are replaced with small capitals.

Glyphs:
Lowercase, small caps, word delimiters
Effect:
When a lowercase glyph immediately follows a word delimiter that glyph is capitalised, other lower-case glyphs are replaced a small cap glyph for the lowercase glyph.
Editor:
TrueEdit 1.0 does not support this effect.

Ligatures

A ligature is a single symbol which represents two or more characters in ordinary type.

The Ligatures feature type permits selection from different ranges of ligatures. These settings are cumulative: the user can have any combination on or off.

Required Ligatures

Glyphs:
Component glyphs, ligatures
Effect:
When the component glyphs (up to three) occur together in sequence, a ligature glyph is substituted for the sequence.
Editor:
Shown in the "Common Ligatures" example.
Notes:
This setting should be used only for ligatures which are linguistically required (such as in Arabic).
[Sticky!]
Also, "required" doesn't mean that when the user sets this option the application program says to itself "Oh, ligatures are required for setting this text; I had better find a font with ligatures in it". The font is in control: this effect means "ligatures are required to use this font properly"

Common Ligatures

Common ligatures are ligatures which occur automatically for typographic reasons and should be in every GX font:

Glyphs:
Component glyphs, ligatures
Effect:
When the component glyphs (up to 3) occur together in sequence, a ligature glyph is substituted for the sequence.
Editor:
Shown in the "Common Ligatures" example.
Notes:
This effect should be used for ligatures which usually appear in well-set text.
 
Although pre-desktop typographic standards would say that ligatures such as those classed here as "common" are just as much required for fine Roman typography as anything could be, the lower standards of the typewriter era have prevailed, and these are left as a user option. However, the effect is easily selectable.
 
Even though "Common Ligatures" does not imply a default condition, you can still have this effect on by default. If you feel strongly enough about it, you can hack the 'mort' table using the hex editor to guarantee that the common ligatures cannot be turned off.

Rare Ligatures

Rare ligatures are glyphs which are ornamental and interesting, but should be used with discretion. For a serif font they include:

For a sans-serif face they include:

These are, of course, particular to an individual font design and the designer's taste: becuase these are purelyornamental ligatures, there is no requirement for all or any of these ligatures to be present in a font.

Glyphs:
Component glyphs, ligatures
Effect:
When the component glyphs (up to three) occur together in sequence, a ligature glyph is substituted for the sequence.
Editor:
A standard many-to-one ligature editor, as shown in the "Common Ligatures" example.
Notes:
This setting should be used only for decorative or unusual ligatures.

One way of deciding which ligatures are "common" and which are rare is to class as "common" those ligatures which replace glyphs which would otherwise collide or kern badly. Any other ligatures, such as those with odd forms or prominent connecting strokes (such as "ct") can be grouped together as "rare".

When using a font which contains ligatures the "Common" ligatures will normally be turned on, while "Rare" ligatures will be usually turned off.

Logos

[Sticky!]

Glyphs:
Component glyphs, ligatures
Effect:
When the component glyphs (up to three) occur together in sequence, a logotype glyph is substituted for the sequence.
Editor:
A standard many-to-one ligature editor, as shown in the "Common Ligatures" example .
Notes:
This setting should be used only for ligatures representing logotypes (e.g. trademarks).

Rebus Pictures

[Sticky!]

Glyphs:
Component glyphs, ligatures
Effect:
When the component glyphs (up to 3) occur together in sequence, the sequence is replaced with a rebus picture glyph. For example the word "I" could be replaced with a picture of an eye.
Editor:
A standard many-to-one ligature editor, as shown in the "Common Ligatures" example.
Notes:
This setting should be used only for ligatures that are pictures representing whole words or syllables.

Diphthong Ligatures

Diphthong ligatures include: oe ae AE OE.

Glyphs:
Component vowels, diphthongs
Effect:
When the component glyph pair occurs in sequence, a diphtong ligature glyph is substituted for the sequence.
Editor:
A standard many-to-one ligature editor, as shown in the "Common Ligatures" example.
Notes:
Diphthongs are single glyphs which combine two vowels (although the editor is the same as the others and can take three inputs if forced). Unlike most ligatures, however, diphthongs often have a particular linguistic relevance. The most common ones are æ, oe, AE, and OE. Different languages treat diphthongs differently. This effect lets fonts form them automatically without making the user know the hidden keys.
 
When using diphthongs, however, the system is not very clever. Because it cannot have Greek, Latin, Dutch, French, and miscellaneous Scandinavian dictionaries inside, a dipthong is applied for every occurance of the corresponding vowel pair, and not just those in specific words. What happens in a sentence like
"At the hoedown, between dances, Boethius talked about the Boer war, and I told him how Caedmus brought the alphabet to Boeotia."

is up to the user - normally he or she would select words which should have diphtongs (or even individual pairs of letters) and apply the "Diphtong Ligatures" effect just to those selections.

 
The adventurous can, of course, add contextual diphthongs via the hex editor.

 

In addition to all of the above, some ligatures may lend themselves to having alternate swash forms, for line endings or beginnings, such as: ft, ct, st, nt, tt, oe, ae, AE, OE. Thus, in the general order of the 'mort' table effects, diphtong and ligature formation should come before swashes.

Overlapping Characters

The Overlapping Characters feature is intended to provide "clean-up" assistance to fonts which find themselves with too many swashes which run over each other. The feature has one setting, which can be either on or off.

The Overlapping Characters feature type permits the user to prevent the collision of long tails on characters with other characters. It is typically used in combination with the Smart Swashes feature, discussed in a later section.

Prevent Overlap

Example

Glyphs:

Swash forms, normal forms, colliders
Effect:
When a swash form glyph is followed by a collider glyph within a specified number of glyphs (determined by the threshold), the normal glyph is substituted for the swash form glyph.
Editor:
As shown in the "Prevent Overlap" example.
Notes:
This feature allows only the left-hand glyph to revert to a normal form. That's because of the way TrueEdit implements it. You could, however, make a corresponding table processed in descending glyph order to handle the right-hand glyph, then use the hex editor to tie them together.

Typographic Extras

The Typographic Extras feature type represents a collection of small effects that are associated with fine typography.

The features are cumulative: none, all, or any combination may be on at one time.

Hyphens to Em Dash

This feature is designed to address the long-held typewriter practice of representing a long dash by two hyphens by changing them to match the typographic practice of using the long dash.

Glyphs:
Hyphen, em dash
Effect:
When two hyphen glyphs appear together, they are replaced with a single em-dash glyph.
Editor:
A dedicated editor with two live areas, for exactly two glyphs: the hyphen and the em dash.

Hyphen to En Dash

This feature is designed to automate two uses of the en dash. An en dash is used, with spaces on either side, to represent a pause or to set off a clause. It is also used, without spaces on either side, to represent a range of numbers or dates.

Glyphs:
Hyphen, em dash, spaces, digits
Effect:
When a hyphen glyph occurs between two space glyphs or between two digit glyphs, substitute the en dash glyph for the hyphen glyph.
Editor:
A dedicated editor with four live areas:


The top two areas are reserved for two specific glyphs: the hyphen and the en dash. On the bottom is an area for spaces, and on the right for digits. Remember to include breaking and non-breaking space glyphs, and all cases of numerals present in the font.
Notes:
The Mathematical Extras setting "Hyphen to Minus" also affects a hyphen which occurs between spaces. If both effects are on, then whichever one is first in the 'mort' table will win.

Unslashed Zero

Glyphs:
Slashed zero, unslashed zero.
Effect:
Substitutes unslashed zero glyphs for slashed zero glyphs in all contexts.
Editor:
A standard one-to-one non-contextual editor, as shown in the "Small Capitals" example.
Notes:
This feature is intended for use with some programming-oriented fonts which have a slash through the glyph for the digit zero. This slash helps distinguish the zero from other similar glyphs (such as the capital letter O), but in cases where there is little ambiguity it is preferable to use the unslashed zero.

This setting makes sure the unslashed zero is always used, even if the font designates the slashed zero as default. Of course use of this effect assumes that the unslashed zero actually exists in the font.

On the other hand, if the font has a slashed zero, but the designer wishes to have theunslashed zero as the default zero glyph, then the "Unslashed Zero" feature must be turned on by default. This will mean that non-GX users will get a slashed zero, rather than the unslashed one, but that's something they'll just have to live with until they upgrade.

Form Interrobang

Glyphs:
Exclamation mark, question mark, interrobang
Effect:
When an exclamation mark glyph and a question mark glyph appear together (in either order), a single "interrobang" glyph is substituted for the pair.
Editor:
TrueEdit 1.0 does not support this effect.
Notes:
The interrobang is a punctuation mark invented in the 1960s which combines the form and the sense of an exclamation mark (or "bang") and a question mark (or "interrogation mark"). The name is pronounced "interro'bang", incidentally.

Smart Quotes

This feature is designed to address the typewriter practice of using neutral quotes instead of the more appropriate "curly" quotes.

Glyphs:
Neutral quotes (' "), open quotes, close quotes, spaces.
Effect:
All neutral quote glyphs are changed to either open quote glyphs or close quote glyphs. When a neutral quote glyph appears after a space glyph or after an open quote glyph, it is changed to an open quote glyph. Otherwise, it is changed to a close quote glyph.
Editor:
There is no editor for this effect. TrueEdit collects the necessary information automatically when you add the effect.
 
TrueEdit uses the standard Roman TrueType glyph ordering to identify the neutral quote, open quote, and close quote glyphs. It uses the font's properties table (prop) to identify the spaces and other whitespace glyphs. If the font has no properties table, TrueEdit can also use the standard glyph ordering to identify the whitespace glyphs. If this happens, you will see the message below:

Because TrueEdit depends on the standard Roman glyph ordering to implement this effect, it is not recommended for non-Roman fonts.

 

Notes:

Apostrophes are neither recognised nor handled by this effect: in most cases an apostrophe is treated as a neutral quote, which gives correct results for possessive cases of nouns and for contractions. Words which begin with an apostrophe, such as abbreviations like 'cos, are not handed correctly (the apostrophe is changed to an opening quote). Fortunately, such words are rare in written English. This is just as well, because the Smart Quotes feature makes it very difficult for the user to insert proper apostrophes manually in these cases, although as a last resort, the keyboard "closing quote" character (shift-option-]) can be used.

The results of the Smart Quotes effect are typographically correct for most English language usage, but may not be correct for other languages. Even if the other language uses the same punctuation for quotation as English, the problem of words starting with apostrophes still arises.


Unfortunately, quotation marks are the one typographical feature that varies wildly, even across closely-related European languages. Currently, TrueEdit's implementation of the Smart Quotes feature has no concept of non-English language punctuation, so users of these languages may still have to put in quotes manually when using fonts developed with TrueEdit.




Arleigh Movitz (movitz@apple.com)
Dave Opstad (opstad@apple.com)
Kristian Walsh (walsh.k@euro.apple.com)