Re: [NTG-context] Passing and retrieveing a variable
On 8-1-2011 7:12, Procházka Lukáš wrote: So, an earlier splitting may be performed by something like for a in document.arguments:gmatch(([^,]+)) do local k, v = a:match((.*)=(.*)) document.arguments[k] = v end utilities.parsers.settings_to_hash( document.arguments.arg or , document.arguments ) - Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | voip: 087 875 68 74 | 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] Passing and retrieveing a variable
Hello, thanks for detailing the observation - On Fri, 07 Jan 2011 22:58:24 +0100, Hans Hagen pra...@wxs.nl wrote: On 7-1-2011 9:32, Procházka Lukáš Ing. - Pontex s. r. o. wrote: - Modes are accessible by tex.modes[a-mode]. indeed - - tex.modes are 'false' by default. I.e. they are not 'nil' but 'false', even if not specified on the command line. (tex.mode.__newindex predefined to this purpose?) indeed - There is no table of arguments or variables being passed by --arguments=ARG=arg or by --variable=VAR=var from the command line. indeed (--arguments is an old mechanism and mkii compatible) - All arguments passed to the command line are accessible by document.arguments. Unfortunately, when repeating an arg, only the last is accessible, e.g. context.exe t.mkiv --arguments=ARG1=arg1 --arguments=ARG2=arg2 indeed, so one can easily overload You're right, good feature. will cause that only (string) ARG2=arg2 will be in document.arguments.arguments. as mentioned by someone already, use a=1,b=2,c=3 - - That means also that not splitting to key-value pair is not performed by default (document.arguments.arguments is still ARG2=arg2, no splitting to document.arguments.arguments.ARG2 to be arg2 is not done). indeed, although they are split and assigned at the tex end So, an earlier splitting may be performed by something like for a in document.arguments:gmatch(([^,]+)) do local k, v = a:match((.*)=(.*)) document.arguments[k] = v end Best regards, Lukas - Not only predefined options/switches, but all args passed by command line are accessible by document.arguments. I.e. it's possible to call context.exe t.mkiv --myvar=MYVAR right, but make sure to use a prefix so that there is no confusion (myvarone myvartwo etc) and later it's possible to get MYVAR from document.arguments.myvar. Let's check the call: context.exe t.mkiv --arguments=AAA=aaa --mode=MMM --arguments=BBB=bbb --myvar=MYVAR Hans ___ 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] Passing and retrieveing a variable
Hello, I created a testing file which tests existence and type of (tex|context|document).(modes|arguments|variables) by Lua - see the attachments. It seems that: - Modes are accessible by tex.modes[a-mode]. - - tex.modes are 'false' by default. I.e. they are not 'nil' but 'false', even if not specified on the command line. (tex.mode.__newindex predefined to this purpose?) - There is no table of arguments or variables being passed by --arguments=ARG=arg or by --variable=VAR=var from the command line. - All arguments passed to the command line are accessible by document.arguments. Unfortunately, when repeating an arg, only the last is accessible, e.g. context.exe t.mkiv --arguments=ARG1=arg1 --arguments=ARG2=arg2 will cause that only (string) ARG2=arg2 will be in document.arguments.arguments. - - That means also that not splitting to key-value pair is not performed by default (document.arguments.arguments is still ARG2=arg2, no splitting to document.arguments.arguments.ARG2 to be arg2 is not done). - Not only predefined options/switches, but all args passed by command line are accessible by document.arguments. I.e. it's possible to call context.exe t.mkiv --myvar=MYVAR and later it's possible to get MYVAR from document.arguments.myvar. Let's check the call: context.exe t.mkiv --arguments=AAA=aaa --mode=MMM --arguments=BBB=bbb --myvar=MYVAR Best regards, Lukas On Wed, 05 Jan 2011 21:11:51 +0100, Peter Münster pmli...@free.fr wrote: Procházka Lukáš l...@pontex.cz writes: I'd need to pass a variable to Ctx and to retrieve it inside a compiled document - via Ctx itself and also by Lua. Hello, % cmd-line: context --arguments=testvar=my-value test \starttext value of testvar: \env{testvar} with lua: \ctxlua{tex.print(document.arguments.arguments)} \stoptext There is perhaps a nicer solution in lua. Peter -- Ing. Lukáš Procházka [mailto:l...@pontex.cz] Pontex s. r. o. [mailto:pon...@pontex.cz] [http://www.pontex.cz] Bezová 1658 147 14 Praha 4 Tel: +420 244 062 238 Fax: +420 244 461 038 t.mkiv Description: Binary data t.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://tex.aanhet.net archive : http://foundry.supelec.fr/projects/contextrev/ wiki : http://contextgarden.net ___
Re: [NTG-context] Passing and retrieveing a variable
2011/1/7 Procházka Lukáš Ing. - Pontex s. r. o. l...@pontex.cz: Hello, I created a testing file which tests existence and type of (tex|context|document).(modes|arguments|variables) by Lua - see the attachments. It seems that: - Modes are accessible by tex.modes[a-mode]. - - tex.modes are 'false' by default. I.e. they are not 'nil' but 'false', even if not specified on the command line. (tex.mode.__newindex predefined to this purpose?) - There is no table of arguments or variables being passed by --arguments=ARG=arg or by --variable=VAR=var from the command line. - All arguments passed to the command line are accessible by document.arguments. Unfortunately, when repeating an arg, only the last is accessible, e.g. context.exe t.mkiv --arguments=ARG1=arg1 --arguments=ARG2=arg2 will cause that only (string) ARG2=arg2 will be in document.arguments.arguments. - - That means also that not splitting to key-value pair is not performed by default (document.arguments.arguments is still ARG2=arg2, no splitting to document.arguments.arguments.ARG2 to be arg2 is not done). - Not only predefined options/switches, but all args passed by command line are accessible by document.arguments. I.e. it's possible to call context.exe t.mkiv --myvar=MYVAR and later it's possible to get MYVAR from document.arguments.myvar. Let's check the call: context.exe t.mkiv --arguments=AAA=aaa --mode=MMM --arguments=BBB=bbb --myvar=MYVAR Best regards, Lukas On Wed, 05 Jan 2011 21:11:51 +0100, Peter Münster pmli...@free.fr wrote: Procházka Lukáš l...@pontex.cz writes: I'd need to pass a variable to Ctx and to retrieve it inside a compiled document - via Ctx itself and also by Lua. Hello, % cmd-line: context --arguments=testvar=my-value test \starttext value of testvar: \env{testvar} with lua: \ctxlua{tex.print(document.arguments.arguments)} \stoptext There is perhaps a nicer solution in lua. Peter -- Ing. Lukáš Procházka [mailto:l...@pontex.cz] Pontex s. r. o. [mailto:pon...@pontex.cz] [http://www.pontex.cz] Bezová 1658 147 14 Praha 4 Tel: +420 244 062 238 Fax: +420 244 461 038 ___ 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 ___ Maybe Data Description can here here http://www.lua.org/pil/10.1.html -- luigi ___ 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] Passing and retrieveing a variable
Procházka Lukáš Ing. - Pontex s. r. o. l...@pontex.cz writes: context.exe t.mkiv --arguments=ARG1=arg1 --arguments=ARG2=arg2 It's supposed to be --arguments=ARG1=arg1,ARG2=arg2 Peter ___ 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] Passing and retrieveing a variable
On 7-1-2011 9:32, Procházka Lukáš Ing. - Pontex s. r. o. wrote: - Modes are accessible by tex.modes[a-mode]. indeed - - tex.modes are 'false' by default. I.e. they are not 'nil' but 'false', even if not specified on the command line. (tex.mode.__newindex predefined to this purpose?) indeed - There is no table of arguments or variables being passed by --arguments=ARG=arg or by --variable=VAR=var from the command line. indeed (--arguments is an old mechanism and mkii compatible) - All arguments passed to the command line are accessible by document.arguments. Unfortunately, when repeating an arg, only the last is accessible, e.g. context.exe t.mkiv --arguments=ARG1=arg1 --arguments=ARG2=arg2 indeed, so one can easily overload will cause that only (string) ARG2=arg2 will be in document.arguments.arguments. as mentioned by someone already, use a=1,b=2,c=3 - - That means also that not splitting to key-value pair is not performed by default (document.arguments.arguments is still ARG2=arg2, no splitting to document.arguments.arguments.ARG2 to be arg2 is not done). indeed, although they are split and assigned at the tex end - Not only predefined options/switches, but all args passed by command line are accessible by document.arguments. I.e. it's possible to call context.exe t.mkiv --myvar=MYVAR right, but make sure to use a prefix so that there is no confusion (myvarone myvartwo etc) and later it's possible to get MYVAR from document.arguments.myvar. Let's check the call: context.exe t.mkiv --arguments=AAA=aaa --mode=MMM --arguments=BBB=bbb --myvar=MYVAR Hans - Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | voip: 087 875 68 74 | 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] Passing and retrieveing a variable
Procházka Lukáš l...@pontex.cz writes: I'd need to pass a variable to Ctx and to retrieve it inside a compiled document - via Ctx itself and also by Lua. Hello, % cmd-line: context --arguments=testvar=my-value test \starttext value of testvar: \env{testvar} with lua: \ctxlua{tex.print(document.arguments.arguments)} \stoptext There is perhaps a nicer solution in lua. Peter -- Contact information: http://pmrb.free.fr/contact/ ___ 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] Passing and retrieveing a variable
Am 05.01.2011 um 20:22 schrieb Procházka Lukáš: Hello, I'd need to pass a variable to Ctx and to retrieve it inside a compiled document - via Ctx itself and also by Lua. Something like modes; but modes allow just to check whether they are on or off. I'd need something like this: You can check modes in Lua: context --arguments=size=small --mode=print test.tex \starttext Print mode: \doifmodeelse{print}{yes}{no} \startluacode if tex.modes['print'] then context(Print mode is enabled) else context(Print mode is disabled) end \stopluacode \doifenvelse{size} {\processaction [\env{size}] [ small=Small size, medium=Medium size, big=Big size, unknown=Other size: \env{size}]} {No value “size”} \stoptext Wolfgang ___ 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] Passing and retrieveing a variable
Hello, thanks, - On Wed, 05 Jan 2011 21:41:13 +0100, Wolfgang Schuster schuster.wolfg...@googlemail.com wrote: Am 05.01.2011 um 20:22 schrieb Procházka Lukáš: Hello, I'd need to pass a variable to Ctx and to retrieve it inside a compiled document - via Ctx itself and also by Lua. Something like modes; but modes allow just to check whether they are on or off. I'd need something like this: You can check modes in Lua: context --arguments=size=small --mode=print test.tex And can I check a variable (argument) in Lua in a similar way? --- \starttext Print mode: \doifmodeelse{print}{yes}{no} \startluacode if tex.modes['print'] then context(Print mode is enabled) else context(Print mode is disabled) end -- Something like this: if tex.arguments['size'] == small then -- Or: 'tex.variables[size] == small' -- Or: 'document.arguments[size] == small' context(Small size) end -- \stopluacode \doifenvelse{size} {\processaction [\env{size}] [ small=Small size, medium=Medium size, big=Big size, unknown=Other size: \env{size}]} {No value “size”} \stoptext --- If the passed argument has a NUMBER value, should it be checked against a number value or a string - so what of the following should be right: context --arguments=size=1 test.tex if tex.arguments['size'] == 1 then ... Or: if tex.arguments['size'] == 1 then ... Best regards, Lukas -- Ing. Lukáš Procházka [mailto:l...@pontex.cz] Pontex s. r. o. [mailto:pon...@pontex.cz] [http://www.pontex.cz] Bezová 1658 147 14 Praha 4 Tel: +420 244 062 238 Fax: +420 244 461 038 ___ 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 ___