Components doesn't always inherit side bearings

Add an ‘a’ as component and you’ll get the a plus its side bearings.

Add a + and you only get the component.

Seems to be a bug, no?

The automatic alignment works only with letters. It is not very useful for most other glyphs. What do you like to do?

I think his question is, does + disable automatic alignment?

You mean, you:

  1. create a new glyph,
  2. add /a as component,
  3. then also add /plus as a component
    … and the automatic alignment is lost?
    At least this does not happen to me. But I suppose I didn’t understand what you mean.

I think this is about something like case-sensitive punctuation, like a plus.cap that is centered on the cap height.

It would be useful if one could do “auto” sidebearings in the plus.cap glyph. Right now, one has to adopt the sidebearings by typing in “plus” in the sidebearing fiels.

I also vote for adding auto sidebearings for all (at least single-component) glyphs.

Related:
http://www.glyphsapp.com/forums/index.php?action=vthread&forum=1&topic=1352

For me it’s less frequent that I want automatic alignment. For case sensitive forms I want to adjust height, so I would disable auto alignment anyway. For double quotes (“ ” « » etc) I would disable it too, since I want to adjust the space between components.

... but you would want to keep auto sidebarings, right?

But you don’t like auto side bearings for components in tabular figures and such. There where a few more cases where it would not work.

Yes I set sidebearing links eventually. In other words, auto-setting of sidebearing link might help, but auto-alignment doesn't do what I want.

Perhaps what I want is a script that sets the sidebearing link that refers to the original glyph of the component.

Situations where auto sidebearing linking might help:

  1. Single component glyph
  2. Double component glyph (e.g. « ”)
  3. Glyph with mixed components and outlines (e.g. Q Ð Ł). In this case, only the components from which the sidebearing is measured should be used (e.g. only the left of Q, or the right of Ð Ł).

To make it universal (and perhaps more difficult to code), the script should identify the components that constitutes sidebearings on both sides, and then refer to that glyph as sidebearing link.

In the case of Q, if the design allows it, I like to build it from /O and /tail.Q components, with tail and _tail anchors, so it inherits O alignment.

I don't like to do it though. I think it's better if Glyphs supports up to two linked metrics entries (that is, two choices from left sidebearing, advance width, and right sidebearing). For Q, I want to link the left side and the width of O.

^That would be handy, for swashes as well as Qs.

I also think linked advance width would be quite handy.

Another idea: Linking LSB, width and RSB (i.e. over-determined) would apply the given width and then adjust LSB abd RSB to have the same difference.

Sorry, I started the thread and then left.

For instance. I made minus, and want to make equal, plus, plusminus and less equal etc from that.

So since these should have the same width, it would be really useful if side bearing were always inherited.

Similar with .case glyphs, all of them.

Numbers too, I think. Better to start with auto side bearings and then change, instead of te opposite IMHO.

I see a lot of benefits of inheriting side bearings.

Auto sidebearings is different from auto alignment, and the latter will not be the way to go. If those were auto-aligned by default, I’d have to disable alignment every time, then again typing sidebearing links is only slightly easier. And as for sidebearings you can use sidebearing links, which can probably set via script.

The best way for me (without introducing another new feature which is close to the existing ones) is to make a script that sets sidebearing links to the selected glyphs, either by checking the components used or using predefined library inside the script itself, which the user can customise.


This is what metric keys are there for. If you need that often in your workflow, you can set them with a simple Python script.

We had auto-alignment for numbers and symbols at one point, but it simply created too many problems. That is why we kept auto-alignment for letters only.