On 3/20/2024 2:21 PM, Jérôme LAURENS wrote:
Le 20 mars 2024 à 08:20, Hans Hagen <j.ha...@xs4all.nl> a écrit :
because in that case the mathnode *is* a glue node, that is: it's glue fields
are used (and they have the same layout as a glue node) so synctex should just
accept a math node as valid glue in luatex
This is not a good reason and not a good idea. What you are asking for is to
duplicate the synctex information for math nodes with glue: once as math node
and once as glue node. With such kind of duplication there is no gain in
synchronization accuracy. On the contrary, the cost of synchronization is
bigger (bigger write, bigger read, bigger parse and bigger search) . So either
use `synctexmath` or `synctexhorizontalruleorglue` but not both on the same
node.
Another solution is to add a (multi) conditional do nothing chunk of code in
`synctexhorizontalruleorglue`, just to fit LuaTeX code convenience, and update
the synctex code documentation accordingly… That does not sound really right.
One more solution, in pdflistout.c, line 816 (or so), replace
```
synctexhorizontalruleorglue(p, this_box);
```
with
```
If (type(p) != math_node) {// because synctexmath has already been called for
math_node
synctexhorizontalruleorglue(p, this_box);
}
```
So simple and easy. Moreover, the synctex library is then used the proper wa
we won't change anything: just accept the math node math as glue because
that's what it is there: a glue + math state
Hans
-----------------------------------------------------------------
Hans Hagen | PRAGMA ADE
Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl
-----------------------------------------------------------------