[NTG-context] define macros only visible in a definestartstop-block that have arguments?

Norbert Melzer timmelzer at gmail.com
Fri Mar 20 12:05:42 CET 2015


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



<to be read again>

1

<argument> ...{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?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.ntg.nl/pipermail/ntg-context/attachments/20150320/4e046243/attachment.html>


More information about the ntg-context mailing list