Zero width combining marks

The tutorial on diacritics shows the combining marks being drawn as spaced, rather than zero-width. While I understand that GlyphsApp tries to ‘help’ and generate those glyphs as zero-width, we would much prefer it if Glyphs respected the widths we assign. In the vast majority of cases we want zero-width combing marks, and we draw them that way. If we want a small positive width, it is for a reason, and we don’t want Glyphs to change that automatically.

Zero width of Diacritics consequences are felt in the preview window when editing of those diacritics becomes unaccessible due to overlapping other glyphs !

The default is that you can assign a width to the non spacing marks and that the LSB is moved on top the RSB (and the opposit for RTL glyphs).
The width of non spacing marks is handled quite different. Adobe is always ignoring it and Apple (Safari) is adding the width. So you get very different results.
There are two options. One is to use the DisableAllAutomaticBehaviour custom parameter or define the mark as Spacing Combining in your GlyphData file.

This is the first I’ve heard of “DisableAllAutomaticBehaviour”. I don’t see this the Font, Master, or Instance custom parameter lists, nor in any documentation or change lists. I tried adding this as a custom parameter in each of Font, Master and Instance, and Glyphs didn’t allow that text. Can you tell me precisely how I use this?

Use it in the instance. It will just display it as greyed out, but should still allow it. It is be documented in the upcoming handbook.

Partially related.
I’ve read the tutorial about diacritics but is not very clear for me why diacritics should have zero width, could someone explain this to me? Its only for stacking diacritics?


Every non-spacing character must be, well, not spacing. That means that if you type it, the cursor has to stay where it is. That is why they have no width. And an application applying your font may expect exactly that. Does that make sense?

haha yes, makes sense.
So, do you really suggest to use this combining marks? I ask because I didn’t see it to often on fonts.

In a previous version of Glyphs, when I added this combining marks they were zero width, now they have 600 units. Should I put my diacritics and later change the width to zero right?

Thanks for answering this silly questions.

Best regards.

Newley generated marks always where 600 units wide. But on export the width is removed for glyphs that are marked as NonSpacing. That makes it much easier to edit them in Glyphs.


Thank you!

Can somebody clarify best practice for marks:

  • Is there a point to including combining marks that put accents together (e.g. circumflexcomb_acutecomb) if I’ve made my diacritic letters using the separate components? Should those coupled marks be used instead?
  • Is there a point to including spacing marks with a font that are redundant with the combining marks actually used as components?
  • If so, what width should those spacing marks be?
  • Should all combining marks be set for export? (including things like caroncombalt? tooth-cy?)

Someone might be using them (as Unicode characters), probably out of ignorance. A typical example would be that many people use the grave as apostrophe. I even thought about including a grave character but giving it the shape of a proper apostrophe (i.e. same as quoteright).

Not sure about the other spacing diacritics. It may be better not to include them so as to reveal if they are erroneously used in the underlying source text.

Those that do not have a Unicode value, and are not activated via an OT feature (unlikely), I’d not export, at least not in OTF. For TTF, it makes sense to export them so they can be stored as components.


Yes. For instance, if you have a Czech or Slovak keyboard for OS X and want to type upper case (and some lower case) letters with accents, you first type the accent (ˇ) and then the respective letter. (There is a bug on Mac OS X keyboard displaying ’ instead od acute, though.) So if you don’t include legacy caron, the user will be confused: instead of ˇ, he/she will see an empty space or pink rectangle or .notdef or whatever. Several (spacing) accents are part of the standard Czech/Slovak keyboard layout, at least acute, caron and dieresis.

Also many Czech or Slovak school books or dictionaries use spacing caron in their texts to explain the meaning of the diacritics. Nonspacing accents would complicate it.


OS X displays the spacing accent when you type the accent before the letter, e.g. Opt-U , then e, in order to get ë. Between typing Opt-U and e, you will see the spacing, non-combining diaeresis (¨).

I create them after I created the combining marks, then they automatically get the combining marks as components. I usually give them =40 metric keys (or something in that ballpark) for both the LSB and RSB.

1 Like

You definitely don’t need them for OTF but it might make sense to include them in TrueType.


On a related note, I just uploaded a script that finds all glyphs that
• export
• do not have a Unicode value and
• are not covered by any OT feature

i.e. are not accessible* in the final font.

(* expecting some nit-picking reponses to this)


No nitpicking here :slight_smile: Just adding a note:

Glyphs that do not have a Unicode value will still be available in the glyph palette.

Variant diacritical marks (narrow or wide, for example) may come in handy. You can swap normal width marks over dotless i and dotless j for narrow marks contextually. The same goes for .case or .scmp variant marks.

@eliason When the spacing marks should be centered on the same width (usually the en width), I’ve made an empty non-exporting glyph with the corresponding anchors and built the spacing marks from said empty glyph + combining mark.

1 Like

But those should be switched in by OpenType features. That is covered by the script.

Yes, yes. As I said: I am not nitpicking, just adding some thoughts on things you might want to include.

Excuse me for the old thread :confused:
So, is there any good reason to draw the diacritics with zero width? It’s a headache to edit a glyph when it does not have any sidebearing space.

Thanks in advance