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 ___________________________________________________________________________________
