Is it possible to interpolate only the x axis with two masters?
Yes, technically. What result are you trying to achieve?
Yes, I understand that, but what do you want to achieve? Do you want this to happen only on export? Or in edit view? What for?
Are you aware of the remix-tools.com?
I’ve slanted a roman and I want to add a bit of weight to the vertical since the slanting makes the vertical a tiny bit thiner.
I want this to happen in the edit view.
I am aware of remix tools but as far as I understand it doesn’t allow different interpolations for x and y axis
It’s not directly possible with a native functionality or existing plugin. In order to achieve the same effect, I would recommend the following workaround:
Use the remix tools to scale horizontally (103% or so). This retains the stem weight. Then scale normally by 97% (100/103, in his example). This will scale the shapes back to their original proportions, but the stems will be slightly thinner.
If you don’t want to use the remix tools, have a look at the interpolationWeightY custom parameter for exports. This way, you’re essentially doing the same as the remix tools (after scaling back).
will try that, thanks you
You can get interpolation by x with a short script like this. Adjust interpolation value and master names, and run on selected glyphs. It’s probably better to use a copy of the italic master as the target.
interpolation = 0.5
targetMaster = 'Normal Bold New'
sourceMaster1 = 'Normal Thin'
sourceMaster2 = 'Normal Bold'
for l in Font.selectedLayers:
glyph = l.parent
targetLayer = glyph.layers[targetMaster]
sourceLayer1 = glyph.layers[sourceMaster1]
sourceLayer2 = glyph.layers[sourceMaster2]
if not targetLayer.paths:
continue
for path in targetLayer.paths:
for node in path.nodes:
indexPath = targetLayer.indexPathOfNode_(node)
sourceNode1 = sourceLayer1.nodeAtIndexPath_(indexPath)
sourceNode2 = sourceLayer2.nodeAtIndexPath_(indexPath)
node.x = (1 - interpolation) * sourceNode1.x + interpolation * sourceNode2.x