[NTG-context] node.setglue broken in LuaMetaTeX

Hans Hagen j.hagen at freedom.nl
Mon Nov 7 13:26:15 CET 2022


On 11/7/2022 11:40 AM, Max Chernoff via ntg-context wrote:
> Hi Hans,
> 
> Using node.setglue in LuaMetaTeX sets all of the glue components to
> zero.
> 
> This example:
> 
>     \startluacode
>         local stretch_order = "stretch_order"
>         local shrink_order = "shrink_order"
>         if status.luatex_engine == "luametatex" then
>             stretch_order = "stretchorder"
>             shrink_order  ="shrinkorder"
>         end
>     
>         local glue = node.new "glue"
>         print(node.getglue(glue))
>         node.setglue(glue, 1, 2, 3, 4, 5)
>         print(node.getglue(glue))
>         glue.width = 1
>         glue.stretch = 2
>         glue.shrink = 3
>         glue[stretch_order] = 4
>         glue[shrink_order] = 5
>         print(node.getglue(glue))
>         node.setglue(glue, 1, 2, 3, 4, 5)
>         print(node.getglue(glue))
>     \stopluacode
> 
> produces this output in MkIV:
> 
>     0       0       0       0       0
>     1       2       3       4       5
>     1       2       3       4       5
>     1       2       3       4       5
>     
> but this output in MkXL:
> 
>     0       0       0       0       0
>     0       0       0       0       0
>     1       2       3       4       5
>     0       0       0       0       0
it is unrelated to luametatex in the sense that it doesn't have that 
setter, so we emulate it in node-cmp.lmt:

function node.setglue   (n,...) return setglue   (todirect(n),...) end

but even then you won't get the '5' as bad values are intercepted ... 
i'll also add some extra checks to those field setters

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



More information about the ntg-context mailing list