Alternate glyphs and OpenType

James Puckett
Posts: 2,023
What’s the proper way to set up Latin initial and final forms in Opentype? Should I just use LIGA to replace glyphs that are adjacent to space?
0
Comments
-
I usually do the following:
@Letters = [ class of all letters ]; lookup initials { ignore sub @letters @ToInitials'; sub @ToInitials' by @Initials; } initials; lookup finals { ignore sub @ToFinals' @Letters; sub @ToFinals' by @Finals; } finals;
That has the advantage that it correctly deals with line-initial/line-final characters, whereas substituting after/before spaces will miss these.
Depending on whether I want the initial/final forms to be on or off by default I'll either put this in 'calt' or 'swsh'. 'liga' seems like an inappropriate place.
André3 -
Thanks, André!0
-
To some degree, it depends on your average end user and their preferred apps/needs. LIGA is probably improper for most situations, but if the goal is having the initial & finial forms on by default and if your customers are using an app in which CALT is not engaged by default (MS Word, for example) then LIGA may make sense. Even if it's considered atypical.
In most cases, I put this programming into CALT or SWSH; CALT if I want the feature on by default (and if customers are going to mostly be utilizing Adobe CS/CC), SWSH if I want the feature off by default.
Two other considerations:- In addition to the space, you may want to engage those initial/finial alternates when certain punctuation or other characters are bracketing text. Example: "Yes."
- Utilizing 'ignore' covers this kind of substitution a bit more thoroughly than a trailing/following space+character' substitution. Separate individual substitutions into separate lookups.
sub space a' by a.init;
You may want to experiment with:lookup initialalts { ignore sub @notspace @letters';
Where @letters would be the defaults, @initletters the initial alternate forms, and @notspace the class that contains all of the font's glyphs except for space, nbspace, and any other punctuation, quotes, etc. that should trigger the alternate character substitution when preceding or following the default version.
ignore sub @letters' @notspace;
sub @letters' by @initletters; } initialalts;<code>
1 - In addition to the space, you may want to engage those initial/finial alternates when certain punctuation or other characters are bracketing text. Example: "Yes."
Categories
- All Categories
- 46 Introductions
- 3.8K Typeface Design
- 480 Type Design Critiques
- 558 Type Design Software
- 1.1K Type Design Technique & Theory
- 647 Type Business
- 837 Font Technology
- 29 Punchcutting
- 513 Typography
- 119 Type Education
- 319 Type History
- 75 Type Resources
- 110 Lettering and Calligraphy
- 31 Lettering Critiques
- 79 Lettering Technique & Theory
- 540 Announcements
- 88 Events
- 112 Job Postings
- 168 Type Releases
- 171 Miscellaneous News
- 275 About TypeDrawers
- 53 TypeDrawers Announcements
- 120 Suggestions and Bug Reports