Am 12.05.2025 um 05:26 schrieb jbf:
I have the following command which I am using as part of \setuphead[chapter]:

\define[2]\MyChapterCommand%

{\framed[frame=on,bottomframe=on,leftframe=off,rightframe=off,topframe=off,align=middle]

{\vbox{\headtext{chapter} #1 \blank #2}}}

Together with the rest of the \setuphead[chapter] elements, it functions correctly, as indeed it should

But as soon as I place the full description of the chapter head between a \startsetups.... \stopsetups (since I wanted to create a few different chapter possibilities as setups to choose from), the hashes in the above command cause an error.

The error reads: You meant to type ## instead of # right?..... fatal error...

Why is this?

The setups environment is a fancy version of \def with additional features, e.g. ignoring line endings. When you create an environment with

\startsetups A
...
\stopsetups

the internal structure is

\def\xxxA{...}

with xxx as internal prefix for the macro name.


When you create a command within the argument of another command the # of the argument of the inner command have to be doubled, as indicated in the error message, i.e.

\define[1]\Command{... #1 ...}

becomes

\def\OuterCommand{\define[1]\InnerCommand{... ##1 ...}}



Below are two example once with nested definitions and once with a setups environment.

%% begin example - nested definitions
\def\RedefineStrong{\define[1]\Strong{{\it ##1}}}

\define[1]\Strong{{\bf #1}}

\starttext

word \Strong{word} word

\RedefineStrong

word \Strong{word} word

\stoptext
%% end example

%% begin example - setups environment
\startsetups italic
  \define[1]\Strong{{\it ##1}}
\stopsetups

\define[1]\Strong{{\bf #1}}

\starttext

word \Strong{word} word

\setups[italic]

word \Strong{word} word

\stoptext
%% end example


Wolfgang

___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the 
Wiki!

maillist : ntg-context@ntg.nl / 
https://mailman.ntg.nl/mailman3/lists/ntg-context.ntg.nl
webpage  : https://www.pragma-ade.nl / https://context.aanhet.net (mirror)
archive  : https://github.com/contextgarden/context
wiki     : https://wiki.contextgarden.net
___________________________________________________________________________________

Reply via email to