Interpolated Nudge

In my last post I mentioned a set of macros that I wrote this week to help in tweeking Doublewide. I thought I'd throw the code out there, just in case someone else finds it useful.

The idea is pretty simple. Wouldn't it be nice to move a node while keeping the tension in the curve? When tweeking, bolding and making fonts wider, I prefer to use the keyboard to 'nudge' the points around. It makes it easy to keep track of measurements, to make sure that the new stroke weight/character widths are consistent.

For example, if I have a light weight with a 70 unit stem weight, and I want to make the new stem weight 270, all I have to do is command+shift+right+arrow on each of the stems. Unfortunately, this flattens the curves, as the off curve control points stay in the same place.

The answer: Interpolated Nudge. The macros simply move the control points proportionally with the anchor points. If you move an anchor 10 units to the right, and the control point is 50 percent of the distance to the next anchor, the control point will move 5 units, preserving the tension in the curve. The algorithm is super simple, but it helps.

The next trick is to map the macros to keys. Fontlab allows macros to be assigned to 0-9+shift+option. I mapped NudgeLeft10 to 4, right to 6, up to 8 and down to 5. This way I can use the number pad like directional keys. I also mapped NudgeRight100 t0 3 and NudgeLeft100 to 1, so I can move big distances more quickly.

Of course my preference would be for nudge to be worked into Fontlab's interpolation tool, but in the mean time, this is a quick and easy way to make extended and bold versions of fonts.

To install:

  1. Download the attachment from this post. Copy the "InterpolatedNudge" folder into the FontLab Macros directory.
  2. Copy "" into the Macros/system/modules/ folder. (On a mac the macro directory is found at ~/Library/Application Support/Fontlab/Studio 5/Macros/).
  3. Press the "reload" button on the Fontlab macro toolbar. You should see InterpolatedNudge show up as a folder in the macro toolbar.
  4. To map the keys, select each macro (eg NudgeLeft10) and then use the "assign to keyboard" drop down menu on the right of the macro toolbar.
NudgeMacros.zip7.92 KB

Thank you, this is really useful! :-)

Thanks for this nice little helper, Christian! :)

you should be able to customize your macro keys in FLS5 as well, so in theory, you should be able to map shift+option+up to macro eight and then you can just use your arrow keys for the interpolated nudge.

go to tools>customize>keyboard>macro programs and reassign the keys there.

Nice! I didn't realize you could do that. Thanks, Paul.

Really like this one, thanks!

This is really wonderful. After mapping the keys, I'm using the interp nudge for everything. You need to set up a paypal account for donations :)

Great. Thanks!

very cool. thanks.


Fantastic. Thanks a lot!

That is the solutionsağlıkeverybody want


I have posted a tool script, at the FontLab Forum which allows you to use 'interpolated nudge' with the mouse.


If you zoomed at the screen snap resolution, then nudge will equal snap. However if you zoom slightly below that range, yet above the next snap increment, you'll find the distance has been interpolated and isn't equal to the snap. The same holds true for shift/nudge.This can make it a little unpredictable. I think it would be better if there were a 1:1 relationship between snap and nudge.
epilare definitiva

I can't get this to work. Anyone using FontLab S5 on a PC having the same issues? Please help.


Ah, OK Not a PC Problem at all - I didn't have Python installed which turns out to be crucial for macros to function. This is an awesome technique and very useful. Thanks Christian!

Hi Christian
I've been using this script for some time now, and it's absolutely wonderful. Thanks for sharing!

This script is wonderful, thanks for sharing your knowledge.

I can't believe I missed this. Very cool. Also Eigi's tool version. Sheesh. To think of all the tedious work this would have saved me if I'd discovered it sooner.