[NTG-context] Getting dimensions in Lua

Jairo A. del Rio jairoadelrio6 at gmail.com
Mon Jan 18 11:12:02 CET 2021


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 at 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
> -----------------------------------------------------------------
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.ntg.nl/pipermail/ntg-context/attachments/20210118/e8167af8/attachment.htm>


More information about the ntg-context mailing list