Nebukam / mkfont

MkFont is a free (libre) tool to create & export fonts from existing assets. Component-based workflow, with advanced features to nit-pick & tweak metrics in a non-destructive way!
https://nebukam.github.io/mkfont/
MIT License
50 stars 2 forks source link

Diacritics in the PUA range? #25

Open pickaxe828 opened 10 months ago

pickaxe828 commented 10 months ago

I am currently working on making a font for a conlang. Blue: Characters Orange: Diacritics

I want to keep the range of characters in PUA, so when the font is used with normal texts, normal texts won't be affected. This is one of the diacritics.

image image

So how do I make a PUA unicode become a diacritic with mkfont? How can I configure some specific OpenType features? Is it possible to do within mkfont?

Nebukam commented 10 months ago

Hey there!

Sadly mkfont doesn't explicitly support OpenType features -- some are supported under the hood, but the library I'm using doesn't support character variants nor kerning (ugh, I know :( )

Depending on your conlang architecture, you may be able to hijack existing sets that have matching diacritics? Otherwise you'll have to resort to create individual ligatures for each possible combination in lieu of OpenType ones. (which, using the component system, is very maintainable!)

As for PUA, although it's a bit painful to do, you can access them at the very bottom of the Unicode blocks in the Content browser area:

image

[Edit: I realize you probably already knew about the PUA selector -_-]

pickaxe828 commented 9 months ago

After a bit of research, I found this tutorial that helps me to implement my conlang font And I found this tutorial for Fontforge https://www.youtube.com/watch?v=io56-xzCbms Can mkfont also do this? i.e.: Adding mark/ mkmk anchors to characters/ PUA characters?

Nebukam commented 9 months ago

hmmm sadly no, I need to change the underlying font engine to support more advanced features :( This is something I plan on doing in the future but I need to evaluate how much work that means first and I don't have a lot of time to focus on that at the moment.