Expressions

Right now anchor based complete composites sets lsb to lsb(name_of_base_glyph) and rsb to rsb(name_of_base_glyph). For most composites this works okay, but not for glyphs that have a mark that goes beyond the boundingbox of the base glyph, like Idieresis. Another function, comp(name_of_base_glyph) does the trick, but it still relies on the name of the base glyph.

To overcome this, we recently introduced a new function for expressions: base()

We think it is time to use base() with anchor based complete composites, but want to make sure there are no objections. So let us know your opinion about this!

There is one more situation that makes use of a similar expression. On opening a font with TrueType based outlines, a composite glyph member can include a special flag that indicates the composite uses the same metrics. We now add expressions for such composites for lsb and aw. Here we could also use base() for both lsb and rsb. Does this also sound like a good idea?

It should also work for italics, but since this is more complex, it might still have some issues here.

I personally don’t really use complete composites, as my fonts don’t really have multilingual support, only basic English.
And in Hebrew when I use “Mark” feature, its enough.

However I do use lsb() and rsb().

Would base() not be more convenient?

Sometimes I want the reverse.

For example if I have left bracket ( symbol and I set metrics for it,
I place for right bracket ) the opposite. So right side bearing of ) is lsb(bracket left).

Does that make sense?

Base is good too though!
But not as a replacement, just as an add-on

Yes, one won’t replace the other. Both will be supported, but it is just on opening a font or with complete composites that I think base() is better.

Oh that’s good then!

So where base() should be placed? In LSB field / RSB field? Or both? Just for understanding

I have found base() to be very useful.

Usually in LSB and RSB or in LSB and AW.

Sounds good!

Here is another update. On opening a font, it will set lsb and rsb to base() for composites that use same metrics as their base glyph.

It is also used with Complete Composites → Anchor Based.

This update also comes with several minor improvements and bug fixes.

FontCreator 14.0.0.2849 (64-bit)

I think this version is extremely stable and all known bugs have been fixed, so we intend to officially release it soon. Then we can get back to updating the help and manual. :smiley:

Nice!

The link is still broken.

Sorry about that. I have uploaded it once more, so please try again.

This release comes with:

  • Fixed an export instances issue
  • Improved import of SVG files
  • Fixed pasting side-bearings
  • Several improvements in the OpenType Designer
  • Improvements to the shaping engine
  • Copy an interpolated glyph outline
  • On the Master tab you can type x / y (run/rise) for italic angle and caret slope
  • Support for base() for lsb and rsb on opening fonts and when using anchor based complete composites
  • Numerous improvements and bug fixes

Thanks!

I’ve tried base(A) and it shows an error, am I doing something wrong?
Note: It would be nice to be able to hover on the red icon and see the error message or something like that
error base.JPG
Copy an interpolated glyph outline
How do I use this? (Suggestion: answer me the same way you write in the documentation, that way you finish two tasks in one shot :smiley:

It only works with compsite glyphs, and then without parameter, so:
base()

Inside the glyph panel, copy, then paste.

I see
Thanks!

Expressions do make things slower, especially with complex variable fonts with lots of glyphs.

Some more things that slow things down are:
Huge pair positioning lookups, but there is not much we can do about that
The algorithm to detect compatibility issues among glyph layers in a variable font

Let us know if you think your work is affected by this.

An upcoming update will allow you to set metrics for all layers, using the same Edit across layers toolbar icon from the Masters and Layers panel.

While implementing this I sometime accidentally changes metrics for all layers, while I intended to only make a change to a single layer. So I wonder is there some way to make this more intuitive?

Layers are mostly for color fonts, right? I don’t use them really.

There is some much terminology and the specs get more complex with every update, but I am talking about masters.

The upcoming update allows you to set the left side-bearing for all masters of a glyph at once. Usually such metric is not equal for all masters, so this enhancement might do more harm, so some advise is welcome! :sunglasses: