Hello, 

> What one would need is something like a unique group _id_, and a means
> to check whether a certain group id is dead (the group has ended) or
> not.  Something like that.

Maybe a callback could be created:

        function group_callback(type, where)

where "type" would denote if the group was opened/closed using
\begingroup/
\endgroup or { }, and "where" would be "before_begin", "after_begin",
"before_end", "after_end", so code could be executed inside and outside
the group. This callback could then manage group_ids as well as a stack
with all living groups:

        \begingroup (id 1 => stack: 1)
          \begingroup (id 2 => stack: 1 2)
          \endgroup (stack: 1)
        \endgroup (stack: empty)
        \begingroup (id 3 => stack: 3)
        ...

Also, with this callback, one could create a multi-token aftergroup
(since
the \endgroup would already have been consumed, anything printed to TeX
would be inserted after the end of the group):

        function group_callback(type, where)
          if where == "before_end" then
            -- Assume there is a toks register \aftergroupToks
            tex.sprint(tex.toks["aftergroupToks"])
          end
        end

Example:

        \begingroup
          \aftergroupToks={\foo\bar}
        \endgroup
        % Now \foo\bar would be inserted here

Of course, catcodes would be reassigned. Maybe not what is desired.


> David Kastrup

Jonathan

_______________________________________________
dev-luatex mailing list
[email protected]
http://www.ntg.nl/mailman/listinfo/dev-luatex

Reply via email to