\startluacode and macro names with underscores
Hi, the luacode environment chokes on macro names with underscores. Example: \starttext \unprotect \def\number_two{two} \startluacode userdata = userdata or { } function userdata.number_one() context("one") end -- works userdata.number_one() -- fails -- context.number_two() -- workaround tex.print("\\number_two") \stopluacode \protect \stoptext Why is that and what can be done to access underscored macros in the usual way? I guess it's some catcode change from the function that prints into the TeX stream. Marco
Am 04.09.2012 um 15:40 schrieb Marco Patzer
Hi,
the luacode environment chokes on macro names with underscores. Example:
\starttext \unprotect
\def\number_two{two}
\startluacode userdata = userdata or { } function userdata.number_one() context("one") end
-- works userdata.number_one()
-- fails -- context.number_two()
-- workaround tex.print("\\number_two") \stopluacode
\protect \stoptext
Why is that and what can be done to access underscored macros in the usual way? I guess it's some catcode change from the function that prints into the TeX stream.
Use this in your Lua code: context.unprotect() context.number_two() context.protect() Wolfgang
On 4-9-2012 15:40, Marco Patzer wrote:
Hi,
the luacode environment chokes on macro names with underscores. Example:
\starttext \unprotect
\def\number_two{two}
\startluacode userdata = userdata or { } function userdata.number_one() context("one") end
-- works userdata.number_one()
-- fails -- context.number_two()
-- workaround tex.print("\\number_two") \stopluacode
\protect \stoptext
Why is that and what can be done to access underscored macros in the usual way? I guess it's some catcode change from the function that prints into the TeX stream.
\starttext \unprotect \def\number_two{two} \protect \startluacode userdata = userdata or { } function userdata.number_one() context("one") end userdata.number_one() context.unprotect() context.number_two() context.protect() context.pushcatcodes("prt") context.number_two() context.popcatcodes() \stopluacode \stoptext ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | voip: 087 875 68 74 | www.pragma-ade.com | www.pragma-pod.nl -----------------------------------------------------------------
participants (3)
-
Hans Hagen
-
Marco Patzer
-
Wolfgang Schuster