Vertical Metrics Confusion

Primary tabs

12 posts / 0 new
Last post
Jess Latham's picture
Offline
Joined: 23 Jan 2004 - 6:11pm
Vertical Metrics Confusion
0

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: http://typophile.com/node/13081 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?

Jess Latham's picture
Offline
Joined: 23 Jan 2004 - 6:11pm
0

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

Maybe? Thanks for the pdf Karsten.

Karsten Luecke's picture
Offline
Joined: 6 Aug 2005 - 8:41am
0

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.

Karsten

Jess Latham's picture
Offline
Joined: 23 Jan 2004 - 6:11pm
0

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?

Jess Latham's picture
Offline
Joined: 23 Jan 2004 - 6:11pm
0

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?

Karsten Luecke's picture
Offline
Joined: 6 Aug 2005 - 8:41am
0

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

Chris Lozos's picture
Offline
Joined: 25 Feb 2004 - 11:00am
0

Tracking the words of the eminent Mr Luecke.

ChrisL

David Berlow's picture
Offline
Joined: 19 Jul 2004 - 6:31pm
0

"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. ;)

Cheers!

Jess Latham's picture
Offline
Joined: 23 Jan 2004 - 6:11pm
0

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?

Karsten Luecke's picture
Offline
Joined: 6 Aug 2005 - 8:41am
0

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.  :)

David Berlow's picture
Offline
Joined: 19 Jul 2004 - 6:31pm
0

"...do 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. ;)

Cheers!

Jess Latham's picture
Offline
Joined: 23 Jan 2004 - 6:11pm
0

Thanks for the help Karsten & David. : )