[luatex] % character in \directlua

Sat Feb 19 11:41:41 CET 2011

Am 19.02.2011 um 01:10 schrieb Yannis Haralambous:

> Hi everybody, and sorry for my mailer: it gives me only two choices, either "text" (my current choice, believe it or not) or "rtf".
>
> I'm writing to ask whether there is a more elegant way to use a % in a \directlua argument (I need the Lua modulo operator)
> besides changing the catcode of % to 12 around the \directlua command:
>
> \begingroup
> \catcode\%=12
> \directlua{texio.write(5 % 2)}
> \endgroup
>
> I have tried \%, \string%, nothing works besides the code above.

As plain TeX user you can write your own command:

\def\luacode
{\begingroup
\catcode\%=12
\doluacode}

\def\doluacode#1%
{\endgroup
\directlua{#1}}

\luacode{tex.sprint(string.format("%.2f",math.pi))}

\bye

ConTeXt already provides a command with the name \ctxluacode which does the same.

Wolfgang