Vertical Metrics Confusion

bvfonts's picture

I decided I wanted to configure the vertical metrics (TypoAscender, TypoDescender, etc.) instead of having fontlab do it manually. I'm very confused and after reading this: even more confused.

Here's a picture of the metrics. One question I have is: should the TypoAscender + TypoDescender + TypoLineGap equal the UPM size of 1000? I have many other questions but I'll start there.

Should I give up and go back to having it calculate the values automatically?

bvfonts's picture

After reading the pdf that Karsten wrote I think I got it.

Maybe? Thanks for the pdf Karsten.

k.l.'s picture

Yes, this is ok (A). Possibly adjust values a bit as described in footnote **.

Another way (B) is what John Hudson describes in the Vertical Metrics How-to:*
            "ideal" values:
       TypoAscender = Ascender = 750
       TypoDescender = Descender = -250
       TypoLineGap = LineGap = 200**
            maximum extensions found in the font/family:
       WinAscent = 850**
       WinDescent = -350**
This is the way these values are defined in latest Adobe and Microsoft fonts.
In this case, it is recommended*** to also set the OS/2 table fsSelection bit 7 and increase the OS/2 table's version to 4. This will tell applications -- those that understand this setting -- that they should use Typo... values rather than Win... values to calculate the default line-to-line distance. (Please note that as soon as OS/2 table’s version is 4, bits 7-9 need to be set or not set intentionally because whether these bits are 0 or 1 has a special meaning. More in the OS/2 table and name table specs.)

So both ways are possible, but for simplicity's sake I intend to either withdraw the PDF or change it so it reflects John Hudson's recommendation and Adobe's/Microsoft's practice, i.e. (B) -- much easier to describe and understand.

* Especially see the "Update to the Update to the Update".

** If you set WinAscent/WinDescent and Ascender/Descender e.g. to 800/-400 or 850/-350 (maybe future additional diacritic letters will get taller?), and TypoLineGap to 200, you get an "ideal" default line-to-line distance of 120%, comparable to setting 10/12pt.

*** There are fonts that don't, and since your values match the equation
       TypoAscender - TypoDescender + TypoLineGap
       = WinAscent - WinDescent
there's nothing to worry anyway.


bvfonts's picture

I'm confused again. Maybe I should go back to selecting: Calculate values automatically. Does anyone know exactly how those values are calculated automatically? Can I trust the values that are calculated automatically?

bvfonts's picture

Using ttx to see how fontlab calculates the vertical metrics. This is how it looks (I typed in manually what the ttx xml file printed out):

If I follow the next to the last paragraph on pg 303 of the FL manual. I'm guessing it would look like this:

and the last line says as an alternative I could choose to set the LineGap to match the TypoLineGap
Does anyone have a list of applications and operating systems that each vertical metric set is used in so that I can do my own testing?

k.l.'s picture

No need to be confused. In essence what you did in your second post was ok!

dezcom's picture

Tracking the words of the eminent Mr Luecke.


Rob O. Font's picture

"This is the way these values are defined in latest Adobe and Microsoft fonts."
But not all Adobe and Microsoft fonts are defined thus, and future Adobe and Microsoft fonts may not be, and this ideal/default is also the same as it was in Fontographer 1.0.

As I think we established some time ago, though I'm sure someone will correct me if I forgot, the Windows values were designed to inform applications of how much vertical space they have to write, (and erase) when composing text of a particular font. Some apps then took that for the em and confusion bestrode the issue.

bvfonts, there are two options for the type designer, not as clearly put forth as they could be.

Both are based first on the principle that the EM is split by the baseline at a ratio of 3 above and 1 below. Altering this ratio is done for all sorts of reidealizational purposes. And second that line gap is better expressed as "ideal leading"

Then one option says; Design your font on the 3/1 em but Put Guides at yyy and -yyy and make sure all glyphs Stay Inside the Lines without much if any padding. I think this is the "something to worry about" option.

And the second option says; Design your font on the 3/1 em, make reasonably sized accents and other kerns as the y dimension is filled up and down, and then push the button for Windows values. And I think this, is the "nothing to worry about" option, if it's not too late. ;)


bvfonts's picture

When you say "push the button" do you mean the recalculate button in fontlab and use those values for winasc and windesc? Do you think the Typoasc and Typodesc values should equal asc and desc in the key dimensions?

k.l.'s picture

D.B.: Yes! Vertical metrics -- or the relation of upm, ascenders, descenders, ideal leading -- were a trivial issue if type designers would only tame themselves and think of it before even starting to draw. But this seems more a wish than reality. You read the UPM=1100 thread too.  :)

Rob O. Font's picture

" you mean the recalculate button in fontlab..."

...yes sir!

"You read the UPM=1100 thread too..."

...couldn't help it, voodoo is trying to eclipse reason. ;)


bvfonts's picture

Thanks for the help Karsten & David. : )

Syndicate content Syndicate content