On Sat, 20 Mar 2021, Hans Hagen wrote:
I wonder if we could have an environment, say \startluatemplate ... \stopluatemplate, which is evaluated on the fly rather than when loading a file.
define 'evaluated on the fly'
Consider the following example:
\enablemode[A] \starttext \startluatemplate <?lua if tex.modes["A"] and not tex.modes["B"] then ?> \starttyping A and not B \stoptyping <?lua else ?> \starttyping not (A and not B) \stoptyping <?lua end ?> \stopluatemplate \stoptext
What I am thinking is that \startluatemplate ... \stopluatemplate grabs the content (like a buffer) and then processes it using the mkix conversion mechanism. Thus, in terms of output, it should be equivalent to:
\enablemode[A] \starttext \startbuffer[luatemplate] <?lua if tex.modes["A"] and not tex.modes["B"] then ?> \starttyping A and not B \stoptyping <?lua else ?> \starttyping not (A and not B) \stoptyping <?lua end ?> \stopbuffer \savebuffer[file={\jobname-luatemplate.mkix}, list={luatemplate}] \input \jobname-luatemplate.mkix \stoptext
but without the need to save to an external file.
On 3/20/2021 10:03 PM, Aditya Mahajan wrote: this is just for the mode right? in that case we can also can provide <?lua tex.enablemode("A") ?> 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 -----------------------------------------------------------------