Re: [NTG-context] define macros only visible in a definestartstop-block that have arguments?
OK, took me a while to figure out that this was not an empty response but an attachement was available ;) I did a quick test run and realized that it seems to do what I want, I'll take a further look into it tommorrow, thank you! 2015-03-20 17:23 GMT+01:00 Hans Hagen : > On 3/20/2015 12:05 PM, Norbert Melzer wrote: > >> Hi! >> >> I have trouble to define macros which are only visible inside a block >> defined using `\definestartstop`: >> >> ```tex >> \setuppapersize[A6] >> \definestartstop[Foo][before={Foo}] >> \definestartstop[Bar][before={\bgroup\define\Foo{Foo}},after={\egroup}] >> %\definestartstop[Baz][before={\bgroup\define[1]\Foo{Foo#1}} >> ,after={\egroup}] >> >> \starttext >>\startFoo >> Bar >>\stopFoo >> >>\startBar >> \Foo Bar >>\stopBar >> >> % \startBaz >> %\Foo{Bar} >> % \stopBaz >> \stoptext >> ``` >> >> The code as above works and typesets "FooBar" on two separate lines. But >> if I uncomment everything `Baz`-related, I end up with the following >> error: >> >> ```plain >> tex error > error on line 4 in file C:/HIDDEN/mwe.tex: ! Illegal >> parameter number in definition of \m_syst_action_yes >> >> 1 >> ...{Baz}][{before={\bgroup \define [1]\Foo {Foo##1 >>}},after={\egroup }}] >> \doifnextoptionalelse ...ef \m_syst_action_yes {#1 >>}\def >> \m_syst_action_nop {... >> l.4 ...bgroup\define[1]\Foo{Foo#1}},after={\egroup}] >> 1 \setuppapersize[A6] >> 2 \definestartstop[Foo][before={Foo}] >> 3 >> \definestartstop[Bar][before={\bgroup\define\Foo{Foo}},after={\egroup}] >> 4 >> >> \definestartstop[Baz][before={\bgroup\define[1]\Foo{Foo#1}}, >> after={\egroup}] >> 5 >> 6 \starttext >> 7 \startFoo >> 8 Bar >> 9 \stopFoo >> 10 >> 11 \startBar >> 12 \Foo Bar >> 13 \stopBar >> 14 >> ``` >> >> Can someone help me get this running? >> >> >> >> ___ >> 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 > > ___ > ___ 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] define macros only visible in a definestartstop-block that have arguments?
On 3/20/2015 12:05 PM, Norbert Melzer wrote: Hi! I have trouble to define macros which are only visible inside a block defined using `\definestartstop`: ```tex \setuppapersize[A6] \definestartstop[Foo][before={Foo}] \definestartstop[Bar][before={\bgroup\define\Foo{Foo}},after={\egroup}] %\definestartstop[Baz][before={\bgroup\define[1]\Foo{Foo#1}},after={\egroup}] \starttext \startFoo Bar \stopFoo \startBar \Foo Bar \stopBar % \startBaz %\Foo{Bar} % \stopBaz \stoptext ``` The code as above works and typesets "FooBar" on two separate lines. But if I uncomment everything `Baz`-related, I end up with the following error: ```plain tex error > error on line 4 in file C:/HIDDEN/mwe.tex: ! Illegal parameter number in definition of \m_syst_action_yes 1 ...{Baz}][{before={\bgroup \define [1]\Foo {Foo##1 }},after={\egroup }}] \doifnextoptionalelse ...ef \m_syst_action_yes {#1 }\def \m_syst_action_nop {... l.4 ...bgroup\define[1]\Foo{Foo#1}},after={\egroup}] 1 \setuppapersize[A6] 2 \definestartstop[Foo][before={Foo}] 3 \definestartstop[Bar][before={\bgroup\define\Foo{Foo}},after={\egroup}] 4 >> \definestartstop[Baz][before={\bgroup\define[1]\Foo{Foo#1}},after={\egroup}] 5 6 \starttext 7 \startFoo 8 Bar 9 \stopFoo 10 11 \startBar 12 \Foo Bar 13 \stopBar 14 ``` Can someone help me get this running? ___ 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 - setups-003.tex Description: TeX document ___ 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 ___
[NTG-context] define macros only visible in a definestartstop-block that have arguments?
Hi! I have trouble to define macros which are only visible inside a block defined using `\definestartstop`: ```tex \setuppapersize[A6] \definestartstop[Foo][before={Foo}] \definestartstop[Bar][before={\bgroup\define\Foo{Foo}},after={\egroup}] %\definestartstop[Baz][before={\bgroup\define[1]\Foo{Foo#1}},after={\egroup}] \starttext \startFoo Bar \stopFoo \startBar \Foo Bar \stopBar % \startBaz %\Foo{Bar} % \stopBaz \stoptext ``` The code as above works and typesets "FooBar" on two separate lines. But if I uncomment everything `Baz`-related, I end up with the following error: ```plain tex error > error on line 4 in file C:/HIDDEN/mwe.tex: ! Illegal parameter number in definition of \m_syst_action_yes 1 ...{Baz}][{before={\bgroup \define [1]\Foo {Foo##1 }},after={\egroup }}] \doifnextoptionalelse ...ef \m_syst_action_yes {#1 }\def \m_syst_action_nop {... l.4 ...bgroup\define[1]\Foo{Foo#1}},after={\egroup}] 1 \setuppapersize[A6] 2 \definestartstop[Foo][before={Foo}] 3 \definestartstop[Bar][before={\bgroup\define\Foo{Foo}},after={\egroup}] 4 >> \definestartstop[Baz][before={\bgroup\define[1]\Foo{Foo#1}},after={\egroup}] 5 6 \starttext 7 \startFoo 8 Bar 9 \stopFoo 10 11 \startBar 12 \Foo Bar 13 \stopBar 14 ``` Can someone help me get this running? ___ 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 ___