From: "Procházka Lukáš Ing. - Pontex s. r. o." <LPr@pontex.cz>
To: "mailing list for ConTeXt users" <ntg-context@ntg.nl>
Subject: Re: Passing and retrieveing a variable
Date: Fri, 07 Jan 2011 09:32:59 +0100 [thread overview]
Message-ID: <op.voxjc9eltpjj8f@lpr> (raw)
In-Reply-To: <87mxnfkt4o.fsf@micropit.couberia.bzh>
[-- Attachment #1: Type: text/plain, Size: 2170 bytes --]
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 <pmlists@free.fr> wrote:
> Procházka Lukáš <lpr@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:LPr@pontex.cz]
Pontex s. r. o. [mailto:pontex@pontex.cz] [http://www.pontex.cz]
Bezová 1658
147 14 Praha 4
Tel: +420 244 062 238
Fax: +420 244 461 038
[-- Attachment #2: t.mkiv --]
[-- Type: application/octet-stream, Size: 1372 bytes --]
\starttext
Hello
\startluacode
context.hairline()
context("tex"); context(true)
context(type(tex))
context(type(tex.modes))
context(type(tex.arguments))
context(type(tex.variables))
context.hairline()
context("context"); context(true)
context(type(context))
context(type(context.modes))
context(type(context.arguments))
context(type(context.variables))
context.hairline()
context("document"); context(true)
context(type(document))
context(type(document.modes))
context(type(document.arguments))
context(type(document.variables))
context.hairline()
context("tex.modes"); context(true)
context(tostring(tex.modes["MMM"])); context(true)
context.hairline()
context("document.arguments"); context(true)
for k, v in pairs(document.arguments) do
context(k .. " = " .. tostring(v)); context(true)
end
context.hairline()
context("tex"); context(true)
for k, v in pairs(tex) do
--context(k .. " = " .. tostring(v)); context(true)
end
context.hairline()
context("document"); context(true)
for k, v in pairs(document) do
--context(k .. " = " .. tostring(v)); context(true)
end
\stopluacode
\stoptext
[-- Attachment #3: t.pdf --]
[-- Type: application/pdf, Size: 8326 bytes --]
[-- Attachment #4: Type: text/plain, Size: 486 bytes --]
___________________________________________________________________________________
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
___________________________________________________________________________________
next prev parent reply other threads:[~2011-01-07 8:32 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-01-05 19:22 Procházka Lukáš
2011-01-05 20:11 ` Peter Münster
2011-01-07 8:32 ` Procházka Lukáš Ing. - Pontex s. r. o. [this message]
2011-01-07 8:48 ` luigi scarso
2011-01-07 9:15 ` Peter Münster
2011-01-07 21:58 ` Hans Hagen
2011-01-08 18:12 ` Procházka Lukáš
2011-01-09 21:03 ` Hans Hagen
2011-01-05 20:41 ` Wolfgang Schuster
2011-01-06 7:39 ` Procházka Lukáš Ing. - Pontex s. r. o.
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=op.voxjc9eltpjj8f@lpr \
--to=lpr@pontex.cz \
--cc=ntg-context@ntg.nl \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).