Hello Contexteers! Sometimes the necessity could arise to send data from lua to context and answers back to lua. I tried this by using "read" and "immediate\write" commands in context. These commands are described in chapter 21 and 22 of Donald E. Knuth's "The TeXbook".
My question is: Do there exist better and more simple solutions? Here is my WE which is admittedly a little bit ugly, but it works. Appended the pdf-output: ======================================================================== \starttext \startluacode tex.print("Here is lua.") tex.print(" ") tex.print("I'm sending some picture names to Context in order to get back their sizes.") local imageA = "2007-01-01---Intro.png" local imageB = "2007-01-01---Neujahrsballade---1.png" local imageC = "2007-01-01---Neujahrsballade---2.png" local f = assert(io.open("contextin.txt", "w")) f:write(imageA .. "\n" .. imageB .. "\n" .. imageC) f:close() \stopluacode % ------------------------------------------------------------- \openin15=contextin.txt \read15 to \zeileA \read15 to \zeileB \read15 to \zeileC \closein15 \vskip\lineheight ===================================================== \vskip\lineheight Here is \CONTEXT\ and what I got from Lua: \vskip\lineheight \zeileA \\ \zeileB \\ \zeileC \vskip\lineheight Now I'm working ... and write my answers to a file for lua: \\ \zeileA\ width=3000pt height=2000pt \\ \zeileB\ width=1200pt height=900pt \\ \zeileC\ width=1600pt height=1200pt \\ \immediate\openout7=contextout.txt \immediate\write7{\zeileA\ width=3000pt height=2000pt \\} \immediate\write7{\zeileB\ width=1200pt height=900pt \\} \immediate\write7{\zeileC\ width=1600pt height=1200pt \\} \immediate\closeout7 \vskip\lineheight ===================================================== \vskip\lineheight % ------------------------------------------------------------- \startluacode tex.print("Here is lua again and what I got back from Context:") tex.print(" ") tex.print(" ") local f = assert(io.open("contextout.txt", "r")) local contexts_answer = f:read("*a") f:close() tex.print(contexts_answer) \stopluacode \stoptext ======================================================================== Best regards, Rudolf
input-test.pdf
Description: Adobe PDF document
___________________________________________________________________________________ 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://context.aanhet.net archive : https://bitbucket.org/phg/context-mirror/commits/ wiki : http://contextgarden.net ___________________________________________________________________________________