Components coordinates after interpolation

I’m building a font with components, and when I generate the fonts sometimes the same component can end up differently depending on where it is in space, in interpolated weights. This is because of rounding of the point’s coordinates.

My guess is that the component’s coordinates on interpolated fonts are not being rounded before they are decomposed.

Of course I can’t be sure if my assumption is correct, but either way, can this be solved?
This is a very annoying problem.

By the way. When I check for updates I get this error message “An error occurred in retrieving update information. Please try again later.”

Rounding coordinates tends to get tricky. Sometimes you will have the same component having different widths (1 or 2 units more/less) on the interpolated instances depending on where it is placed.

Here are some pictures to illustrate.

Here you can see a character made of two rectangles. Both are the same component. You can see the second master on the background.

Here you can see the component. Note that they are both on x=0 to minimize rounding errors.

Here you can see the interpolated character as output on a otf font. As you can see, the two rectangles have different widths.

I have even managed to get diferences of two units on more complex outlines, but that is harder to reproduce.

componentTest.zip (1.1 KB)

So many thanks for the sample file. I could fix the problem.

3 Likes