[luatex] What are user-defined whatsit nodes

Stephan Hennig sh-list at posteo.net
Sun Nov 23 23:29:06 CET 2014

Am 23.11.2014 um 16:47 schrieb Mico Loretan:

Hi Mico,

> Perusing your code in a bit more depth, it looks like
> yourwhatsit-inserting function is registered with the hyphenate
> callback. In contrast, selnolig's main function is registered with
> the ligaturing callback.

Ah, great!  I somehow missed that.  The reason is that I do have local
test code that takes another approach, instead of inhibiting ligatures
it breaks-up wrong ligatures.  During my tests I made one observation:
the ligature breaking works (partly) as long as Type1 fonts are used.
When the OTF fonts are used, i.e., the fontspec/luaotfload packages,
there are no ligatures inserted during the ligaturing callback.[1]  When
I saw your whatsit approach I realized that that must indeed be
compatible with fontspec/luaotfload, but instead of retrying the
ligaturing callback I tried to insert the whatsit as early as possible.
 My bad.

Anyway, I'm actually less interested in the technical details of
suppressing ligatures (which is why I ask on this list about that), but
more in how to identify wrong ligatures.

Mico and anybody else, I'd like to invite you to join the
trennmuster at dante.de list ('trennmuster' is German for hyphenation
patterns).  We have an approach in mind that (to me) seems superior to
the current approach taken by the selnolig package that I'd like to
discuss with you over there first.  Because the discussion will not only
be technical but certainly touch linguistic questions.  We can get back
here again any time if there's anything engine related to be discussed.
 Main language of the trennmuster list is German, but English
discussions are welcome as well.  You can register at
<URL:https://lists.dante.de/mailman/listinfo/trennmuster>.  Hope to see
you there!

Best regards,
Stephan Hennig

[1] No code to backup my observation this time, but I think it must have
to do with the fact that fontspec/luaotfload do font feature handling at
the node list level and apparently later than the ligature callback.
Does luaotfload provide another set of callbacks to hook up into
luaotfload's node list processing?

More information about the luatex mailing list