Question:

I'm having trouble with metrics, and I've never encountered this before. When I manually type in the right and left sidebearings, say 45 on the left of H, and then 45 on the right, it will change the second number I have entered to 46 or 47. If I type in 45 on the right again, it will change the left sidebearing to 46 or 47. Is there a setting that's causing this?

Answer:

This may happen due to the rounding. FontLab always rounds glyph sidebearings and the advance with to the integer values. And all three values are connected to the glyph bounding box width. The general formula is: AdvWidth = LSB + BBoxWidth + RSB (500 = 100 + 300 + 100).


If you see something strange in the equality, for example, you have 501=100+300+100 or 500=100+300+99, this means you have non-integer coordinates of glyph nodes (the Bbox width is not really 300). There is nothing bad in having this in the font but if you are a perfectionist you need to turn off Contour > Coordinates > Preview Rounding, turn on View > Show > Coordinates and change node coordinates to integers:



https://recordit.co/bhadVtRfuV

Another thing which may seem strange is the bound advance width and not equal sidebearings. For example, you want the width of all your glyphs be the same and equal to 500. So you make it a bound width: =500

Now when you change the LSB 34 to 35, FontLab changes the RSB to 34. The formula is the same: AdvWidth = LSB + BBoxWidth + RSB (500 = 34 + 431 + 35). FontLab cannot change the AdvWidth (it is defined as locked) and it cannot change BBoxWidth 431 so it changes the RSB.