<div dir="ltr"><div>It works as you expect with</div><div><br></div><div>\documentclass{article}<br>\usepackage[OT1]{fontenc}<br>\directlua{dofile('latex.lua')}<br><br>\begin{document}<br>ffi<br>\end{document}</div><div><br></div><div><br></div><div>which is, I guess, equivalent to your plain tex trial, using tfm fonts and "classic" tfm ligature data.</div><div><br></div><div>If you use OpenType fonts things appear to be  different (not that the manual makes that clear:-)</div><div><br></div><div>David</div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, 28 Jul 2023 at 09:39, Werner LEMBERG <<a href="mailto:wl@gnu.org">wl@gnu.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><br>
Consider the following lua file `latex.lua`<br>
<br>
```<br>
function test(head, tail)<br>
  node.ligaturing(head)<br>
  io.write('\nafter ligaturing callback\n')<br>
end<br>
<br>
luatexbase.add_to_callback('ligaturing', test, 'test')<br>
```<br>
<br>
together with this simple LaTeX input file<br>
<br>
```<br>
\documentclass{article}<br>
<br>
\directlua{dofile('latex.lua')}<br>
<br>
\begin{document}<br>
ffi<br>
\end{document}<br>
```<br>
<br>
If I run this with `lualatex latex.tex`, I see 'after ligaturing<br>
callback' in the logfile and a proper `ffi` ligature in the PDF.<br>
<br>
However, if I comment out the `node.ligaturing(head)` line and run<br>
this command, I *also* get the `ffi` ligature, which seems wrong to me<br>
– I'm replacing the 'ligaturing' callback with something of my own, so<br>
why is `node.ligaturing` (or rather its internal luatex version) still<br>
executed?<br>
<br>
What am I missing?  BTW, if I do something similar with plain TeX and<br>
`callback.register`, everything works as expected.<br>
<br>
<br>
    Werner<br>
<br>
</blockquote></div>