• by Rainer Erich Scheichelbauer
  • Tutorial
  • – Modified on

Okay, say you already finished your lowercase letters from a to z. Now think, for example, of an ‘ä’ (adieresis) and an ‘ñ’ (ntilde). We already have the a and the n. In a perfect world, all we need to build are the diacritical marks (in this case the dieresiscomb and the tildecomb) and then stick them together like Lego bricks.


All those accents and umlauts are called ‘combining marks’ in advanced typedesignspeak. Glyphs gives you all necessary marks for a language group in the sidebar of the Font tab. E.g., to build all accents for Western Latin, navigate to Languages > Latin > Western European. Right-click on it to open the pop-up that shows you all missing glyphs in that section:


At the bottom of the list, you will find a range of glyph names ending in comb. That is short for combining, which makes sense because we do want to combine them with base letters below them.

Select them all, press Generate and you’ll get nine marks. If everything went right, you should see acutecomb, cedillacomb, circumflexcomb, dieresiscomb, dotaccentcomb, gravecomb, ringcomb, strokeshortcomb, slashlongcomb, tildecomb:


All of these accents are supposed to go right above the x-height. Only cedillacomb hangs on the baseline. To get back to our example, this is what our dieresiscomb could look like:


And here’s our tilde:



See those red dots there? These are called anchors. Anchors help connect base glyphs with marks. If you click on them, you can see their names. In the base letters like a and n, they are called top, bottom or ogonek:


In the marks, they have the same names, except for a preceding underscore, i.e. _top, _bottom and _ogonek:


If you want to set predefined default anchors for a glyph, select Set Anchors (Cmd-U) from the Glyph menu. Simultaneously hold down the Option key to Reset Anchors (Cmd-Opt-U) to their defaults. And if you want to create a new anchor, just right-click and choose Add Anchor from the context menu:


If you want to rename the anchor, you can change the name in the grey info panel. Or just select it and hit return:


And if you select anchors, you get a grey preview of possible mark positionings, like this:


We call this a mark cloud. Nice.


Now we have all the ingredients, base letters and marks, both with their respective anchors. So we just have to tell Glyphs to build the diacritics for us. But which ones are there? Which ones do we need? And what are their respective glyph names?

Again, just right-click one of the Languages in Font View. Both adieresis and ntilde can be found under Western European.


Select them and Glyphs will build both letters out of components. Components are live, hot-linked copies of your original letters. You can add any other glyph as a component into your current glyph via Glyph > Choose Component (Cmd-Shift-C). Glyphs even supports the nesting of components (i.e. components from composite letters) to some degree. The adieresis has an a component and a dieresiscomb component. Components are displayed as grey previews instead of the paths you usually see.

Due to its nature, you cannot edit a component, only the original glyph it points to. If you want to do that, simply double click a component and its original glyph will be opened next to it. If you rather have the paths and do not care about the hot-linking, you can dissolve the components into editable outlines by choosing Decompose from the context menu of the component, or Glyph > Decompose Components (Cmd-Shift-D) to decompose all components in selected glyphs.

The width of adieresis is in sync with a, the relative placement of the dieresiscomb mark is done with the anchors. If you do not want automatic positioning and syncing, you can right-click on the respective component and choose Disable Automatic Alignment from the context menu:


In any event, we have our diacritics now:


The i and the j

So far, so good. There is one lowercase letter that poses a problem though. Or actually, there are two of them: the i and the j. If you want to put any mark on those, you need to get rid of the dot first. In other words, we need an i without a dot and a j without a dot.

Thankfully, there is a dotless i called idotless and a dotless j called jdotless. If you have already drawn your i and your j, there is a quick and easy way to create those. Just select the i without the dot and choose Component from Selection from either the Glyph menu or the context menu:


Glyphs will create the idotless for you and you’re good to go. Do the same with the j and you’ll also have a jdotless. Now we can also build i and j diacritics.


Admittedly, the lowercase j rarely takes an accent. To my knowledge, the only written languages employing a j diacritic is Esperanto, which knows U+0135 LATIN SMALL LETTER J CIRCUMFLEX, and Dutch, which, if properly encoded, puts U+0301 COMBINING ACUTE ACCENT on the j in the stressed ij. Besides that, Latin transliterations of some Indic languages may put the same combining non-spacing acute on the j. And in some phonetic alphabets, U+01F0 LATIN SMALL LETTER J WITH CARON can occur. Wikipedia states that it is also used for writing Pashto and Wakhi with the Latin script. So, all in all, there is enough reason for having a separate jdotless in your font.

If you want to create separate narrow accents to fit your idotless and jdotless, I recommend you read the tutorial on narrow marks.

Uppercase Diacritics

In many designs, the regular marks are too tall for uppercase letters. This is why some designers choose to make separate marks for their uppercase letters. Note how the uppercase circumflex diverges from the lowercase design in this example:


In this case, we have two different versions of the circumflexcomb. The lowercase one is simply called circumflexcomb, but the uppercase variant also carries a .case ending: circumflexcomb.case.

Uppercase marks are done a little differently: the mark is placed above the cap height, and the anchor should be exactly on the cap height. This, for instance, is what the caroncomb.case looks like:


Once you have your .case marks, you can build your uppercase diacritics like you did your lowercase ones. You can force a rebuild of an already existing diacritic letter by choosing Glyph > Make Component Glyph (Cmd-Opt-Shift-C).

Legacy Marks

You may have noticed that in the Marks category, there is a Legacy section:


You see, there are thirteen of them, and they all lack the comb at the end of their names. They only exist for historic reasons, but unfortunately, we cannot do without them. A font needs legacy marks for backwards compatibility. Actually, they are the colored placeholders you see in apps like TextEdit after you type the accent key, and before you type the base letter:


But now that we have our combining accents, it feels unnecessary to redraw them. Even copying and pasting seems like a waste of time, because if our default accents change, we would need to change the legacy marks as well.

Luckily, we have components! And as it so happens, there is an easy way to produce legacy marks as component copies of their combining siblings. All you need to do is right-click on the Legacy section, choose all marks and hit Generate:


This will generate legacy marks and insert the respective combining marks as components into them. Now your font is more compatible!

Hint: There are two notable exceptions when it comes to the display of spacing accents. When typing a tilde or a circumflex, most apps will display the symbols asciitilde and asciicircum instead of the actual marks tilde and circumflex. So make sure you also have those in your glyph set. Otherwise, apps like TextEdit will default to a fallback font. Designwise, the two glyphs are usually drawn a little larger and lower than the marks. In case you are looking for them in the sidebar, Glyphs lists them under Symbols, in the subcategories Math and Other, respectively.

That’s it for now. Have fun extending the language support of your font. A modern Latin font should at least have Western European, Central European and South Eastern European covered. Go for it.

Note: In app versions prior to 2.0, idotless and jdotless were called dotlessi and dotlessj, respectively. Also, legacy marks used to be the default.


Update 2014-12-11: Updated to new notation for dotless glyphs.
Update 2015-03-28: Rewrite for Glyphs 2.0 to reflect combining marks, added section about legacy marks.
Update 2016-01-18: Added additional occurrences of j diacritics. Thx Igor Freiberger.
Update 2017-01-09: Added hint about asciicircum and asciitilde. Thx komplicado for pointing this out.