Howto use the lua io.read() function only in the first context run?
Hi all, I want to write a cld document with some data read on the standard input. I'm using the lua io.read() function but it's launched at every context passes (depending on the case, it is launched 2 to 3 times). -- Minimum not working example local name = io.read() context.startdocument() context("Hello " .. name) context.stopdocument() Thanks in advance. -- Romain Diss
On 3/15/2016 9:04 PM, Romain Diss wrote:
Hi all,
I want to write a cld document with some data read on the standard input. I'm using the lua io.read() function but it's launched at every context passes (depending on the case, it is launched 2 to 3 times).
-- Minimum not working example local name = io.read() context.startdocument() context("Hello " .. name) context.stopdocument()
you can test for environment.arguments.currentrun being "1" ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | www.pragma-ade.com | www.pragma-pod.nl -----------------------------------------------------------------
Hi, Le 15/03/2016, Hans Hagen a écrit
On 3/15/2016 9:04 PM, Romain Diss wrote:
I want to write a cld document with some data read on the standard input. I'm using the lua io.read() function but it's launched at every context passes (depending on the case, it is launched 2 to 3 times).
-- Minimum not working example local name = io.read() context.startdocument() context("Hello " .. name) context.stopdocument()
you can test for environment.arguments.currentrun being "1"
Thank you Hans... but it doesn't fully work. Now I only enter the input once (that's ok) but on the second run, the variable is not defined anymore. How can I keep it in the conTeXt memory? -- Minimum still not working example local name if environment.arguments.currentrun == "1" then io.read() end context.startdocument() context("Hello " .. name) context.stopdocument() All the best -- Romain Diss
Am 2016-03-16 22:47, schrieb Romain Diss:
Hi,
Thank you Hans... but it doesn't fully work. Now I only enter the input once (that's ok) but on the second run, the variable is not defined anymore. How can I keep it in the conTeXt memory?
-- Minimum still not working example local name if environment.arguments.currentrun == "1" then io.read() end context.startdocument() context("Hello " .. name) context.stopdocument()
All the best
You can use the LUA interface "job.passes". In the first pass, you store your value. For example: local passdata = job.passes.define("mystuff") --I usually define this at the top of my script and reuse it. passdata["somevalue"] = "hello world"; Then in the subsequent runs you can access local lastpassdata = job.passes.getcollected("mystuff") --Same here... print(lastpassdata["somevalue"]) Best regards, Andreas
On 3/16/2016 10:47 PM, Romain Diss wrote:
Hi,
Le 15/03/2016, Hans Hagen a écrit
On 3/15/2016 9:04 PM, Romain Diss wrote:
I want to write a cld document with some data read on the standard input. I'm using the lua io.read() function but it's launched at every context passes (depending on the case, it is launched 2 to 3 times).
-- Minimum not working example local name = io.read() context.startdocument() context("Hello " .. name) context.stopdocument()
you can test for environment.arguments.currentrun being "1"
btw, there's also if tex.systemmodes["first"] then
Thank you Hans... but it doesn't fully work. Now I only enter the input once (that's ok) but on the second run, the variable is not defined anymore. How can I keep it in the conTeXt memory?
-- Minimum still not working example local name if environment.arguments.currentrun == "1" then io.read() end context.startdocument() context("Hello " .. name) context.stopdocument()
jobvariables.save("SomeName",value) jobvariables.restore("SomeName") beware, this also creates \SomeName Hans ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | www.pragma-ade.com | www.pragma-pod.nl -----------------------------------------------------------------
participants (3)
-
Andreas Schneider
-
Hans Hagen
-
Romain Diss