ntg-context - mailing list for ConTeXt users
 help / color / mirror / Atom feed
* Optimal way to defining of macros in Luacode in ConTeXt
@ 2011-07-12 15:30 Jaroslav Hajtmar
  2011-07-12 15:43 ` Hans Hagen
  2011-07-12 15:50 ` Wolfgang Schuster
  0 siblings, 2 replies; 12+ messages in thread
From: Jaroslav Hajtmar @ 2011-07-12 15:30 UTC (permalink / raw)
  To: mailing list for ConTeXt users

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
___________________________________________________________________________________


^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2011-07-14 15:28 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-07-12 15:30 Optimal way to defining of macros in Luacode in ConTeXt Jaroslav Hajtmar
2011-07-12 15:43 ` Hans Hagen
2011-07-13  8:05   ` Jaroslav Hajtmar
2011-07-13  9:55     ` Hans Hagen
2011-07-13 10:05       ` Jaroslav Hajtmar
2011-07-13 12:56         ` Wolfgang Schuster
2011-07-13 14:09           ` Jaroslav Hajtmar
2011-07-13 14:33             ` Wolfgang Schuster
2011-07-14 15:12               ` Jaroslav Hajtmar
2011-07-14 15:28                 ` Hans Hagen
2011-07-13 18:05             ` Hans Hagen
2011-07-12 15:50 ` Wolfgang Schuster

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).