ntg-context - mailing list for ConTeXt users
 help / color / mirror / Atom feed
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
___________________________________________________________________________________

  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).