This is how we've been making fonts for Microsoft for many years:
1. The OS/2 TypoAscender and TypoDescender height should sum to the em unit total. I usually calculate this by starting with the actual ascender (Latin lc 'd' height) and actual descender (Latin lc 'p' height'), calculating their relative proportions, and proportionally adding to these to make up the difference between these values and the em height.
2. The OS/2 TypoLinegap should be the appropriate distance for desired default linespacing for the design. A lot of Latin type designers always set this to 20% of the em height; personally I prefer a slightly wider default linespacing, especially since the fonts I am making tend to be used in word processing or other situations with longer line length.
3. The OS/2 WinAscent and WinDescent values should define the non-clipping zone for the typeface, so should equal the height and depth of the tallest glyphs in the font, unless that total is less than the sum of the TypoAscender, TypeDescender and TypoLinegap heights. If it is less than that sum, then the WinAscent and WinDescent values should be increased to equal the sum of the Typo values; this enables compatibility in software that uses the Win values for linespacing. [In some cases, if the sum of the Win values is only slightly larger than the sum of the Typo values, I will either increase the latter slightly to match, or will reduce the former and allow a little clipping. If possible, I try to maintain compatibility between Typo and Win values because of the amount of software out there that still doesn't respect the fsSelection bit 7 setting.]
4. If the sum of the Win values exceeds the sum of the Typo values, then fsSelection bit 7 should be turned on. This signals to software that the Typo values should be used to calculate linespacing instead of the Win values. Despite the fact that it is twelve years since this bit was defined, there is still a lot of software out there that doesn't respect it, which is why I try whenever possible to make the Typo and Win values compatible.
5. If we have set fsSelection bit 7 to use OS/2 Typo metrics for linespacing, then we set the hhea Ascender, Descender and LineGap to match the corresponding OS/2 Typo values. If not, then we set the hhea Ascender to equal the OS/2 WinAscent, and the hhea Descender to equal the WinDescent, and the hhea LineGap to 0 (zero).
It’s great for Kannda. The jhu in Padyakke is made of a components made of components made of components made of glyphs.
I think a critical distinction must be made between composites and modular shape sources. This is a point that Luc(as) de Groot and I made — strongly, I hope — during the FLVI workshop session at TYPO Labs in May. There is a tendency in font tools now to try to conflate these two things, and they're really not conflatable.
Having reusable shapes within a font tool, and being able to nest them as James describes, is clearly useful in design sources. But a composite is a specific kind of entity within a TrueType glyf table. And I take the view that composites should be managed in sources in accordance with how they are handled in glyf tables, as a manufacturing process not as a design process.
This is something that FontLab — at least up to FLS5 — understood and handled sensibly. If you created a glyph and made a composite based on an existing composite, e.g. by identifying /Adieresis/ as the component, what you actually got was the composite of /A/ and /dieresiscomb/ that made up the /Adieresis/ composite, not a new component made up of components.
FLVI and other recent tools, as I say, have tried to conflate composites with more flexible mechanisms for reusable shapes in design soruces. In some cases, this is done quite cleverly, so that management of actual composites is handled by the font tool during font generation. The idea here is that the designer never needs to think about this, and can just rely on the tool to identify which instance of reusable shapes in the source can be written to a glyf table as composites and which should be decomposed and outlines merged. But if one is actively manufacturing TrueType fonts, one really wants control over composites as composites, not least because their positions are hintable.
Fonts are tools designers use to create. I think in the business of making art supplies, not art. We don't price pencils, rulers, X-Acto blades and art-board based on the number impressions the finished design will receive. The designer is free to use their art supplies without having to worry about the number of people who happen to glance at the finished work. What a pain in the ass that would be.
Type designers aren't telling stories with their typefaces. They're not changing minds, not moving hearts. Typefaces (other people's) can be beautiful and created with artistry and have a distinct voice. But there's no message. The designer pays me for a font, uses it to create something and it's theirs. I'm out of the picture.
I think it's fair to charge more if those tools are used by more people. It's fair to charge a bit more more for embedding fonts in a system that automatically creates words (web/app).
If my font makes a designer's job easier, then it was worth the money. Was the designer making a movie poster? A lost dog poster? None of my business.
One of the reasons Spanish typography didn't really take off for quite a long time was the spaniards commissioned almost all their books to the Plantin house. In the book 'Imprenta Real, fuentes de la tipografía española' (Bilingual Spanish-English) there is a well documented account of the Spanish crown - Plantin house relationship.
Once you've decided on what your target size is, make sure your spacing is as close to perfection as possible. Ideally this would be decided as you were drawing each glyph.
I would suggest, as a beginner, to ignore classes anyway. Go through all the major combinations: Uppercase to uppercase, lowercase to lowercase, uppercase to lowercase, figures to figures, uppercase to punctuation, lowercase to punctuation, figures to punctuation. This takes FOREVER and can be unpleasant, but it helps you to internalize the patterns of a typeface on a whole other level. You'll make mistakes that help you to remember what to look for in the future, when you do rely on classes.
Unfortunately scalable type does not really scale. Not without some intelligent alterations from the end user. Setting the default spacing of a font is your first decision. Text or display? Your choice. What size is the perfect out-of-the-box size your font will function in? There is your target. Once the default spacing is set, you have to adjust the kerning to compliment the default spacing.
As Ed Benguiat instructed me years ago. 2 letters can never be improperly spaced. Add a 3rd and now we have something to argue about.
Kerning is about acceptance. Accept that it's not going to ever work perfectly for every size or language. Accept that kerns intended to fix punctuation problems can cause others. Accept that most people won't notice if a font isn't kerned at all. Accept that some other type designers will think your kerning sucks because kerning is subjective. Accept that web designers will insist a font use minimal kerning to shave 1kb off of a font on a site that loads a 500KB of ad-tracking and 5MB of ads. And accept that graphic designers who think they care about kerning probably just use optical kerning for everything.
And I should add that I don't mean this acceptance in my usual nihilistic sense. Rather, I mean to explain that just because one can cram 6,000 kerns into every font does not make doing so meritorious, and liberating oneself from the notion of kerning everything will be beneficial to future sanity.