I am seeking some clarification on a couple of different subjects, if you can bear with me. [FYI: I am using FontLab Studio 5, and Microsoft's FontTools on Windows Vista in production of an OpenType TT font]
First off, let's start at the beginning...of the font, that is; Microsoft's Recommendations for OpenType Fonts states that in TT(-OT) fonts, the first four glyphs must be .notdef, .null, CR and space to allow for the same version of the font to work on both Windows and Macintosh.
However I haven't seen this followed in any of the other fonts I have referenced (ACaslonPro, ChaparralPro, and others of the sort). I haven't decompiled the font files and looked at the tables, I merely opened the font files in FontLab. Have I overlooked something (besides the fact that they are Adobe fonts and not Microsoft), or are these fonts really without the specified glyphs?
I have added the above mentioned glyphs to my font already, but I was just wondering, for future reference (and dependent on the answer to the above): a) if FontLab Studio will add these glyphs automatically and in the correct placement if they are missing, or b) these requirements are only recommendations, and only need be followed for cross-platform compatibility? In other words, if one or more of these glyphs are omitted or missing, will that cause any problems (either for generation or usage)?
My second question is also about the Microsoft Recommendations; it states "Character U+000D (carriage return) should map to a glyph with a positive advance width." This also is not present in the fonts I have referenced. Should I make CR's advanced width; a) just a couple of units wide, b) make it's width something like the space character for example, or c) just not worry about it and leave it at zero?
My third question is in relation to building the kerning classes for an OT font. This is actually the question I wanted to ask, but I figured I would ask all of my silly questions at once in order to minimize your exposure to my ignorance. ;)
Just out of curiosity, how do you folks set up your kerning classes? Do you follow the convention of setting up an 'alphabet' styled set of classes, like this:
_a: a' aacute agrave adieresis
_c: c' ccedilla
_e: e' eacute egrave
Or do you follow Adam Twardoch's theoretical example and use something like this:
_flatflat: n' m h u ntilde uacute ugrave
_flatround: p' b
_roundround: o' oacute ograve
_roundflat: c' d e q ccedilla eacute
I understand that it is largely a matter of preference, and I would probably use the first example myself [mainly for aesthetic reasons], but the second example seems to me to be just a bit more efficient.
Also, Karsten, in another thread, stated the following:
"For my fonts, I strictly set up classes as either leftside or rightside classes in FLS, even if some leftside and rightside classes share the same set of glyphs -- and upon generating fonts I automatically 'merge' classes with identical content into a single class. This may illustrate that the separation helps avoid (or track down) errors during production but is not at all a requirement as regards OT fonts."
I am fairly comfortable with the concept and execution of classes in FontLab and I'm about to embark on creating my kerning classes, but was curious about the statement "...I automatically 'merge' classes with identical content into a single class..." above. I scoured the manual fairly well, but found no reference to this being a feature or option in FontLab Studio.
Is Karsten referring to something done manually when preparing to generate the font, like if I said; "I automatically go through each glyph and set the reference point to 0,0 as a fetish"? Or is this actually a "feature" somewhere that I have missed? Having that done programmatically would save a lot of fussy work after the classes have been set up, and avoid classes like these (in case I forget to 'merge' them):
_a_1st: a' aacute agrave adieresis
_a_2nd: a' aacute agrave adieresis
Any clarification on any of the above would be most appreciated. Sorry for the huge post, and thank you for your time and your insight.