[luatex] token.expand: how to use it?

Hans Hagen j.hagen at xs4all.nl
Sun Oct 23 11:38:02 CEST 2022


On 10/23/2022 12:34 AM, Eduardo Ochs wrote:
> Hi list,
> 
> how do I use the function token.expand, that is (very) briefly
> mentioned here?
> 
>    http://mirrors.ibiblio.org/CTAN/systems/doc/luatex/luatex.pdf#page=224
> 
> I've put this in a .tex file
> 
>    \def\foo{FOO}
>    \def\bletch#1{BL#1ETCH}
> 
> and entered a Lua REPL. All the "print"s below give meaningful
> results,
> 
>    print(token.get_macro("foo"))
>    print(token.get_macro("bletch"))
>    print(token.get_meaning("foo"))
>    print(token.get_meaning("bletch"))
>    print(token.create("bletch"))
>    print(token.create("bletch").expandable)
> 
> and the last one says "true"... but I've tried to call token.expand
> with several kinds of arguments, and in all cases I got this error,
> 
>    ! Undefined control sequence.
>    \repl ->\directlua { print(); run_repl2_now() }
> 
> where \repl is the tex macro that I use to run my Lua REPL...
token.expand is rather useless and a left-over from earlier mechanisms 
that have been replaced (it's now kind of hard to make an example).

Anyway, you can best push a token into the input with tex.print:

\def\bletch#1{BL#1ETCH}

\directlua{tex.print(token.create("bletch"))}xxxxx
\directlua{tex.print(token.create("bletch"))}{xxx}xx

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 luatex mailing list.