How to work with Swashes

If you want to attach a final swash to lowercase a, then make the alternate of a with the swash physically attached, and don’t forget the ones with diacritics. Ideally you do all possible combinations. You’ll find those glyphs in Adobe italic fonts for example (e.g. Adobe Garamond Italic, Jenson Italic…).

And in swsh feature, you just use normal substitution just like in other GSUB features. Your code should look like this for example:
sub [a aacute] by [a.swsh aacute.swsh];

If you want swashes to happen contextually, it’s a bit tricky; essentially you need to adapt the code in that tutorial, but also ideally in cswh feature(Contextual Swash). And it’s perfectly fine to stop reading here.

In my understanding, swsh feature should activate all swash alternates. If there are things that need to be cancelled contextually, that should be handled in cswh feature. In Adobe apps, if you have contextual alternates (on by default) and swash active, then calt, swsh, and also cswh are activated. What I’d do is to activate all swash features in swsh (let’s say final swash), and in cswh write a code to suppress medial ones back to default, and activate initial swash letters.

3 Likes