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  wrote:


On 7-1-2011 9:32, Procházka Lukáš Ing. - Pontex s. r. o. wrote:


- Modes are accessible by tex.modes[].


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 Hans Hagen

On 7-1-2011 9:32, Procházka Lukáš Ing. - Pontex s. r. o. wrote:


- Modes are accessible by tex.modes[].


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-07 Thread Peter Münster
Procházka Lukáš Ing. - Pontex s. r. o.  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 luigi scarso
2011/1/7 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[].
>
> - - 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  wrote:
>
>> Procházka Lukáš  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 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[].

- - 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  wrote:


Procházka Lukáš  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-05 Thread Procházka Lukáš Ing . - Pontex s . r . o .

Hello,

thanks, -

On Wed, 05 Jan 2011 21:41:13 +0100, Wolfgang Schuster 
 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
___


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 Peter Münster
Procházka Lukáš  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
___


[NTG-context] Passing and retrieveing a variable

2011-01-05 Thread 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:

Calling context.exe:

---
call context.exe test.mkiv --mode:MyMode --variable MyVariable=AAA
---

And test.mkiv:

---
\starttext
  Hello

  \doifmode{MyMode}{Being in MyMode}

  \ifvariableequal{MyVariable}{AAA}{MyVariable is \MyVariable} % Something like 
this

  \startluacode
if context.variables.MyVariable == "AAA" then
  context("MyVariable is defined.") -- Something like this
end
  \stopluacode
\stoptext
---

Simply said, I'd need to provide a conditional (or: dependent) compilation of 
the input file.

How to handle this?

Best regards,

Lukas


___
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
___