Difference between revisions of "Command/dodoublegroupempty"
< Command
Jump to navigation
Jump to search
(Create entire page) |
(source=yes) |
||
Line 36: | Line 36: | ||
This is the standard pattern for writing a command that takes an optional number of arguments in braces: | This is the standard pattern for writing a command that takes an optional number of arguments in braces: | ||
− | <context mode=mkiv> | + | <context mode=mkiv source=yes> |
% This command accepts two optional arguments | % This command accepts two optional arguments | ||
\def\writename% | \def\writename% |
Revision as of 12:27, 28 September 2012
\dodoublegroupempty
Syntax
\dodoublegroupempty\commmand |
Description
\dodoublegroupempty is used to write commands that can take zero, one, or two arguments in braces: if the user specifies less than two arguments, it adds empty arguments at the end to make up the missing numbers.
So, \dodoublegroupempty\command leads to:
\command{#1}{#2} % or \command{#1}{} % or \command{}{} % ,
depending on the generosity of the user. Afterwards one can use the \iffirstargument, \ifsecondargument, ... tests to determine how many arguments were actually passed.
There are variants of this command that will supply anywhere up to seven optional arguments:
- \dosinglegroupempty
- \dodoublegroupempty
- \dotriplegroupempty
- \doquadruplegroupempty
- \doquintuplegroupempty
Example
This is the standard pattern for writing a command that takes an optional number of arguments in braces:
% This command accepts two optional arguments \def\writename% {\dodoublegroupempty \dowritename} % This command looks at how many non-empty arguments % are supplied, and acts accordingly \def\dowritename#1#2% {\ifsecondargument Ms. #2 (first name #1)% \else\iffirstargument Ms. #1% \else No name supplied.% \fi\fi} \writename{Snow}{White} \par \writename{White} \par \writename
See also
Help from ConTeXt-Mailinglist/Forum
All issues with: