Am 23.12.2012 um 02:58 schrieb Roland Thiers
Bonjour, I am new in ConTeXt. I love its features. I need some (or a lot of) help. I tried to get a macro which compute some values for a math function. With help from the wiki ConTeXt Garden and some time I could do that - write my function userdata.f - write another function to put the values in a table : userdata.tabf - put both of them in a file "/Users/rolandt/context/mesfonctionsluatex.lua" - In a file.tex, I use that macro : \def\tabf#1#2% {\startluacode dofile("/Users/rolandt/context/mesfonctionsluatex.lua") userdata.tabf(#1,#2) \stopluacode}
When you Lua code is in the same folder as the TeX file you can use \ctxloadluafile{myfile} to load the Lua file.
Here are the functions:
-- fonction cube -- on utilise l'espace de nom userdata userdata=userdata or {}
function userdata.f(x) context(x*x*x) end
-- fonction tabf -- which makes a table , compute 6 values, b=first x, c = step
userdata=userdata or {}
function userdata.tabf(b,c) context.starttable{"*{7}{|l}|"} local b=b local c=c context("\\HL") context("\\VL x ") for i=1,6 do context("\\NC" .. b+(i-1)*c) end context("\\VL".."\\AR") context("\\HL") context("\\VL f(x) ") for i=1,6 do context("\\NC") context(userdata.f(b+(i-1)*c)) end context("\\VL".."\\LR") context("\\HL") context.stoptable() end
\startluacode userdata = userdata or {} userdata.roland = userdata.roland or {} local roland = userdata.roland function roland.f(x) context(x*x*x) end function roland.table(min,max,step) local min = tonumber(min) local max = tonumber(max) local step = tonumber(step) context.starttable({string.format("|*{%d}{l|}",max-min+2)}) context.HL() context.VL() context("x") for i=min,max do context.NC() context(min+(i-1)*step) end context.VL() context.FR() context.HL() context.VL() context("f(x)") for i=min,max do context.NC() roland.f(min+(i-1)*step) end context.VL() context.AR() context.HL() context.stoptable() end \stopluacode \define[3]\TableFuntion {\ctxlua{userdata.roland.table("#1","#2","#3")}} \starttext \TableFuntion{1}{6}{1} \TableFuntion{2}{7}{1} \stoptext Wolfgang