Hello ConTeXist.
How best (optimally) in Lua code in ConTeXt define own ConTeXt macros?
I was used recently LuaTeX syntax (for example) :
tex.sprint(tex.ctxcatcodes,'\\def\\mymacro\{arg of mymacro\}')
But someone advised me that I use the better syntax:
context('\\def\\Mymacro\{arg of mymacro\}')
or context("\\def\\test#1{#1}") etc...
Exist other (best or most optimal) way to do?
for example something like:
context.def.mymacro("first arg", "sec arg:") (which of course does not
work ...)
Thanx Jaroslav
My example:
\startluacode
function ar2rom(arnum) -- Convert Arabic numbers to Roman. Used for
"numbering" column in the TeX macros
local romans = {{1000, "M"},
{900, "CM"}, {500, "D"}, {400, "CD"}, {100, "C"},
{90, "XC"}, {50, "L"}, {40, "XL"}, {10, "X"},
{9, "IX"}, {5, "V"}, {4, "IV"}, {1, "I"} }
local romnum=''
for _, v in ipairs(romans) do -- create of the Roman numbers
val, let = unpack(v)
while arnum >= val do
arnum = arnum - val
romnum=romnum..let
end
end
return romnum
end
for i = 1, 10 do
tex.sprint(tex.ctxcatcodes,'\\def\\macro'..ar2rom(i)..'\{macro
'..i..'\}')
context('\\def\\Macro'..ar2rom(i)..'\{Macro '..i..'\}')
end
tex.sprint(tex.ctxcatcodes,'\\def\\mymacro\{arg of mymacro\}')
context('\\def\\Mymacro\{arg of Mymacro\}')
\stopluacode
\starttext
\macroI, \MacroI
\macroII, \MacroII
etc ...
\macroIX, \MacroIX
\macroX, \MacroX
\Mymacro, \mymacro
\stoptext
___________________________________________________________________________________
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
___________________________________________________________________________________