Opentype --ARRRGH -- looking for a resource to answer a few questions

grod
7.Jun.2005 12.30pm
grod's picture

Either my Google-fu is failing me or I just don't know the proper search terms. I'm looking for a guide to opentype. Figuring out ligatures, old style figures etc is easy enough, just open a font that has them. But what about more complex substitutions? And how do stylistic alternatives work? For instance, say there is a font with regular caps and lowercase as well as small caps and "petit" or x-hight small caps. What if I want to create a hierarchy so that selecting one option gives regular and small caps while a second option gives small caps and x-height caps? What about contextual alternatives within these sets? How would one go about describing it in Fontlab in a way ID understands? Thanks.

i've been meaning to put together an OT_How-To in the TypoWiki. I'll try to answer all your questions there as soon as i get a chance. But first things first... do you have a copy of Leslie Cabarga's Learn FontLab Fast?


alas, no. And I'm rather broke at the moment. I look foward to reading your wiki post, though!


well in the meantime... you can start by reading the FontLab manual chapter on OpenType. It's actually very helpful and should answer most of your questions.


This is a good reference for opentype features.
http://www.microsoft.com/OpenType/OTSpec/ttoreg.htm

Also, the hierarchy of the features comes from the order that you put them in. For instance, if you put your standard ligatures before your small caps, you could end up with lowercase ligatures sticking out of small caps words. It took me a few minutes to figure out the best way to order things the first few times I tried it.


But what about more complex substitutions?
The FontLab manual references this. And you can take a look at Bickham Script Pro's feature file, I referenced it in my OT_How-To. Let me know if what i've written so far is helpful, Noah.

how do stylistic alternatives work?
if you have one alternate, do a simple one to one substitution:
sub x by x.salt;
if you have many alternates, do something like this:
sub x from [x.salt1 x.salt2 x.salt3];
In Adobe CS products stylistic alternates can be implemented in a few ways: contextually (automatically) with the "calt" feature or they may be accessed via the glyph pallete when you set up a "salt" feature. Adobe CS2 products have the added support of stylistic sets, which will allow the font users to select from pre-defined sets of alternate characters to be applied. Using a stylistic set might be the best/easiest way to go for accomplishing your smallcaps/petitcaps setting scenario, depending on how you want these to be applied.

What about contextual alternatives within these sets?
contextual alternates should be defined in the "calt," "clig," or "cswh" features. If you have contextual alternates for small caps and petit caps, you would want to put your calt feature after these features so that smcp is applied first and then your alternates come in to play.


Paul, very helpful, thanks!