# Best practices for Vietnamese diacritics

**URL:** <https://forum.glyphsapp.com/t/best-practices-for-vietnamese-diacritics/28724>\
**Category:** Uncategorized\
**Created:** [January 31, 2024, 8:51pm UTC](https://forum.glyphsapp.com/t/best-practices-for-vietnamese-diacritics/28724 "2024-01-31T20:51:58Z")\
**Posts on this page:** 11\
**Page:** 1

<div class="post-metadata">

**Author:** ![tribby](https://forum.glyphsapp.com/letter_avatar_proxy/v4/letter/t/e47774/32.png) [@tribby](https://forum.glyphsapp.com/u/tribby)\
**Post date:** [January 31, 2024, 8:51pm UTC](https://forum.glyphsapp.com/t/best-practices-for-vietnamese-diacritics/28724/1 "2024-01-31T20:51:58Z")

</div>

Hi, just a question here regarding best practices. Glyphs will generate compound components like `circumflexcomb_tildecomb` but there is no codepoint for these - if the diacritics are the same but their position is simply different, is it preferable to take the approach described in the [advanced diacritics](https://glyphsapp.com/learn/advanced-diacritics-multiple-anchors) tutorial? Do glyphsLib or other non-Glyphs ecosystems support this (making a choice between multiple anchors)?

---

<div class="post-metadata">

**Author:** ![GeorgSeifert](https://forum.glyphsapp.com/user_avatar/forum.glyphsapp.com/georgseifert/32/259_2.png) [@GeorgSeifert](https://forum.glyphsapp.com/u/GeorgSeifert)\
**Post date:** [February 1, 2024, 12:32am UTC](https://forum.glyphsapp.com/t/best-practices-for-vietnamese-diacritics/28724/2 "2024-02-01T00:32:31Z")

</div>

Those precomposed marks don’t need a code point. You still type them individually. The precomposed marks are mostly helping with the positioning. And they are build by the ccmp features. So you might need to update the OpenType features.

---

<div class="post-metadata">

**Author:** ![clauseggers](https://forum.glyphsapp.com/user_avatar/forum.glyphsapp.com/clauseggers/32/464_2.png) [@clauseggers](https://forum.glyphsapp.com/u/clauseggers)\
**Post date:** [February 1, 2024, 12:54pm UTC](https://forum.glyphsapp.com/t/best-practices-for-vietnamese-diacritics/28724/3 "2024-02-01T12:54:10Z")

</div>

So far there is no other good way of setting double-decker diacritics more compactly in Glyphs.

---

<div class="post-metadata">

**Author:** ![GeorgSeifert](https://forum.glyphsapp.com/user_avatar/forum.glyphsapp.com/georgseifert/32/259_2.png) [@GeorgSeifert](https://forum.glyphsapp.com/u/GeorgSeifert)\
**Post date:** [February 1, 2024, 2:17pm UTC](https://forum.glyphsapp.com/t/best-practices-for-vietnamese-diacritics/28724/4 "2024-02-01T14:17:37Z")

</div>

What do you mean?

---

<div class="post-metadata">

**Author:** ![Tosche](https://forum.glyphsapp.com/user_avatar/forum.glyphsapp.com/tosche/32/412_2.png) [@Tosche](https://forum.glyphsapp.com/u/Tosche)\
**Post date:** [February 1, 2024, 2:48pm UTC](https://forum.glyphsapp.com/t/best-practices-for-vietnamese-diacritics/28724/5 "2024-02-01T14:48:40Z")

</div>

Mostly repeating what Georg already answered to the original post, but those double-decker diacritics are necessary only when you want to adjust them, either their shapes (e.g. for reducing heights) or positioning. Otherwise, you can simply use the existing singular ones. And the precomposed double-deckers are only used for the design stage, not when the user types text, meaning Unicode codeoints are unnecessary.

---

<div class="post-metadata">

**Author:** ![clauseggers](https://forum.glyphsapp.com/user_avatar/forum.glyphsapp.com/clauseggers/32/464_2.png) [@clauseggers](https://forum.glyphsapp.com/u/clauseggers)\
**Post date:** [February 1, 2024, 6:11pm UTC](https://forum.glyphsapp.com/t/best-practices-for-vietnamese-diacritics/28724/6 "2024-02-01T18:11:13Z")

</div>

Were you asking me? I mean that there is currently no (automatic) way of having two sets of anchors: The normal set of `top`/`_top` for the singletons, and eg. having Glyphs use anchors called `topDoubleDecker`/`_topDoubleDecker` in the cases where a user type in more than one diacritic.

Last time I brought up the topic you never got back on it:

> [@GPOS system of double-stacked diacritics?](https://forum.glyphsapp.com/t/gpos-system-of-double-stacked-diacritics/28593/3):
>
> I’m having a look at this now. There are a few issues: I created the @CombiningTopAccents class, but updating the features also puts a class by the same name into the ccmp feature. Should I just delete the class outside the ccmp feature? Is there is way to write the context so that the anchors are used both when the glyph comes before @CombiningTopAccents and when they come after @CombiningTopAccents? What do I do with the pre-composed glyphs? I can’t use the new anchors to place those diacrit…

I think I found out a way to answer question 2, by creating a group of all lower-case and all top diacritics.

---

<div class="post-metadata">

**Author:** ![tribby](https://forum.glyphsapp.com/letter_avatar_proxy/v4/letter/t/e47774/32.png) [@tribby](https://forum.glyphsapp.com/u/tribby)\
**Post date:** [February 1, 2024, 7:53pm UTC](https://forum.glyphsapp.com/t/best-practices-for-vietnamese-diacritics/28724/7 "2024-02-01T19:53:11Z")

</div>

Thank you Georg and Toshi.  
I am still wondering if the ability to select which anchor a diacritic connects to is a Glyphs-specific concept. If it is, it would seem the method in the tutorial is unideal for working with other tools, roundtripping to UFO, etc?

---

<div class="post-metadata">

**Author:** ![clauseggers](https://forum.glyphsapp.com/user_avatar/forum.glyphsapp.com/clauseggers/32/464_2.png) [@clauseggers](https://forum.glyphsapp.com/u/clauseggers)\
**Post date:** [February 1, 2024, 8:08pm UTC](https://forum.glyphsapp.com/t/best-practices-for-vietnamese-diacritics/28724/8 "2024-02-01T20:08:09Z")

</div>

Anchors are plain OpenType. In the documentation they are called ‘attachment points’ [GPOS — Glyph Positioning Table (OpenType 1.9.1) - Typography | Microsoft Learn](https://learn.microsoft.com/en-us/typography/opentype/otspec191alpha/gpos_delta)

---

<div class="post-metadata">

**Author:** ![tribby](https://forum.glyphsapp.com/letter_avatar_proxy/v4/letter/t/e47774/32.png) [@tribby](https://forum.glyphsapp.com/u/tribby)\
**Post date:** [February 1, 2024, 8:26pm UTC](https://forum.glyphsapp.com/t/best-practices-for-vietnamese-diacritics/28724/9 "2024-02-01T20:26:29Z")

</div>

Ah so the Glyphs UI for prioritizing attachments just compiles into OpenType feature code? Great!

---

<div class="post-metadata">

**Author:** ![clauseggers](https://forum.glyphsapp.com/user_avatar/forum.glyphsapp.com/clauseggers/32/464_2.png) [@clauseggers](https://forum.glyphsapp.com/u/clauseggers)\
**Post date:** [February 1, 2024, 8:40pm UTC](https://forum.glyphsapp.com/t/best-practices-for-vietnamese-diacritics/28724/10 "2024-02-01T20:40:50Z")

</div>

Eventually all the ‘automagic’ features of Glyphs compile to OpenType. If you at some point want the gory details you can decompile the font binaries with TTX (utility application in [FontTools](https://fonttools.readthedocs.io/en/latest/index.html))

---

<div class="post-metadata">

**Author:** ![GeorgSeifert](https://forum.glyphsapp.com/user_avatar/forum.glyphsapp.com/georgseifert/32/259_2.png) [@GeorgSeifert](https://forum.glyphsapp.com/u/GeorgSeifert)\
**Post date:** [February 1, 2024, 11:48pm UTC](https://forum.glyphsapp.com/t/best-practices-for-vietnamese-diacritics/28724/11 "2024-02-01T23:48:48Z")

</div>

> [@clauseggers](#):
>
> I mean that there is currently no (automatic) way of having two sets of anchors: The normal set of `top`/`_top` for the singletons, and eg. having Glyphs use anchors called `topDoubleDecker`/`_topDoubleDecker` in the cases where a user type in more than one diacritic.

You can have multiple “top/\_top” anchors by adding a suffix. e.g. “top.closer/\_top.closer”. And then the next component/mark will use that.

For duble accenty, you usually need the move the first mark a bit down. The only way I know if how to do that is by adding a contextual anchor to all base glyphs:

 ![Bildschirmfoto 2024-02-02 um 00.47.45](https://forum.glyphsapp.com/uploads/default/original/3X/e/8/e8ae71fd8e565bcd63d2ced56f340889d4ad63ae.jpeg)  
This, lower anchor will be used, when there are two marks following the base.
