On 28-2-2010 12:44, Otared Kavian wrote:
On 28 févr. 2010, at 10:17, Wolfgang Schuster wrote:
\def\myMacro {\dotriplegroupempty\domyMacro}
\def\domyMacro#1#2#3% {\doifelsenothing{#3} {Name: #1\crlf Email: #2\crlf} {Name: #1\crlf Address: #2 \crlf Email: #3\crlf}% \thinrule\blank[small]}
Wolfgang
Many thanks Wolfgang! Your solution solves my question.
Now for a complete understanding of the solution (and before putting your solution on the wiki), here is another question. After reading your solution, I searched in the source files and saw that in the file syst-gen.mkii the command \dosinglegroupempty, until \doquintuplegroupempty are defined. For instance \def\dotriplegroupempty#1% {\def\dodogetargument##1% {\def\dodogetargument####1% {\def\dodogetargument% {\dontpermitspacesbetweengroups #1{##1}{####1}}% \dogetgroupargument\thirdargumenttrue\thirdargumentfalse}% \dogetgroupargument\secondargumenttrue\secondargumentfalse}% \dogetgroupargument\firstargumenttrue\firstargumentfalse}
Can one use other constructions like these, for example can one define \dosepttuplegroupempty in order to have macros with 7 arguments, of which 5 are always present, while the sixth and seventh may be absent in some occasions?
sure, you can just test .. \ifsecondargument ... \iffirstargument but in such cases using key/values might make mode sense ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | fax: 038 477 53 74 | www.pragma-ade.com | www.pragma-pod.nl -----------------------------------------------------------------