ntg-context - mailing list for ConTeXt users
 help / color / mirror / Atom feed
* Problem with luacode
@ 2015-01-20 19:03 Eric Gerard
  2015-01-22 18:51 ` Hans Hagen
  0 siblings, 1 reply; 2+ messages in thread
From: Eric Gerard @ 2015-01-20 19:03 UTC (permalink / raw)
  To: ntg-context

Hello Hans,

sorry for that, here is the code I used to check some LUACODE.

\definepapersize[normal][width=14.85cm, height=21cm]

\setupbodyfont[10pt]
\enableregime[il1]
\setupcolor[xwi]

\setuplayout[backspace=16mm, leftmargin=15mm,leftmargindistance=1mm,topspace=10mm,header=0mm,footer=0mm,height=200mm,rightmargin=0mm,width=131mm,location=middle,marking=on]

\setuppapersize[normal][A4]
\definelayer[OngletGauche][x=0mm, y=0mm, width=\paperwidth, height=\paperheight]    
\setupTABLE[r][1][color=dodgerblue,align={middle,lohi},height=1cm,style={\sansserif \bfx},framecolor=black]

% variables
\newdimen\hauteuronglet 			%height of tab
\hauteuronglet=1cm

%variables onglet bas
\newdimen\largeurzoneongletsbas    % total width available for tabs
\newdimen\ordonneeongletsbas 	% vertical position of tab
\newdimen\abscisseongletsbas 	% horizontal position of tab
\newdimen\largeurongletbas		% tab width

\startluacode
	function test(opt_1, arg_1)
		local table = lpeg.split(",",interfaces.tolist(opt_1))
		local labels = lpeg.split(",",arg_1)
				
		local NumLigne = table[1]
		local NbTotalOnglets = table[2]
		local PremierOnglet = table[3]
		
		local decalage = tex.sp("6.5pt")
		
		print(NumLigne)
		print(NbTotalOnglets)
		print(PremierOnglet)
		
		tex.dimen.ordonneeongletsbas = tex.dimen.paperheight - tex.dimen.hauteuronglet * NumLigne
		tex.dimen.largeurzoneongletsbas = tex.dimen.paperwidth - tex.dimen.backspace
		tex.dimen.largeurongletbas = tex.dimen.largeurzoneongletsbas / NbTotalOnglets
		tex.dimen.abscisseongletsbas = tex.dimen.backspace + tex.dimen.largeurongletbas * (PremierOnglet - 1)
		
		local x_ongletsbas = tex.dimen.abscisseongletsbas - decalage
		local y_ongletsbas = tex.dimen.ordonneeongletsbas
		local largeurongletbas = tex.dimen.largeurongletbas
				
		context.setupbackgrounds({"page"},{background = "OngletBas,OngletGauche,ACouper"}) 
		
		context.setlayer({"OngletBas"},{hoffset = x_ongletsbas, voffset = y_ongletsbas},
		context.setupTABLE({c},{1,2,3,4,5,6},{width = largeurongletbas})
		context.bTABLE()
			context.bTR()
				context.bTD()
					context(labels[1])
				context.eTD()
			context.eTR()
		context.eTABLE()
		)
		end
	interfaces.definecommand {
		name = "test",
		arguments = {
		{ "option", "hash" },
		{ "content", "string" },
		},
		macro = test,
		}
\stopluacode

\starttext
\ss
\showframe
\input{tufte}
\test[1,6,1]{GROUND EGRESS}

\stoptext

This code is not working, I get an error while calling the function, and I don’t understand why.

Can you explain if you have a bit of time the remark you made about the overload of table ?

Eric Gerard


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

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: Problem with luacode
  2015-01-20 19:03 Problem with luacode Eric Gerard
@ 2015-01-22 18:51 ` Hans Hagen
  0 siblings, 0 replies; 2+ messages in thread
From: Hans Hagen @ 2015-01-22 18:51 UTC (permalink / raw)
  To: mailing list for ConTeXt users

On 1/20/2015 8:03 PM, Eric Gerard wrote:
> Hello Hans,
>
> sorry for that, here is the code I used to check some LUACODE.
>
> \definepapersize[normal][width=14.85cm, height=21cm]
>
> \setupbodyfont[10pt]
> \enableregime[il1]
> \setupcolor[xwi]
>
> \setuplayout[backspace=16mm, leftmargin=15mm,leftmargindistance=1mm,topspace=10mm,header=0mm,footer=0mm,height=200mm,rightmargin=0mm,width=131mm,location=middle,marking=on]
>
> \setuppapersize[normal][A4]
> \definelayer[OngletGauche][x=0mm, y=0mm, width=\paperwidth, height=\paperheight]
> \setupTABLE[r][1][color=dodgerblue,align={middle,lohi},height=1cm,style={\sansserif \bfx},framecolor=black]
>
> % variables
> \newdimen\hauteuronglet 			%height of tab
> \hauteuronglet=1cm
>
> %variables onglet bas
> \newdimen\largeurzoneongletsbas    % total width available for tabs
> \newdimen\ordonneeongletsbas 	% vertical position of tab
> \newdimen\abscisseongletsbas 	% horizontal position of tab
> \newdimen\largeurongletbas		% tab width
>
> \startluacode
> 	function test(opt_1, arg_1)
> 		local table = lpeg.split(",",interfaces.tolist(opt_1))
> 		local labels = lpeg.split(",",arg_1)
> 				
> 		local NumLigne = table[1]
> 		local NbTotalOnglets = table[2]
> 		local PremierOnglet = table[3]
> 		
> 		local decalage = tex.sp("6.5pt")
> 		
> 		print(NumLigne)
> 		print(NbTotalOnglets)
> 		print(PremierOnglet)
> 		
> 		tex.dimen.ordonneeongletsbas = tex.dimen.paperheight - tex.dimen.hauteuronglet * NumLigne
> 		tex.dimen.largeurzoneongletsbas = tex.dimen.paperwidth - tex.dimen.backspace
> 		tex.dimen.largeurongletbas = tex.dimen.largeurzoneongletsbas / NbTotalOnglets
> 		tex.dimen.abscisseongletsbas = tex.dimen.backspace + tex.dimen.largeurongletbas * (PremierOnglet - 1)
> 		
> 		local x_ongletsbas = tex.dimen.abscisseongletsbas - decalage
> 		local y_ongletsbas = tex.dimen.ordonneeongletsbas
> 		local largeurongletbas = tex.dimen.largeurongletbas
> 				
> 		context.setupbackgrounds({"page"},{background = "OngletBas,OngletGauche,ACouper"})
> 		
> 		context.setlayer({"OngletBas"},{hoffset = x_ongletsbas, voffset = y_ongletsbas},
> 		context.setupTABLE({c},{1,2,3,4,5,6},{width = largeurongletbas})
> 		context.bTABLE()
> 			context.bTR()
> 				context.bTD()
> 					context(labels[1])
> 				context.eTD()
> 			context.eTR()
> 		context.eTABLE()
> 		)
> 		end
> 	interfaces.definecommand {
> 		name = "test",
> 		arguments = {
> 		{ "option", "hash" },
> 		{ "content", "string" },
> 		},
> 		macro = test,
> 		}
> \stopluacode
>
> \starttext
> \ss
> \showframe
> \input{tufte}
> \test[1,6,1]{GROUND EGRESS}
>
> \stoptext
>
> This code is not working, I get an error while calling the function, and I don’t understand why.

\definepapersize
   [normal]
   [width=14.85cm,
    height=21cm]

\setupbodyfont
   [10pt,ss]

\setupcolor
   [xwi]

\setuppapersize
   [normal][A4]

\setuplayout
   [backspace=16mm,
    leftmargin=15mm,
    leftmargindistance=1mm,
    topspace=10mm,
    header=0mm,
    footer=0mm,
    height=200mm,
    rightmargin=0mm,
    width=131mm,
    location=middle,
    marking=on]

\definelayer
   [OngletGauche]
   [x=0mm,
    y=0mm,
    width=\paperwidth,
    height=\paperheight]

\definelayer
   [OngletBas]
   [x=0mm,
    y=0mm,
    width=\paperwidth,
    height=\paperheight]

\setupTABLE
   [r][1]
   [color=dodgerblue,
    align={middle,lohi},
    height=1cm,
    style=\bfx,
    framecolor=black]

% variables

\startluacode
     local decalage      = string.todimen("6.5pt")
     local hauteuronglet = string.todimen("1cm")

	function test(opt_1,arg_1)

		local options = utilities.parsers.settings_to_array(opt_1)
		local labels  = utilities.parsers.settings_to_array(arg_1)

		local NumLigne       = options[1]
		local NbTotalOnglets = options[2]
		local PremierOnglet  = options[3]

		local ordonneeongletsbas    = tex.dimen.paperheight - hauteuronglet * 
NumLigne
		local largeurzoneongletsbas = tex.dimen.paperwidth  - tex.dimen.backspace
		local largeurongletbas      = largeurzoneongletsbas / NbTotalOnglets
		local abscisseongletsbas    = tex.dimen.backspace   + largeurongletbas 
* (PremierOnglet - 1)

		local x_ongletsbas = abscisseongletsbas - decalage
		local y_ongletsbas = ordonneeongletsbas

		context.setupbackgrounds({"page"},{background = 
"OngletBas,OngletGauche,ACouper"})

		context.setlayer(
             { "OngletBas" },
             {
                 hoffset = number.todimen(x_ongletsbas),
                 voffset = number.todimen(y_ongletsbas),
             },
             function()
                 context.setupTABLE(
                     { c },
                     { 1, 2, 3, 4, 5, 6 },
                     { width = number.todimen(largeurongletbas) }
                 )
                 context.bTABLE()
                     context.bTR()
                         context.bTD()
                             context(labels[1])
                         context.eTD()
                     context.eTR()
                 context.eTABLE()
             end
		)

     end

	interfaces.definecommand {
		name      = "test",
		macro     = test,
		arguments = {
             { "option", "hash" },
             { "content", "string" },
		},
     }
\stopluacode

\starttext
     \showframe
     \input{tufte}
     \test[1,6,1]{GROUND EGRESS}
\stoptext

> Can you explain if you have a bit of time the remark you made about the overload of table ?

just don't use string, table, number and other library names as variable 
name

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
___________________________________________________________________________________

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2015-01-22 18:51 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-01-20 19:03 Problem with luacode Eric Gerard
2015-01-22 18:51 ` Hans Hagen

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