Wolfgang Schuster <[email protected]> writes:

> Am 15.12.2010 um 19:40 schrieb Marco Pessotto:
>
>> 
>> Hello there.
>> 
>> I was writing a small macro to emulate a custom \part command, and I
>> broke my head against \dosingleempty (but finally I won). 
>> 
>> […]
>> 
>> It's unclear to me how the arguments are passed between macros.
>> Probably it's just a matter of knowledge of TeX macro programming
>> (which obviously I don't have).
>
> Your test with \iffirstargument fails because you perform it after
> \startalignment which has itself a argument which sets
> \iffirstargument to true, a better way to check for content of the
> optional argument is \doifsomethingelse.
>
> \def\talpart
>   {\dosingleempty\dotalpart}
>
> \def\dotalpart[#1]#2%
>   {\page[right]
>    \blank[force,2*big]
>    \startalignment[center]
>    \doifsomethingelse{#1}
>      {{\bfc#1}\writetolist[talpart]{}{#1. #2}}
>      {\writetolist[talpart]{}{#2}}%
>    \blank[2*big]
>    {\bfd#2}
>    \stopalignment
>    \page[left]}
>
> Wolfgang
>

Thanks a lot for your explanation. I've added a "pitfalls" section to
http://wiki.contextgarden.net/Commands_with_optional_arguments#Pitfalls
(well, it was a pitfall at least for me)

-- 
Marco

___________________________________________________________________________________
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  : http://foundry.supelec.fr/projects/contextrev/
wiki     : http://contextgarden.net
___________________________________________________________________________________

Reply via email to