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
-----------------------------------------------------------------

Reply via email to