0xType / 0xProto

A programming font focused on source code legibility
SIL Open Font License 1.1
1.65k stars 13 forks source link

Suggestion: Only show "ligatures" when compatible with surrounding letters. #64

Closed liliantdn closed 7 months ago

liliantdn commented 7 months ago

I find that the little serifs/ligatures present on b, l, h and q kind of crowd up the whitespace when they are next to letters that take up the space above or below. I like how it makes the font unique and easier to read, but I wish there was a way for the letters to adapt to the one next to it by either removing the tick or reducing its size. Is there a way this could be added as an option?

image

An example of what I mean, left shows the kinds of situations where I find the little ticks to not fit.

If it's too much work I could give a try at doing it myself! I'm just not sure what software to use, so in that case any help with that would be appreciated :)

matype commented 7 months ago

Hi @liliantdn , thank you for using!

First of all, with monospace fonts, it's a given that the spacing between characters can look tighter or looser than it actually is. However, 0xProto uses a method called Texture Healing to tweak the spacing when you have characters that can afford to give up space (like 'i') lined up with those that need more space (like 'm').

But, you can't use Texture Healing on pairs like 'qp' because neither character can afford to give up space. Sure, you could change the sequence of a specific character to another through a "ligature," but think about how many possibilities there are. Just for the Latin characters in 0xProto, there are over 300 glyphs, not even counting numbers and symbols. Even with just 300, that's 90,000 possible two-character combinations without considering the order.

If we went down this path, the coding for OpenType features would be off the charts, and the font file sizes would be unmanageable. So, I'm not in favor of this idea.

matype commented 7 months ago

If it's too much work I could give a try at doing it myself! I'm just not sure what software to use, so in that case any help with that would be appreciated :)

0xProto.glyphs is the source file, which can be edited with the Glyphs.app.