Hi Hraban, On Sun, 2024-06-09 at 22:12 +0200, Henning Hraban Ramm wrote: > when I define a measure on the TeX side, I used to get at the value in > Lua with tex.getdim, like: > > \definemeasure[Bleed][3mm] > > tex.getdimen("Bleed") > > But now I get "incorrect dimen name". > I need it as a dimension, since I do calculations with other dimensions > like "topspace". > > How should I do this correctly?
There doesn't appear to be any official interfaces to get the value of a measure from Lua, but the following should work okay: \definemeasure[mymeasure][10pt] \newdimen\mydimen \mydimen=10pt \definemeasure[measureexpr][1in + 27.73pt] \startluacode -- Returns the unexpanded value of some variable in a namespace. local function get_variable(namespace, variable) -- -- Doesn't work since "measure" is defined as a "system namespace". -- namespace = interfaces.getnamespace(namespace) namespace = tokens.getters.macro("??" .. namespace) return tokens.getters.macro(namespace .. variable) end -- Gets the value of a measure and converts it to an integer in sp units. local function get_measure(name) return tex.sp(get_variable("measure", name)) end -- Gets the \dimexpr-evaluated value of a measure, in sp units. local function get_measure_expr(name) local namespace = tokens.getters.macro("??measure") -- Undocumented, but seems to work as expected. return tex.getdimensionvalue(namespace .. name) end -- Print the values of the lengths. print(("="):rep(80)) print("mymeasure:" , get_measure("mymeasure") ) print("mydimen:" , tex.dimen["mydimen"] ) print("measureexpr:", get_measure_expr("measureexpr")) print(("="):rep(80)) \stopluacode \startTEXpage \measure{mymeasure} \the\mydimen \measure{measureexpr} \stopTEXpage Thanks, -- Max ___________________________________________________________________________________ If your question is of interest to others as well, please add an entry to the Wiki! maillist : ntg-context@ntg.nl / https://mailman.ntg.nl/mailman3/lists/ntg-context.ntg.nl webpage : https://www.pragma-ade.nl / https://context.aanhet.net (mirror) archive : https://github.com/contextgarden/context wiki : https://wiki.contextgarden.net ___________________________________________________________________________________