# Re: [NTG-context] Paasing two arguments from Lua to Context

On 2/13/2018 4:54 PM, Otared Kavian wrote:

Hi all,

After Hans showed me an example of using Lua code in ConTeXt, I am learning
this stuff in the manual cld-mkiv.pdf, which is in
[ConTeXt-StandAlone]/tex/texmf-context/doc/context/documents/general/manuals/cld-mkiv.pdf

From that manual I understand that if a macro command \mycommand is defined so
that it takes one argument, such as in
\mycommand{Myargument}
then in a Lua code one may use it as in
context.mycommand({"Myargument"})

However, if \mycommand takes two arguments (or more), it is not clear to me how
these arguments can be passed from Lua to Context.
Indeed there is always the possibility to say (for a macro taking two arguments)

context("\\mycommand{FirstArgument}{SecondArgument}")

as in the example below with \goto. But I don’t know how to use context.goto…
The reason for which I need such a construction is that I want to add some
links and buttons in my document which point to locations which are determined
inside the Lua code.

Does any one have an idea to do this?


> ...


\startluacode
context("Read the following and also what ")
context("\\goto{Knuth says}[ch:knuth]") context.index("Knuth")
local s,t = "Index","ref:index"
--      context("\\goto{s}[t]") -- this does not work
--      context.goto({"Index"},{"ref:index"}) -- this does not work
context("\\goto{Index}[ref:index]")
\stopluacode


context.goto( "Index", { "ref:index" })

\def\foo#1#2{....}

context.foo("a","b")

\def\foo[#1][#2]{....}

context.foo( { "a" }, { "b" } )

etc

-----------------------------------------------------------------
Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl
-----------------------------------------------------------------
___________________________________________________________________________________
___________________________________________________________________________________