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 error       > tex error on line 14 in file
d://Lukas/Docs/Ull-Gra/Test/Abr.mkiv: ! TeX capacity exceeded, sorry
[input stack size=10000]


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

Reply via email to