On Mon, Apr 13, 2015 at 03:32:04PM +0200, Hans Hagen wrote: > On 4/13/2015 1:53 PM, Kumar Appaiah wrote: > >Hi. > > > >I am trying to set up a system where I can use Lua to find a total > >that I can display at the end. For example, if I set a question paper, > >after each question, I do a \directlua{total = total + 4}, assuming > >this question has 4 points. At the top of my document, I now want to > >say "Total points:" and display the value of total. > > > >Now, naturally, using \directlua gives me 0, since total is 0 at the > >beginning. But \latelua didn't seem to be what I am looking for. Could > >someone please guide me in the right direction? > > forget about latelua ... by the time that kicks in typesetting is done > already .. you need to go multipass: > > \starttext > > \startluacode > local name = nil > local temp = 0 > > function document.startwhatever(s) > name = s > temp = 0 > end > function document.addwhatever(n) > temp = temp + n > context(n) > end > function document.stopwhatever() > job.variables.save("document:temp:"..name,temp) > end > function document.getwhatever(s) > context(job.variables.collected["document:temp:"..s]) > end > \stopluacode > > \def\startwhatever[#1]{\ctxlua{document.startwhatever("#1")}} > \def\stopwhatever {\ctxlua{document.stopwhatever()}} > \def\addwhatever #1{\ctxlua{document.addwhatever(#1)}} > \def\getwhatever #1{\ctxlua{document.getwhatever("#1")}} > > total: \getwhatever{foo} > > \startwhatever[foo] > > test 1: \addwhatever{10}\par > test 2: \addwhatever{20}\par > test 3: \addwhatever{30}\par > > \stopwhatever > > \stoptext
Thanks Hans. This is what I needed! Kumar -- Kumar Appaiah ___________________________________________________________________________________ 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 ___________________________________________________________________________________