Extending a font to several weights

aquatoad's picture

In my friday fonts efforts, I'm getting close to having one weight just the way I want it. Next I
want to start thinking about other weights. What is the "right" way to go about this. I have
a regular version, and I want a light, regular, bold, and heavy.

In looking through the FontLab pdf manual I got this idea: If I draw up the heavy version
next, taking care to use similar points to define the outlines, can I use that and the
regular version I have to create a multiple master for the bold? From there, I could
extrapolate to the light version. I imagine it will take some tweeking to get these intermediate
weights the way I want them.

My questions are these:
How hard is it to set up a mulitple master from two weights? How much tweaking is
neccessary? Will this save time, or cause more of a headache? Does this make any
sense at all?

Thanks for your thoughts!

hrant's picture

You'll get different answers about the "right way", but to me best compromise is what I did in Patria:

1) Assuming you have a non-extreme weight at hand, use the software's "weight change" to make the light and dark extremes. Confine to the x-axis.
2) Tweak like there's no tomorrow, specifically by decreasing the contrast in the light extreme while increasing it in the dark. But you should also adjust the overshoots: the lighter the greater.
3) Create a new intermediate of where you started, and compare it to your original. Assuming you still like your original better, tweak the two extremes (not the resultant intermediate) to get back to where your original was.
4) Once you end up with extremes that you like, and they generate your original intermediate weight to your liking, you're done. You shouldn't have to tweak any intermediates at all. In general. :-)

Two words of caution:
1) Very light weights reveal problems in stroke thickness very obviously.
2) Very dark weights can get too pudgy. It takes a lot of expertise to put the sparkle in them - few people can manage - I for one can't. Look at the darkest weights of Galliard for guidance there.

BTW, you don't have to make an actual MM font - in fact most users would have trouble with that! Just have your axis "internal" to your font app, and generate the necessary intermediate weights. Four weights is a good number - too many weights and some users can get confused. If you have very light and dark weights, go to 6.

Spacing the weight gradation is v e r y t r i c k y ... and very open to personal preference.


hrant's picture

> the lighter the greater

Sorry - the other way around!


eomine's picture

Good tips, Hrant, but I avoid using automated "Change Weights".
I don't think it's worth it. A lot of tweaking will be necessary
anyway, so I just "change weights" myself, manually. It's like
splitting together your steps 1 and 2. ;-)

eolson's picture

Randy -

As Eduardo and Hrant have pointed out, there really isn't a correct way to do this. Maybe try it both ways on a few glyphs and compare the results. It could be a nice experiment. I prefer Eduardo's approach. I draw one extreme and then paste it into the mask layer in FL 4.5 and use it as a reference for drawing the other extreme weight.

John Hudson's picture

FontLab 4.5 ships with a demo Python script called 'Family Generator', which automatically produces a Light, Bold and Heavy design from a Regular. Of course, the results are never perfect and always require manual editing to clean them up, but depending on your design this can be surprisingly effective as a first step. The other thing to realise, of course, is that you can edit the Python script, and so tailor the weight and width adjustments made by the script to your design.

flow14's picture

Another consideration if you're truly considering producing
a Multiple Master--OS X supports MMs, albeit with sticks
and chicken wire. I can get them to display, but printing
and creating outlines wreaks havoc. From what I've read,
MMs are on the way out.

close's picture

i think kyle is absolutely right. forget multiple master, it's hardly breathing anymore.

there probably isn't a correct way and it usually depends on the kind of design you're working on. i personally have found it to be efficient to work both ways at the same time. you can use the "change weight comand - resize to x-height" as a sort of reference and also to get your accents, punctuation etc. you still have to tweak those, but it's less of a hassle then also tweaking all the main letters from that. those you should definately draw manually.

it also helps layering all weights of one character atop of each other and optimizing the "new" weights right there in one window in comparisson with your finished regular weight.

bieler's picture

Multiple master fonts never were a big hit commercially. I've got about three dozen of them and I think that was about how many were made.

But, they do work well on pre-OS X systems and, quite frankly, will for quite some time. OS X didn't exactly come out during the best of economic times and it still hasn't pulled over the "majority" of folks, or so the reports from MacWorld indicate.

Problem with Multiple Masters was that they were •••-backwards. Works better to extrapolate from the medium point not interpolate from the end points. Like QuickDraw GX did back in 1994.

Still waiting, and waiting for OpenType to look spectacular. Starting to look like just another format isn't it?

peterbruhn's picture

"FontLab 4.5 ships with a demo Python script called 'Family Generator'"

I've searched and searched and can' find it..are you sure it came with FL4.5 or is it one of your own? :-)

John Hudson's picture

I thought it came with FL4.5, but perhaps Yuri sent it to me to test and has not released it.

You have Python installed and scripts are working, yes?

peterbruhn's picture

Yepp, but that's not included. Maybe something to pass along if it free?

John Hudson's picture

I'll have to ask Yuri.

hrant's picture

Speaking of sharing scripts, does anybody here have RoboFog? There's a script by Peter van Blokland called "Corner Rounder" or something that I'd like to check out - not to copy or port, just to see if there's some smart code in there I could learn from.


peterbruhn's picture

"I'll have to ask Yuri."
Thank you John :-)

The RoboFog site has been dead for some time, any one got news about the new version?

Is there a FL/Python free script exchange site somewhere? Maybe something for the Typophile Downloads section?

yar's picture

There is a special mail list here:

There is a Python page on our site: http://www.fontlab.com/html/python.html
but it is not updated very often.

You can download "Make Family" script from here:

It looks that for some reason we did not include it into the Mac package. We will fix that.

Best regards,
Yuri Yarmola

hrant's picture

> The RoboFog .... new version?

Considering Just and Erik's own substantial participation on the FontLab-Scripting list, I have to suspect that RoboFog development has been abandoned.


mrx's picture

Yuri, thanks so much for the "Make Family" script. While it looks like I've got quite a bit of manual correcting ahead of me, it quickly produced a great base to start from!


John Hudson's picture

Considering Just and Erik's own substantial participation on the FontLab-Scripting list, I have to suspect that RoboFog development has been abandoned.


hrant's picture

Wow. Heavy. And a bit confusing still (to me).

So there's not the connection to Fontographer than RoboFog was based on, right?


twardoch's picture


no -- that's why it's called RoboFab (a name that could be expanded into something like Robotic Fabulous FontLab). There is more in-depth comments about the ideas behind it on the FontLab-Scripting list: http://mail.letterror.com/pipermail/fontlab-scripting/2003-July/thread.html
(just read everything for July).
The RoboFog MkII was supposed to be free of the Fontographer code, but it seemed like completely writing a font editor in Python from scratch was a bit too heavy. But now, with Just's FontTools (in-depth technical font manipulation) and Yuri's FontLab (a more abstract and more universal toolset), the Dutch Connection and House's Tal Leming seem to be back in game :-)

Thomas Phinney's picture

One should consider that multiple master can be used as a design tool, without ever generating multiple master fonts in the end. Most recent Adobe fonts were designed in MM space, without ever being built as MMs.

Personally, I would add a weight axis to the regular, design the black weight, extrapolate the light weight, set it as the new master at the light end, and then clean it up.

One good piece of advice Robert Slimbach gave me on the family I'm working on right now was that designing the extreme masters and interpolating really helps the intermediate weights come out better. It forces you to fix things in the extreme masters that might not be so noticeable in intermediate weights.



kakaze's picture

So you're saying that when you design type you should design the light and the black and then get your regular and other weights by morphing between the two instead of drawing each weight separately?

Thomas Phinney's picture

Well, "should" is to strong a word. I'm saying you can do it, and that for anything more than three weights it can be faster (although maybe not the first time you do it). Plenty of very nice typefaces have been developed this way, including most of Robert Slimbach's designs.

There are cases where you wouldn't want to do it this way, or where you'd use an intermediate master on the weight axis (something that FontLab doesn't directly support).



hrant's picture

> design the light and the black and then get your regular

I think that's dangerous. The eventual Regular might be better interpolated from the extremes, but since the Regular is the heart of the design (in terms of usage), the extremes should really spawn from it.


kakaze's picture

:sigh: So much to think about.

I get enough headaches as it is

.00's picture


hrant's picture

> there is a lot of cleanup

Unless it's an overly complex design with an inherent issue with interpolation, I find that iteratively tweaking the extremes to get intermediates that don't need any adjustments themselves (except correcting rounding errors) is of great benefit. The reason isn't just design elegance, it's practicality: if you change your mind about what the intermediate(s) should be, or if a client wants a custom instance later on, it's much quicker.


Joe Pemberton's picture

My understanding is that the scripting provided by
RoboFog (for Fontographer) was what separated the
enthusiasts from the professionals, and is why I've
assumed some of the more established shops were
hanging onto FOG.

Is RoboFab (for FontLab) the final nail in the
Fontographer coffin? (Is it the catalyst I think it is for
these shops to make the switch?)

Joe Pemberton's picture

I heard Jonathan Hoefler describe the development of
Champion in the same way Thomas describes. Of
course that was 4 years ago, so I'll have to fudge the
details. But in essence the method is to start with the
regular weight, then manually design the extremes (the
widest black and the narrowest thin). Then have the
software create the basis for the intermediate weights. (If
my memory is correct, the software would've generated 3
weights of Champion.) Then of course, there is a lot of
cleanup work to do to add some human care/finesse to the
intermediate weights.

In other words, the computer can help take some of the
tedium out of the process, but it can't make up for
attention to detail.

Joe Pemberton's picture

While we're at it, I'd love to ask David Thometz what his
plans are for developing the other weights of his über-
family Seriatim.

Syndicate content Syndicate content