[NTG-context] \startluacode and macro names with underscores

2012-09-04 Thread 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.


Marco

___
If your question is of interest to others as well, please add an entry to the 
Wiki!

maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : http://www.pragma-ade.nl / http://tex.aanhet.net
archive  : http://foundry.supelec.fr/projects/contextrev/
wiki : http://contextgarden.net
___


Re: [NTG-context] \startluacode and macro names with underscores

2012-09-04 Thread Wolfgang Schuster

Am 04.09.2012 um 15:40 schrieb Marco Patzer home...@lavabit.com:

 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
___
If your question is of interest to others as well, please add an entry to the 
Wiki!

maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : http://www.pragma-ade.nl / http://tex.aanhet.net
archive  : http://foundry.supelec.fr/projects/contextrev/
wiki : http://contextgarden.net
___


Re: [NTG-context] \startluacode and macro names with underscores

2012-09-04 Thread Hans Hagen

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
-
___
If your question is of interest to others as well, please add an entry to the 
Wiki!

maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : http://www.pragma-ade.nl / http://tex.aanhet.net
archive  : http://foundry.supelec.fr/projects/contextrev/
wiki : http://contextgarden.net
___