On Mon, May 27, 2019 at 10:15:25AM +0200, luigi scarso wrote:
> On Sun, May 26, 2019 at 3:36 PM Marcel Fabian Krüger <t...@2krueger.de>
> wrote:
> 
> > Hi,
> >
> > inspired by [a recent TeX.sx question][1] this allows delimited macros
> > with `#` in the parameter text by doubling the `#`.
> > It isn't needed that often but it is useful if you try to analyze the
> > parameter text of a TeX macro using TeX code. Also it is completely
> > backward-compatible (`##` always triggers an error without this) and
> > it is very easy to implement.
> >
> > For example:
> >
> > \def\test#1###2{(#1)[#2]}
> > \test hello#{world}
> >
> > would result in (hello)[world]
> >
> > Best regards,
> > Marcel Krüger
> >
> >
> hm, context mkiv already has the "named parameters"
> eg
> \def\doflushparallel#instance#status#line#label#content% called at lua end
>   {\begingroup
>    \def\currentparallelinstance{#instance}%
>    \def\currentparallelnumber  {#status}%
>    \def\currentparallelline    {#line}%
>    \def\currentparallellabel   {#label}%
>    \def\currentparallelcontent {#content}% can be kep at the lua end .. no
> need to use a virtual file
>    \ifcase#status\relax
>      \expandafter\buff_parallel_flush_nop
>    \or
>      \expandafter\buff_parallel_flush_yes
>    \fi
>    \endgroup}
> 
> (see buff-par.mkvi )
> 
> Perhaps one can play with a named parameter as kind of separator.
> 
> -- 
> luigi

That looks interesting. How is it actually implemented? I couldn't find
it in the ConTeXt source. Especially it looks as if the `\def` primitive
is unchanged, but I do not see how this can work then.

Anyway I do not understand what you say with your last statement. How would
they help solving the original problem of `#` delimiters? As far as I
can tell they are rewritten into "normal" positional arguments, so I do
not see how they could help.

Best regards,
Marcel


_______________________________________________
dev-luatex mailing list
dev-luatex@ntg.nl
https://mailman.ntg.nl/mailman/listinfo/dev-luatex

Reply via email to