Re: [NTG-context] TeX capacity exceeded - in Lua block - why?

2015-07-16 Thread Procházka Lukáš Ing . - Pontex s . r . o .

Hello,

On Thu, 16 Jul 2015 11:03:05 +0200, luigi scarso luigi.sca...@gmail.com wrote:


 \def\GG{\ifmmode G_G\else$\GG$\fi}
means define the macro \GG as G_G if mmmod is true,
else as \GG 
It's clear that you  always are in a situation where mmod is true, then \GG
is replaced with  G_G


Well, I intended replaced with $G_G$,
 not replaced with  G_G;
so I thought this would force/ensure math mode and thus prevent infinite 
recursion.


but as soon as you fall into mmod not true then you have infinite
recursion.


Also, my observation was that my original macro worked well when called for TeX 
code (at various places of use:
  \GG $\GG$
  \startitemize[][]
\sym{\GG} \GG
\sym{$\GG$} $\GG$
\sym{\m{\GG}} \m{\GG}
\item End
  \stopitemize
)
but stopped working when called from Lua (?!).

@Hans:

This seems to be best solution - exactly what I wanted to achieve: 
\def\GG{\mathematics{G_G}}.

Thanks both for your help.

Best ragrds,

Lukas


--
Ing. Lukáš Procházka | mailto:l...@pontex.cz
Pontex s. r. o.  | mailto:pon...@pontex.cz | http://www.pontex.cz
Bezová 1658
147 14 Praha 4

Tel: +420 241 096 751
Fax: +420 244 461 038

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

Re: [NTG-context] TeX capacity exceeded - in Lua block - why?

2015-07-16 Thread Hans Hagen

On 7/16/2015 10:55 AM, Procházka Lukáš Ing. - Pontex s. r. o. wrote:

Hello,

On Thu, 16 Jul 2015 10:27:48 +0200, Hans Hagen pra...@wxs.nl wrote:


On 7/16/2015 10:20 AM, Procházka Lukáš Ing. - Pontex s. r. o. wrote:

Hello,

why this code:


\def\GG{\ifmmode G_G\else$\GG$\fi}


because in math mode \GG expands \GG which expands \GG 


I want to just pass G_G in math mode, so it seems to me that \ifmmode
G_G... does the check.

The macro should write G + lower index G for both math and non-math
scope.


so

\def\GG{\ifmmode G_G\else$G\low{G}$\fi}

or

\def\GG{\mathematics{G_G}}

now you do a check in \GG and then call for \GG again so \GG again does 
a check etc etc ... you just enforce endless recursion



And, in non math scope, the macro should just enclose itself by $...$
(or \m{...})...

And, this works well in TeX code:


\def\GG{\ifmmode G_G\else$\GG$\fi}

\starttext
   \GG $\GG$
   \startitemize[][]
 \sym{\GG} \GG
 \sym{$\GG$} $\GG$
 \sym{\m{\GG}} \m{\GG}
 \item End
   \stopitemize
\stoptext


So how to rewrite the itemization into Lua?


maybe you mean:

\def\GG{\ifmmode G_G\else$GG$\fi}


... Could be \def\GG{\ifmmode G_G\else$G_G$\fi}, too, but why not
\def\GG{\ifmmode G_G\else$\GG$\fi} (seems to me be simpler as the macro
definition - which may be more complicated - appears only once)?

Lukas



\starttext
   \GG $\GG$ % OK
   \startitemize[][]
 \sym{\GG} \GG % OK
   \stopitemize

   \startluacode
 context.startitemize()
   context.sym([[\GG]])
   context(Abc)
 context.stopitemize()
   \stopluacode
\stoptext


fails with:



tex errortex error on line 14 in file
d://Lukas/Docs/Ull-Gra/Test/Abr.mkiv: ! TeX capacity exceeded, sorry
[input stack size=1]


\GG -\ifmmode G_G\else $\GG
  $\fi
\GG -\ifmmode G_G\else $\GG
  $\fi
\GG -\ifmmode G_G\else $\GG
  $\fi
\GG -\ifmmode G_G\else $\GG
  $\fi
\GG -\ifmmode G_G\else $\GG
  $\fi
\GG -\ifmmode G_G\else $\GG
  $\fi

l.14   \stopluacode



I need to call \GG from within Lua, and the real macro name is created
run-time (contrary to this MNWE; so to be \GG, \HH, \Fik etc. - the name
is obtained from a Lua table as a string).

I cannot understand why all TeX calls are OK but the problem appears in
Lua block...

Best regards,

Lukas




___

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
___











--

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

Re: [NTG-context] TeX capacity exceeded - in Lua block - why?

2015-07-16 Thread Hans Hagen

On 7/16/2015 12:13 PM, Procházka Lukáš Ing. - Pontex s. r. o. wrote:

Hello,

On Thu, 16 Jul 2015 11:03:05 +0200, luigi scarso
luigi.sca...@gmail.com wrote:


 \def\GG{\ifmmode G_G\else$\GG$\fi}
means define the macro \GG as G_G if mmmod is true,
else as \GG 
It's clear that you  always are in a situation where mmod is true,
then \GG
is replaced with  G_G


Well, I intended replaced with $G_G$,
  not replaced with  G_G;
so I thought this would force/ensure math mode and thus prevent infinite
recursion.


but as soon as you fall into mmod not true then you have infinite
recursion.


Also, my observation was that my original macro worked well when called
for TeX code (at various places of use:
   \GG $\GG$
   \startitemize[][]
 \sym{\GG} \GG
 \sym{$\GG$} $\GG$
 \sym{\m{\GG}} \m{\GG}
 \item End
   \stopitemize
)
but stopped working when called from Lua (?!).


it all depends ... if you pass it in a way that it gets expanded you get 
already expansion at the write


you could try \unexpanded\def\GG then

it's hard to say what happens unless one sees the whole application (for 
which i have no time anyway)




@Hans:

This seems to be best solution - exactly what I wanted to achieve:
\def\GG{\mathematics{G_G}}.

Thanks both for your help.

Best ragrds,

Lukas





--

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

Re: [NTG-context] TeX capacity exceeded - in Lua block - why?

2015-07-16 Thread Hans Hagen

On 7/16/2015 12:13 PM, Procházka Lukáš Ing. - Pontex s. r. o. wrote:

This seems to be best solution - exactly what I wanted to achieve:
\def\GG{\mathematics{G_G}}.


compare these two:

\def\GG{\ifmmode G_G\else$\GG$\fi}

\starttext
\edef\x{\GG}
\stoptext

and

\unexpanded\def\GG{\ifmmode G_G\else$\GG$\fi}

\starttext
\edef\x{\GG}
\stoptext

so it all depends on usage

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

Re: [NTG-context] TeX capacity exceeded - in Lua block - why?

2015-07-16 Thread luigi scarso
On Thu, Jul 16, 2015 at 10:55 AM, Procházka Lukáš Ing. - Pontex s. r. o. 
l...@pontex.cz wrote:

 Hello,

 On Thu, 16 Jul 2015 10:27:48 +0200, Hans Hagen pra...@wxs.nl wrote:

  On 7/16/2015 10:20 AM, Procházka Lukáš Ing. - Pontex s. r. o. wrote:

 Hello,

 why this code:

 
 \def\GG{\ifmmode G_G\else$\GG$\fi}


 because in math mode \GG expands \GG which expands \GG 


 I want to just pass G_G in math mode, so it seems to me that \ifmmode
 G_G... does the check.

 The macro should write G + lower index G for both math and non-math
 scope.

 And, in non math scope, the macro should just enclose itself by $...$ (or
 \m{...})...

 And, this works well in TeX code:

 
 \def\GG{\ifmmode G_G\else$\GG$\fi}

 \starttext
   \GG $\GG$
   \startitemize[][]
 \sym{\GG} \GG
 \sym{$\GG$} $\GG$
 \sym{\m{\GG}} \m{\GG}
 \item End
   \stopitemize
 \stoptext
 

 So how to rewrite the itemization into Lua?

  maybe you mean:

 \def\GG{\ifmmode G_G\else$GG$\fi}


 ... Could be \def\GG{\ifmmode G_G\else$G_G$\fi}, too, but why not
 \def\GG{\ifmmode G_G\else$\GG$\fi} (seems to me be simpler as the macro
 definition - which may be more complicated - appears only once)?




 \def\GG{\ifmmode G_G\else$\GG$\fi}
means define the macro \GG as G_G if mmmod is true,
else as \GG 
It's clear that you  always are in a situation where mmod is true, then \GG
is replaced with  G_G
but as soon as you fall into mmod not true then you have infinite
recursion.

-- 
luigi
___
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
___

Re: [NTG-context] TeX capacity exceeded - in Lua block - why?

2015-07-16 Thread Hans Hagen

On 7/16/2015 10:20 AM, Procházka Lukáš Ing. - Pontex s. r. o. wrote:

Hello,

why this code:


\def\GG{\ifmmode G_G\else$\GG$\fi}


because in math mode \GG expands \GG which expands \GG 

maybe you mean:

\def\GG{\ifmmode G_G\else$GG$\fi}


\starttext
   \GG $\GG$ % OK
   \startitemize[][]
 \sym{\GG} \GG % OK
   \stopitemize

   \startluacode
 context.startitemize()
   context.sym([[\GG]])
   context(Abc)
 context.stopitemize()
   \stopluacode
\stoptext


fails with:



tex errortex error on line 14 in file
d://Lukas/Docs/Ull-Gra/Test/Abr.mkiv: ! TeX capacity exceeded, sorry
[input stack size=1]


\GG -\ifmmode G_G\else $\GG
  $\fi
\GG -\ifmmode G_G\else $\GG
  $\fi
\GG -\ifmmode G_G\else $\GG
  $\fi
\GG -\ifmmode G_G\else $\GG
  $\fi
\GG -\ifmmode G_G\else $\GG
  $\fi
\GG -\ifmmode G_G\else $\GG
  $\fi

l.14   \stopluacode



I need to call \GG from within Lua, and the real macro name is created
run-time (contrary to this MNWE; so to be \GG, \HH, \Fik etc. - the name
is obtained from a Lua table as a string).

I cannot understand why all TeX calls are OK but the problem appears in
Lua block...

Best regards,

Lukas




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




--

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

Re: [NTG-context] TeX capacity exceeded - in Lua block - why?

2015-07-16 Thread Procházka Lukáš Ing . - Pontex s . r . o .

Hello,

On Thu, 16 Jul 2015 10:27:48 +0200, Hans Hagen pra...@wxs.nl wrote:


On 7/16/2015 10:20 AM, Procházka Lukáš Ing. - Pontex s. r. o. wrote:

Hello,

why this code:


\def\GG{\ifmmode G_G\else$\GG$\fi}


because in math mode \GG expands \GG which expands \GG 


I want to just pass G_G in math mode, so it seems to me that \ifmmode G_G... 
does the check.

The macro should write G + lower index G for both math and non-math scope.

And, in non math scope, the macro should just enclose itself by $...$ (or 
\m{...})...

And, this works well in TeX code:


\def\GG{\ifmmode G_G\else$\GG$\fi}

\starttext
  \GG $\GG$
  \startitemize[][]
\sym{\GG} \GG
\sym{$\GG$} $\GG$
\sym{\m{\GG}} \m{\GG}
\item End
  \stopitemize
\stoptext


So how to rewrite the itemization into Lua?


maybe you mean:

\def\GG{\ifmmode G_G\else$GG$\fi}


... Could be \def\GG{\ifmmode G_G\else$G_G$\fi}, too, but why not 
\def\GG{\ifmmode G_G\else$\GG$\fi} (seems to me be simpler as the macro 
definition - which may be more complicated - appears only once)?

Lukas



\starttext
   \GG $\GG$ % OK
   \startitemize[][]
 \sym{\GG} \GG % OK
   \stopitemize

   \startluacode
 context.startitemize()
   context.sym([[\GG]])
   context(Abc)
 context.stopitemize()
   \stopluacode
\stoptext


fails with:



tex errortex error on line 14 in file
d://Lukas/Docs/Ull-Gra/Test/Abr.mkiv: ! TeX capacity exceeded, sorry
[input stack size=1]


\GG -\ifmmode G_G\else $\GG
  $\fi
\GG -\ifmmode G_G\else $\GG
  $\fi
\GG -\ifmmode G_G\else $\GG
  $\fi
\GG -\ifmmode G_G\else $\GG
  $\fi
\GG -\ifmmode G_G\else $\GG
  $\fi
\GG -\ifmmode G_G\else $\GG
  $\fi

l.14   \stopluacode



I need to call \GG from within Lua, and the real macro name is created
run-time (contrary to this MNWE; so to be \GG, \HH, \Fik etc. - the name
is obtained from a Lua table as a string).

I cannot understand why all TeX calls are OK but the problem appears in
Lua block...

Best regards,

Lukas




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







--
Ing. Lukáš Procházka | mailto:l...@pontex.cz
Pontex s. r. o.  | mailto:pon...@pontex.cz | http://www.pontex.cz
Bezová 1658
147 14 Praha 4

Tel: +420 241 096 751
Fax: +420 244 461 038

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

Re: [NTG-context] TeX capacity exceeded - in Lua block - why?

2015-07-16 Thread luigi scarso
On Thu, Jul 16, 2015 at 12:13 PM, Procházka Lukáš Ing. - Pontex s. r. o. 
l...@pontex.cz wrote:

 Hello,

 On Thu, 16 Jul 2015 11:03:05 +0200, luigi scarso luigi.sca...@gmail.com
 wrote:

   \def\GG{\ifmmode G_G\else$\GG$\fi}
 means define the macro \GG as G_G if mmmod is true,
 else as \GG 
 It's clear that you  always are in a situation where mmod is true, then
 \GG
 is replaced with  G_G


 Well, I intended replaced with $G_G$,
  not replaced with  G_G;
 so I thought this would force/ensure math mode and thus prevent infinite
 recursion.

  but as soon as you fall into mmod not true then you have infinite
 recursion.


 Also, my observation was that my original macro worked well when called
 for TeX code (at various places of use:
   \GG $\GG$
   \startitemize[][]
 \sym{\GG} \GG
 \sym{$\GG$} $\GG$
 \sym{\m{\GG}} \m{\GG}
 \item End
   \stopitemize
 )
 but stopped working when called from Lua (?!).






\def\GG{\ifmmode G_G\else$\GG$\fi}
define a macro \GG with replacement text
\ifmmode G_G\else$\GG$\fi

In your use in TeX, \if is expanded:
if we  are in mmode then we have the expansion of G ,then  _  and then G.
If we are not in mmode, then we have the expansion of $ , so we enter in
mmode and then we have the expansion of \GG again.
In this second level of expansion, we are in mmod for sure and  so we end
again with G, _  and G.

We cannot know what happen in other situations.

For example, in
\edef\x{\GG} as shown by Hans,

at definition time the replacement text is expanded until possible.

If at definition time we are not in mmode,
this gives the endless sequence

\GG -\ifmmode G_G\else $\GG $\fi
{\ifmmode: (level 1) entered on line 9}
{false}
{\else: \ifmmode (level 1) entered on line 9}

\GG -\ifmmode G_G\else $\GG $\fi
{\ifmmode: (level 2) entered on line 9}
{false}
{\else: \ifmmode (level 2) entered on line 9}

\GG -\ifmmode G_G\else $\GG $\fi
{\ifmmode: (level 3) entered on line 9}
{false}
{\else: \ifmmode (level 3) entered on line 9}

\GG -\ifmmode G_G\else $\GG $\fi 

because in this case the first $ is just accumulated, not interpretated ---
i.e. doesn't trig the change of state to math mode.
To avoid expansion we can say
\edef\x{\noexpand\GG}
which means that the replacement text of \x  is \GG .


Perhaps we can see better here:
\def\HH{\ifmmode H_H\else$H_H$\fi}

\edef\x{\HH}
means,
if we are not in mmode when \x is defined,

\HH -\ifmmode H_H\else $H_H$\fi
{\ifmmode: (level 1) entered on line 10}
{false}
{\else: \ifmmode (level 1) entered on line 10}
{\fi: \ifmmode (level 1) entered on line 10}
{changing \x=undefined}
{into \x=macro:-$H_H$}

so the replacement text of \x is $H_H$





-- 
luigi
___
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
___