Re: [NTG-context] Passing and retrieveing a variable

2011-01-09 Thread Hans Hagen

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

2011-01-08 Thread Procházka Lukáš

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

2011-01-07 Thread Procházka Lukáš Ing . - Pontex s . r . o .

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-01-07 Thread luigi scarso
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

2011-01-07 Thread Peter Münster
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

2011-01-07 Thread Hans Hagen

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

2011-01-05 Thread Peter Münster
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

2011-01-05 Thread Wolfgang Schuster

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

2011-01-05 Thread Procházka Lukáš Ing . - Pontex s . r . o .

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
___