I am having the following problem: I am making a family with different x-heights. In some masters the cap-height equals the ascenders’ height (only one blue zone needed) but in others the ascenders are quite longer and therefore I need two blue zones. As I understand all masters should have the same number of blue zones for them to interpolate well. What I did then was to make two overlapping blue zones in the master with short ascenders but now I found out that when I generate the font the overlapping space between the blue zones is cropped. How can I solve this problem? Any idea?
The spec does not allow overlapping zones. There must be at least 1+2*BlueFuzz units between zones. What you could do is keep the Ascender zone always above the cap height (albeit very close in one master) and the ascender outlines will interpolate from one zone into the other. You will have an empty zone in one extreme, but so what.
One question about your design: are the ascenders actually interpolating towards the cap height, or are they distinct and snapping to the cap height at one point?
Thanks for the advice. There are three different x-heights (A, B, and C) also with weight and width axises but I am not generating instances between different x-heights (ex.A to B). However, if I generate a var font this would be possible by means of calling coordinates, right?. The shortest ascenders (A) masters aligns with the cap-height.
For variable fonts, the zones do not matter so much as it is exported as TrueType.
If you rally don’t interpolate between the first and the second master, you can just omit the ascender zone in the first master. This will produce proper CFF based instances and variable fonts.