Hi again Wolfgang and Peter, The solution you provided to my problem is great but has a small issue… Considering the definition \define[3]\RandomCoeff{% \setvalue{Coeff#1}{\ctxlua{tex.print(math.random(#2,#3))}} } after saying \RandomCoeff{Alpha}{1}{10} one gets \CoeffAlpha, but if I use several times \CoeffAlpha, it takes a new value each time, an effect which is undesirable in what I am willing to do. Is there a way to somehow « freeze » the value of \CoeffAlpha once it is defined? Best regards: OK PS: here is the complete example: \define[3]\RandomCoeff{% \setvalue{Coeff#1}{\ctxlua{tex.print(math.random(#2,#3))}} } \starttext \RandomCoeff{Alpha}{1}{10} \RandomCoeff{Beta}{10}{100} \CoeffAlpha \CoeffBeta \CoeffAlpha \CoeffBeta \stoptext On 5 janv. 2012, at 21:18, Wolfgang Schuster wrote:
Am 05.01.2012 um 21:17 schrieb Peter Münster:
On Thu, Jan 05 2012, Otared Kavian wrote:
\define[3]\RandomCoeff{% \ctxlua{a = math.random(#2,#3)} % \csname{Coeff#1}\endcsname{\ctxlua{tex.print(a)}} %% this line does not work as expected...
\setuprandomize[2012] \define[3]\RandomCoeff{% \expandafter\def\csname Coeff#1\endcsname{\ctxlua{tex.print(math.random(#2,#3))}}}
\setvalue{Coeff#1}{…}
Wolfgang