Hello everybody — I would really appreciate some insights on this matter: I started designing a Regular weight (because the course I am doing requires that) and it is currently 86 units stem width. I have seen Lucas de Groot theory of interpolation and I get I would need two extreme values to calculate the different stem widths to see how it grows exponentially. However, how would you approach to calculating what the stem width of say a Light and an Extra Bold should be given the situation I am describing here? When it comes to masters, I have heard some use only 2 for weight axis, others 3 being the Regular in the middle....On what grounds do you determine these things? Thanks in advance
The you create the Thiniest weight you can and the Heaviest weight you can... the "Super Thin Master" and the "Super Heavy Master", so to speak.
Don't worry about formulas yet.
Focus on pushing your design to the limits...
How heavy can it be? Typically the /e and the /a will tell you the limit. At some point the counters will die.
Then do the same for the super thin master. Draw it as thin as you possibly can.
You don't calculate the extremes masters... you draw them. focus on that at this stage.
Calculation come later, for the intermediate styles.
And this book is good.
As Pablo notes, you need to determine what your extreme weight will be, which can be done by pushing your design as far as possible in terms of lightest and heaviest forms, as he suggests, or can be done by deciding what kind of text you want to support. Obviously, if you take the design as far as possible, then you can always define limits within that range: quite often, my lightest and heaviest weights are not actually shipped, and the Thin and Black variants are defined within the design space weight range.
Sometimes, I work only with weight extremes, and interpolate the nominal regular weight. Sometimes, I design the regular or another intermediate weight master first, in which case I have to make a decision how to handle the weight progression on either side of it. One way to do that is to treat the intermediate master as a pivot point, in which case I use the steminterpolation tool to calculate two progressions: one between the lighest instance and the intermediate master, and one between the intermediate master and the heaviest instance. This can result in a weight axis with a definite kink in the middle where the two progressions meet. You can then decide whether to accept that kink, or you can reconfigure the weight of the intermediate master by interpolating a new master closer to the natural position according to whatever progression formula you prefer.
Note that if you have a nominal regular or other intermediate master and, say, a heavy master, you can calculate appropriate lighter masters. So, for example, if I have a Regular master with a stem weight of 174 units and a Black master with a stem weight of 440 units, I can easily calculate a progression between these:
But I can also calculate the progression on the lighter side of the Regular master down to a Thin master. People better at math than me can probably do that on paper, but I just experiment with the steminterpolation tool, guessing at the stem value for the Thin master and adjusting it until the 4th step in the the progression—corresponding to my Regular master—equals 174 in whatever formula I favour:
One last note: if you are making a variable font—and, arguably, even if only exporting discrete instances along a weight progression—, I strongly recommend calculating a progression with all the steps of your overall weight range as they correspond to the OS/2 table weight class values, even if you only define some of these as named instances:
That way you can plot the relationship of your progressive stem weights to these cardinal values, controlling the progression along your wght axis:
[That’s the axis graph in FontLab 8, my preferred tool.]
That said, you may change your mind at some point in the design process; this is not unusual. It doesn’t necessarily represent stupidity or moral failure.
If, at some later point, you decide a lighter or heavier value is needed, you extrapolate that, generate the instance as a master, and then inspect it and decide whether you can use it as is, or you need to fix it up.
Depending on both your tools and the nature of your design, you may well find that certain things that were consistent (or good) in your previously most-extreme master are now no longer consistent (or good) and need to be fixed.
At the very least, if you have precisely consistent stroke thicknesses, extrapolation (or interpolation for that matter) and then rounding-to-grid will, in most tools, generate off-by-one errors a fair bit of the time.
For example, if you have a 200 (Extra Light) and 900 (Black) masters, but you want to extrapolate 100 (Thin). Let us suppose that your 900 is not monoline, but you want your 100 to be monoline.
If your 900 is not monoline, and your existing 200 is monoline, the extrapolated 100 will not be. It is not possible. If neither the 900 nor the 200 is monoline, it is almost impossible for the 100 to turn out so, by extrapolation.
(I mean, technically it could happen, but as a practical matter it would only happen if you had planned it all from the beginning to work that way, in which case you did about 10x as much work as if you had simply directly designed the monoline 100 master in the first place!)
As Thomas says, ideally you want to control the design space through interpolation, and avoid extrapolating beyond the lightest and heaviest masters. Extrapolation can be a useful tool in developing additional weights, but the results are seldom perfect. I use extrapolation sometimes to rough in a heavier weight master if I decide that an existing design can usefully be made heavier.
A couple of additional thoughts: