Re: [NTG-context] Howto use the lua io.read() function only in the first context run?
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 - ___ 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 ___
Re: [NTG-context] Howto use the lua io.read() function only in the first context run?
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 ___ 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 ___
Re: [NTG-context] Howto use the lua io.read() function only in the first context run?
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 ___ 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 ___
Re: [NTG-context] Howto use the lua io.read() function only in the first context run?
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 - ___ 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 ___
[NTG-context] 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 ___ 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 ___