# [NTG-context] How to make \def accept block or buffer as part of (long) command argument

Benjamin Buchmuller benjamin.buchmuller at gmail.com
Sun Jan 2 14:14:05 CET 2022

Thanks, Hans, for the answer, but I'm not sure if I get the point.

While this is possible in ConTeXt:

\startsection[title={My Title}]

\beginMyBlock
bla bla
\endMyBlock

\stopsection

The following won't work (end of file error):

\startMyCommand[optional={Maybe}]

\beginMyBlock
bla bla
\endMyBlock

\stopMyCommand

I had hoped for a simple command/modifier like \pleaseacceptblocks\def\startMyCommand[#1]#2\stopMyCommand  to have #2 work in a similar way.

But maybe, as Wolfgang stated here (https://www.mail-archive.com/ntg-context@ntg.nl/msg73956.html), buffers and blocks can't be used in commands. (To add: Even when passed as arguments during compilation?)

Many Thanks again!

Benjamin

> On Jan 2, 2022, at 12:19, Hans Hagen <j.hagen at xs4all.nl> wrote:
>
> On 1/2/2022 11:47 AM, Benjamin Buchmuller via ntg-context wrote:
>> Hi list,
>> I'm playing around with blocks and buffers again, realizing that I cannot use them inbetween a \start...\stop that I defined myself. Apparently, they work between \startsection...\stopsection and the like, so I was wondering how I should define or expand #2 in the MWE below to make TeX happily accept these useful features?
> buffers are stored as-is so no catcode magic stored, contrary to macros
>
> you can use \setbuffer but that doesn't solve the argument passing
>
> however, you can nest buffers so you can make other \start\stop commands buffers too and then do some at the start and (look for \defiebuffer) but it quickly becomes messy i think
>
> Hans
>
>
> -----------------------------------------------------------------
>                                          Hans Hagen | PRAGMA ADE
>              Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
>       tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl
> -----------------------------------------------------------------