After some experiments I am now fairly convinced that the entities are substituted BEFORE the typesettting actually starts. And thus changing the entity on the fly will have no effect. Is there a flag that can be set in order to delay the substitution until the actual moment of typesetting that part of the input? I examined files lxml-ent.lua and lxml-tex.lua but could not find how to this.

dr. Hans van der Meer

On 17 Apr 2023, at 18:11, Hans van der Meer via ntg-context <ntg-context@ntg.nl> wrote:

I tried 
\directlua{xml.registerentity("DATE","NEWDATE")}

but neither does effect a change in the entity.

Why is that entry not set in the Lua-table entities? (file xml-ent.lua) has as that function:

function xml.registerentity(key,value)
    entities[key] = value
    if trace_entities then
        report_xml("registering entity %a as %a",key,value)
    end
end


On 17 Apr 2023, at 12:32, Hans van der Meer <havdmeer@ziggo.nl> wrote:

I would like to change an entity 'on the fly'. Example

\def\DATE{THEDATE}\expanded{\xmlsetentity{DATE}{\DATE}}

\startxmlsetups typ:event

\def\DATE{NEWDATE}\expanded{\xmlsetentity{DATE}{\DATE}}

Using &DATE; within the <event>.

\stopxmlsetups

However, using &DATE; inside an <event> always results in THEDATE and never in NEWDATE.

How can I change the value of the entity inside the xmlsetups?


dr. Hans van der Meer
___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the Wiki!

maillist : ntg-context@ntg.nl / https://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : https://www.pragma-ade.nl / http://context.aanhet.net
archive  : https://bitbucket.org/phg/context-mirror/commits/
wiki     : https://contextgarden.net
___________________________________________________________________________________