To be wikified (by me, obviously). Thank you for such a great number of alternatives. Jairo :) El lun, 18 de ene. de 2021 a la(s) 04:45, Hans Hagen (j.hagen@xs4all.nl) escribió: > On 1/18/2021 1:58 AM, Jairo A. del Rio wrote: > > Hi, list. > > > > I want to get some dimensions in Lua. See, for instance > > > > \starttext > > > > \the\dimexpr\availablehsize\relax %say, 426pt > > > > \stoptext > > > > Is there an equivalent in ConTeXt for Lua, i.e. without passing values > > from TeX or, at least, using only Lua commands? Thank you in advance. > tex being tex, there is always a way ... > > 1: \number\dimexpr\availablehsize\relax > > 2: \startluacode > > token.set_macro(tex.ctxcatcodes,"temp","\\scratchdimen\\availablehsize") > token.expand_macro("temp") > context(tex.getdimen("scratchdimen")) > \stopluacode > > 3: \startluacode > > token.set_macro(tex.ctxcatcodes,"temp","\\scratchdimen\\availablehsize") > tex.runlocal("temp") > context(tex.getdimen("scratchdimen")) > \stopluacode > > 4: \startluacode > tex.print("\\scratchdimen\\availablehsize") > tex.pushlocal() > tex.poplocal() > context(tex.getdimen("scratchdimen")) > \stopluacode > > 5: \startluacode > tex.print("\\dimensiondef\\temp\\availablehsize") > tex.pushlocal() > tex.poplocal() > context(tex.getdimensionvalue("temp")) > \stopluacode > > \def\calculateavailablehsize{\dimensiondef\temp\availablehsize} > > 6: \startluacode > token.expand_macro("calculateavailablehsize") > context(tex.getdimensionvalue("temp")) > \stopluacode > > \newtoks\tcalculateavailablehsize > \tcalculateavailablehsize{\dimensiondef\temp\availablehsize} > > 7: \startluacode -- mkiv > tex.runtoks("tcalculateavailablehsize") > context(tex.getdimensionvalue("temp")) > \stopluacode > > i'm (still) considering a way to flag a macro to be an expression (or > value) but there are several variants possible but normally it takes a > while before i decide what makes most sense (as i need to apply it in > real code to see if it looks nice) > > 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 > ----------------------------------------------------------------- >