2009/1/21 Wolfgang Schuster <[email protected]>:
>> And in the main file I have:
>>
>> \letterclosing{Hoogachtend}{Cecil Westerhof}
>>
>> But I would like to have this as the default, so I could use:
>>
>> \letterclosing
>>
>> Beside that I would like to have the possibility to use:
>>
>> \letterclosing{business}
>> or
>> \letterclosing{family}
>>
>> This would then use defined values.
>>
>> When the first parameter is filled, but not with a recognized value,
>> then the second parameter should be filled. If not, the compilation of
>> the file should generate an error. Is this something that can be done?
>
> \long\def\letterbody#1%
> {{\blank[line]\setupindenting[yes,medium]#1\par}}
>
> \def\letterclosing
> {\dodoublegroupempty\doletterclosing}
>
> \def\doletterclosing#1#2%
> {\ifsecondargument
> \dodoletterclosing{#1}{#2}%
> \else
> \doifelsenothing{#1}
> {\doletterclosing{Hoogachtend,}{Cecil Westerhof}}%
> {\processaction
> [#1]
> [ family=>{\dodoletterclosing{Informal closing,}{Cecil
> Westerhof}},
> business=>{\dodoletterclosing{Formal closing}{Cecil Westerhof}},
> unknown=>{\errorisfataltrue\waitonfatalerror}]}%
> \fi}
>
> \def\dodoletterclosing#1#2%
> {\blank[line]#1\blank[3*line]#2}
>
> \setupindenting[yes,none]
>
> \starttext
>
> \letterbody{\dorecurse{2}{\input knuth\par}}
> \letterclosing{Hoogachtend,}{Cecil Westerhof}
>
> \page
>
> \letterbody{\dorecurse{2}{\input knuth\par}}
> \letterclosing{family}
>
> \page
>
> \letterbody{\dorecurse{2}{\input knuth\par}}
> \letterclosing{business}
>
> \page
>
> \letterbody{\dorecurse{2}{\input knuth\par}}
> \letterclosing{unknown}
>
> \stoptext
Goes a long way. With two parameters it works. When using 'unknown' or
'dummy', I get \wait= messages. When giving enter, the document is
still generated. But that is not a real problem. But when using:
\letterclosing
or
\letterclosing{}
I get the same wait= message and there is no letterclosing generated
(or an empty one).
Found the problem.
\doifelsenothing{#1}
{\doletterclosing{Hoogachtend,}{Cecil Westerhof}}%
should be:
\doifelsenothing{#1}
{\doletterclosing{Hoogachtend,}{Cecil Westerhof}}%
Now it seems to do what I want.
--
Cecil Westerhof
___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the
Wiki!
maillist : [email protected] / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage : http://www.pragma-ade.nl / http://tex.aanhet.net
archive : https://foundry.supelec.fr/projects/contextrev/
wiki : http://contextgarden.net
___________________________________________________________________________________