be5invis / Iosevka

Versatile typeface for code, from code.
http://be5invis.github.io/Iosevka
SIL Open Font License 1.1
18.7k stars 563 forks source link

Feature request: Narrow mark anchors for letters with ascender/descender. #2354

Open jmcwilliams403 opened 1 month ago

jmcwilliams403 commented 1 month ago

Current behavior: image Simulated possible improvement: image This would be similar to the leaning anchor system but specifically for "narrow" marks, where it tucks them into the negative space where they may fit. This would apply to other narrow marks too of course: b̍q̩d̍p̩h̍ɥ̩k̍ʞ̩þ̩̍β̩ image image

This wouldn't replace the existing leaning mark system for anything wider because characters like ĥ already look perfect as-is: image

be5invis commented 1 month ago

@dscorbett Is this acceptable for all letters with leaning negative space? Currently letters like are all special-cased.

dscorbett commented 1 month ago

This would be theoretically acceptable in the sense that it could be considered a valid design decision. Even if a certain case is unacceptable, it would still be clear what the characters are, so in the worst case it would still be legible.

In practice, I don’t know. The acceptability can depend on the language, the positions of other marks in documents these would often appear in, and maybe things like the optical size and leading. Different contexts have different conventions and they are not predictable from glyph shapes alone. For example, the positioning of U+0307 in Greek script in Brill depends on the language system. So I wouldn’t assume the proposed behavior is good or that the current behavior is good until someone actually checks each letter–diacritic–context combination.

Alternatively, you could declare (implicitly, by implementing this) that Iosevka shall use narrow mark anchors wherever possible regardless of traditional positioning. (Assume for the sake of argument that the traditional positioning is sometimes different.) It’s okay to not follow tradition, but it’s a design decision, not a safe assumption.