Devanagari conjunct issue

Hello all. I’m having an issue getting some Devanagari conjuncts to trigger. Specifically, k_t_ra-deva refuses to work in testing (Adobe Illustrator).

Here is how it renders in Illustrator:
(top line is a stock OS typeface, bottom is my typeface)

It appears to be rendering k_t-deva with the Rakar stuck on.

I have added the correct conjunct glyph through the Glyphs interface and designed it:

…but it will not trigger in Illustrator no matter what I do. I’ve tried updating+compiling all the Devanagari features in the Features tab. I’ve copied and pasted text using this conjunct and it works in other fonts but not mine.

Weirdly, other conjuncts are working, like k_ka-deva, k_ca-deva, k_t_ya-deva, k_t_ra-deva, n_da-deva, s_ka-deva. Is there something happening with Half Conjuncts (as opposed to Linear Conjuncts) that I am missing? I have the necessary half forms already in designed and in place, but no dice.

Thanks for any assistance.

Not sure if this has anything to do with my original post, but it may be related:

A problem occurred

Please help us to fix it by copying the following text and pasting it into a new post on https://forum.glyphsapp.com. Thanks!

text: ' क्त्
कतर
क' (__NSCFString), length: 12, string: '्{
}' (NSConcreteAttributedString), length: 1, range: {13, 0}

NSRangeException

NSMutableRLEArray insertObject:range:: Out of bounds

(
    "3   Foundation                          0x000000019fba7e7c -[NSConcreteMutableAttributedString replaceCharactersInRange:withAttributedString:] + 164",
    "4   Glyphs 3                            0x00000001047345f4 _ZN7plcrash2MS5async35plcrash_async_dwarf_expression_evalIyxEE15plcrash_error_tP21plcrash_async_mobjectjPK26plcrash_async_thread_statePK25MSplcrash_async_byteorderyxyPT_mSD_ + 259280",
    "5   AppKit                              0x00000001a20a724c -[NSTextInputContext(NSInputContext_WithCompletion) insertText:replacementRange:completionHandler:] + 164",
    "6   AppKit                              0x00000001a27faf80 __55-[NSTextInputContext handleTSMEvent:completionHandler:]_block_invoke_2.207 + 112",
    "7   AppKit                              0x00000001a20a719c -[NSTextInputContext do_HandleTSMEvent_insertFixLenTextLoop:whileCondition:dispatchWorkEach:afterEachInsertText:continuation:] + 164",
    "8   AppKit                              0x00000001a20a7008 -[NSTextInputContext tryHandleTSMEvent_insertFixLenText_withContext:dispatchCondition:setupForDispatch:nestedWorkaroundCondition:nestedWorkaroundDispatchWork:loopCondition:dispatchWorkEach:afterEachInsertText:continuation:] + 364",
    "9   AppKit                              0x00000001a27fa9f4 __55-[NSTextInputContext handleTSMEvent:completionHandler:]_block_invoke.180 + 2584"
)

Can you send me that font?

1 Like

I experimented some more, including using the cutting edge beta. What ended up working (sort of) was changing the conjunct name in Glyphs. I changed k_t_ra-deva to k_ta_rakar-deva and it now works as intended in Illustrator and matches the behavior of macOS stock Devanagari fonts. I’m not sure yet if this has any unintended side effects, so I’ll keep testing.

(I know the design itself isn’t pretty yet, my apologies to all Devanagari readers.)


image

This is what I should have suggested immediately.

Just a heads up: I got this error while typing some Hindi text:

A problem occurred

Please help us to fix it by copying the following text and pasting it into a new post on https://forum.glyphsapp.com. Thanks!

text: ‘  य
क्ष्म क्ष्म्य क’ (__NSCFString), length: 22, string: ‘्{
}’ (NSConcreteAttributedString), length: 1, range: {23, 0}

NSRangeException

NSMutableRLEArray insertObject:range:: Out of bounds

(
“3 Foundation 0x000000019aff6e70 -[NSConcreteMutableAttributedString replaceCharactersInRange:withAttributedString:] + 164”,
“4 Glyphs 3 0x000000010290c5f4 ZN7plcrash2MS5async35plcrash_async_dwarf_expression_evalIyxEE15plcrash_error_tP21plcrash_async_mobjectjPK26plcrash_async_thread_statePK25MSplcrash_async_byteorderyxyPT_mSD + 259280”,
“5 AppKit 0x000000019d421e4c -[NSTextInputContext(NSInputContext_WithCompletion) insertText:replacementRange:completionHandler:] + 164”,
“6 AppKit 0x000000019db785d0 __55-[NSTextInputContext handleTSMEvent:completionHandler:]_block_invoke_2.207 + 112”,
“7 AppKit 0x000000019d421d9c -[NSTextInputContext do_HandleTSMEvent_insertFixLenTextLoop:whileCondition:dispatchWorkEach:afterEachInsertText:continuation:] + 164”,
“8 AppKit 0x000000019d421c08 -[NSTextInputContext tryHandleTSMEvent_insertFixLenText_withContext:dispatchCondition:setupForDispatch:nestedWorkaroundCondition:nestedWorkaroundDispatchWork:loopCondition:dispatchWorkEach:afterEachInsertText:continuation:] + 364”,
“9 AppKit 0x000000019db77da8 __55-[NSTextInputContext handleTSMEvent:completionHandler:]_block_invoke.180 + 2028”
)

What version is that?

Current stable version 3.1.2.

Is there a solution to this?

I am experiencing the same problem in Glyphs 3.2.3 with ligatures, where the rakar is preceded by more than one consonant. So while tra, dhra, nra and so on work just fine, stra, ntra, ndhra are not recognized, likewise ligatures building on these like ntrya. Varying the input (n_t_ra-deva/n_ta_rakar-deva) did nothing.

Bildschirmfoto 2024-07-30 um 10.40.08

It only affects more complex ligatures with rakar, regardless of half forms being given or not. The output wanting is e.g.

I would be glad for any help,
thank you in advance.

In addition,

I also tried different types of letters (Composition/Conjunct),
and varying the initial input:

n-deva+ta-deva+rakar-deva=n_ta_rakar-deva
n_ta-deva+rakar-deva=n_ta_rakar-deva
n-deva+ta_rakar-deva=n_ta_rakar-deva

Well, so turning off automatic features and adding manually
sub s-deva ta-deva rakar-deva by s_ta_rakar-deva;
did the trick.

Edit:
Okay, it works also – and better – when:
Despite simple rakar-conjuncts being categorized as Composition, they instead have to be categorized as Conjunct; then more complex ligatures building on them properly work, also categorized as Conjunct. Initial input for more complex ligatures then has to be built on them. So, e.g. for ligature ktrya input while adding the glyph has to be:

k_ta_rakar-deva+ya-deva=k_t_rakar_ya-deva;
Other input (e.g. k-deva+t-deva+rakar-deva+ya-deva) did not work for me.

It works now, and automated features are turned on again.