Hello, another single-pass approach, which uses the fact that you know the questions and their point "weights" in advance is to form questions into a Lua table and evaluate the total first: ---- local C = context local tab = { {"Question 1", 10, }, {"Question 2", 20, }, {"Question 3", 30, }, } local n = 0 for _, v in ipairs(tab) do local q, n1 = unpack(v); n = n + n1 end -- Or: for _, v in ipairs(tab) do n = n + v[2] end local f = function(it) local q, n1 = unpack(it) n = n + n1 C(q .. ": " .. n) C.par() end C.starttext() C("Total score: " .. n) C.par() n = 0 -- Reset f(tab[1]) f(tab[2]) f(tab[3]) -- Or: for _, v in ipairs(tab) do f(v) end C.stoptext() ---- Best regards, Lukas > Thanks for the response. I am looking at something like this: > > ============== > \starttext > \directlua{total = 0} > \title{Homework 1} > > Total score: \directlua{tex.print(total);} > > Question 1 (3 points) > \directlua{total = total + 3} > > Question 2 (4 points) > \directlua{total = total + 4} > > Question 3 (5 points) > \directlua{total = total + 5} > > \stoptext > ============== > > I expect the “Total score” to be followed by “12”, but I don't know > how to get that (or whether that is even possible). > > Thanks. > > Kumar -- Ing. Lukáš Procházka | mailto:LPr@pontex.cz Pontex s. r. o. | mailto:pontex@pontex.cz | http://www.pontex.cz Bezová 1658 147 14 Praha 4 Tel: +420 241 096 751 Fax: +420 244 461 038