On Sat, 11 Sep 2021, Hans Hagen wrote:
On 9/11/2021 5:11 AM, Aditya Mahajan via ntg-context wrote:
I sometimes define lua functions for showing out worked out calculations. The following minimal example shows that
context([[\startformula ... \stopformula]])
fails in LMTX with an error message:
tex error > tex error on line 3 in file ./test.tex: Undefined control sequence \undefined
MWE:
\startluacode thirddata = thirddata or {}
local comment = [[ This is a famous formula \startformula a^2 + b^2 = c^2 \stopformula ]]
function thirddata.explanation() context(comment) end
\stopluacode
\starttext \ctxlua{thirddata.explanation()} \stoptext
The actual use case is more complicated (where I use templates, so I don't want to convert everything to context.startformula() etc.). The example compiles with MkIV but not LMTX.
Any idea what is going on? \enabletrackers[context*]
shows that we have an unprotected \startformula so we need this in strc-mat.mkxl:
\permanent\protected\defcsname\e!start\v!formula\endcsname{\strc_formulas_start_formula{}} \permanent\protected\defcsname\e!stop \v!formula\endcsname{\strc_formulas_stop_formula}
\permanent\tolerant\protected\def\defineformulaalternative[#1]#*[#2]#*[#3]% {\frozen\instance\protected\defcsname\e!start#1\v!formula\endcsname{#2}% \frozen\instance\protected\defcsname\e!stop #1\v!formula\endcsname{#3}}
(the \protected probably got lost when i added overload protection etc)
Thanks! This fixes the error in my main document as well. Aditya