be5invis / Iosevka

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

Devanagari Support #1655

Open khpatel4991 opened 1 year ago

khpatel4991 commented 1 year ago

320 mentioned Arabic, Hebrew and Devanagari. It was closed saying Arabic script won't be supported. #690 for Hebrew has been roadmapped.

Devanagari was forgotten. It is a different LTR script used for Sanskrit, Hindi, Marathi and more Bharatiya languages.

All the conjoined character glyphs in devanagari are definitely far future, but can we consider adding basic unicode range U+0900..U+097F (128 codepoints glyphs)?

I'm willing to pair for a first couple of glyphs as I've never actually worked with fonts, after that I can make one per day or at a regular cadence to get all basic 128 codepoints in the font.

Logo121 commented 1 year ago

Not the owner, but pretty sure any scripts outside Latin Greek and Cyrillic are out of scope, or at least far future for now.

You can definitely try to fork and draft out those glyphs though

be5invis commented 1 year ago

I didn't close #320. Put as far future

clsn commented 1 year ago

I'm familiar with Devanagari also, and I've made a font that supports it (though it's pretty hideous), so I have some concept of what's involved. I'm not 100% sure what a Devanagari monospaced font should really look like. No consonant clusters, okay, just visible virama, fine. But what about spacing vs the non-spacing vowel-marks (ā i ī o au versus u ū ṛ ṝ e ai)? Do the spacing ones take up a character cell? Or do they form ligatures that squeeze into the same cell? And of course the confusing reordering of the "i" vowel-mark (which precedes the consonant the vowel follows)?

I guess the most consistent thing is to have the spacing vowel-marks squeeze into the same cell as the consonant, so a "character cell" always contains a consonant (or full vowel-letter) and optionally a vowel-mark (or virama).

But how horrible would such a thing look? My experience is with Sanskrit, so consonant clusters are crucial, and representing them all as consonants with visible virama would probably be nasty to look at. (I'm familiar with Devanagari, but NOT a native user, and gladly defer to the opinions of those with greater experience.)

Logo121 commented 1 year ago

well, the only attempt for a monospaced devanagari font i can find is this: image

the other thing i can think of is this unicode initiative that tries to come up with a way of handling complex scripts in terminals. To my understanding, they prefer just using a non-monospace font (if a monospace font is not available) and then measure the "expected" width of each component/cluster.

although arabic and devanagari are usually grouped together when talking about complex scripts, in reality the latter is much harder and less studied for the reasons you've mentioned. They aren't even the same kind of writing system to begin with (abjad vs abugida).

clsn commented 1 year ago

I'm actually involved in that Unicode initiative, and its chair is stepping down, and I just today at a Unicode meeting said I wasn't volunteering to chair it because I thought they might prefer it if they succeeded in accomplishing something. It looks like the terminal emulator they used in your example has SOME support, not just of non-spacing characters and not just consonant clusters, but it also manages to reorder the "i" vowel-mark correctly, which is usually a major sticking point. It looks kinda stretched-out, but readable (to me). Then again, was that really a terminal emulator or a cooked demo with a word-processor?