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

Otared Kavian otared at gmail.com
Tue Feb 13 16:54:37 CET 2018


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?
Thanks in advance and best regards: OK

%% begin test-lua-reference.tex
\setupinteraction[state=start]

\starttext

\startchapter[title={Knuth},reference={ch:knuth}]

% a simple way of adding a link to some part of the document...
Read the following and also what \goto{Ward says}[ch:ward].\index{Ward}
See also the \goto{Index}[ref:index].

\input knuth.tex

\stopchapter

\startchapter[title={Ward},reference={ch:ward}]

% a complicated way of doing the same as above...
\startluacode
	context("Read the following and also what ") 
	context("\\goto{Knuth says}[ch:knuth]") context.index("Knuth")
	context(". See also the ")
	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

\input ward.tex

\stopchapter

\starttitle[title={Index}]

% one could say \pagereference[ref:index], but I need a construction such as this:
\startluacode
	local s,t = "ref:","index"
	context.pagereference({s..t})
\stopluacode
\placeindex
\stoptitle

\stoptext
%% end test-lua-reference.tex


More information about the ntg-context mailing list