Re: [NTG-context] \define a command with square-bracket arguments
Question for the others: What's the difference of \dodoubleargument and \dodoubleempty? I expected \dodoubleargument to throw an error since the arguments are supposed to be mandatory. In MkIV Hans didn’t add this check and in MkII he disabled is for command with three or less argument but even then you get only a message in the log when your command has no argument (i.e. a command with four argument complains only when it has zero argument but doesn’t complain when it has one to four arguments). Wikified: http://wiki.contextgarden.net/Command/dodoubleempty (I've been meaning to document that command for a while now. As a complement to the existing explanation at http://wiki.contextgarden.net/Commands_with_optional_arguments, I mean.) --Sietse ___ If your question is of interest to others as well, please add an entry to the Wiki! maillist : ntg-context@ntg.nl / 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 ___
Re: [NTG-context] \define a command with square-bracket arguments
On 28-9-2012 14:41, Sietse Brouwer wrote: Question for the others: What's the difference of \dodoubleargument and \dodoubleempty? I expected \dodoubleargument to throw an error since the arguments are supposed to be mandatory. In MkIV Hans didn’t add this check and in MkII he disabled is for command with three or less argument but even then you get only a message in the log when your command has no argument (i.e. a command with four argument complains only when it has zero argument but doesn’t complain when it has one to four arguments). Wikified: http://wiki.contextgarden.net/Command/dodoubleempty (I've been meaning to document that command for a while now. As a complement to the existing explanation at http://wiki.contextgarden.net/Commands_with_optional_arguments, I mean.) Originally the 'argument' variant reported a message but when the code was cleaned up that went away ... actually it means that we can say: \let\dosingleargument\dosingleempty \let\dodoubleargument\dodoubleempty \let\dotripleargument\dotripleempty \let\doquadrupleargument \doquadrupleempty \let\doquintupleargument \doquintupleempty \let\dosixtupleargument \dosixtupleempty \let\doseventupleargument\doseventupleempty in syst-aux.mkiv, which is somewhat more efficient There is still checking in the {} variants. Hans - Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | voip: 087 875 68 74 | www.pragma-ade.com | www.pragma-pod.nl - ___ If your question is of interest to others as well, please add an entry to the Wiki! maillist : ntg-context@ntg.nl / 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 ___
[NTG-context] \define a command with square-bracket arguments
Hi all, As I understand it, \define[2] is preferred over \def#1#2 because it refuses to overwrite existing commands. \define[2]\mycommand{code code code} defines a command to be invoked with \mycommand{...}{...} Can I use \define, or a related command, to define a command that takes square-bracket arguments, like so: \mycommand[...][...] ? When I type \define[1][2]\mycommand{code code code} that doesn't work. Cheers, Sietse ___ If your question is of interest to others as well, please add an entry to the Wiki! maillist : ntg-context@ntg.nl / 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 ___
Re: [NTG-context] \define a command with square-bracket arguments
On 09/27/2012 05:45 PM, Sietse Brouwer wrote: Hi all, As I understand it, \define[2] is preferred over \def#1#2 because it refuses to overwrite existing commands. \define[2]\mycommand{code code code} defines a command to be invoked with \mycommand{...}{...} Can I use \define, or a related command, to define a command that takes square-bracket arguments, like so: \mycommand[...][...] ? When I type \define[1][2]\mycommand{code code code} that doesn't work. Cheers, Sietse ___ You know the wiki better than most, but I wonder: are you looking for this page? http://wiki.contextgarden.net/Commands_with_optional_arguments Thomas ___ If your question is of interest to others as well, please add an entry to the Wiki! maillist : ntg-context@ntg.nl / 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 ___
Re: [NTG-context] \define a command with square-bracket arguments
2012-09-27 Sietse Brouwer sbbrou...@gmail.com: Hi Sietse, As I understand it, \define[2] is preferred over \def#1#2 because it refuses to overwrite existing commands. \define overwrites existing commands with pleasure. In contrast to \def it prints a message to the log file: “\mycommand is already defined”. Can I use \define, or a related command, to define a command that takes square-bracket arguments, like so: \mycommand[...][...] \def\mycommand {\dodoubleempty\domycommand} \def\domycommand [#1][#2] {first: #1, second: #2} \mycommand [foo] [bar] \mycommand [foo][bar] \mycommand [foo] Question for the others: What's the difference of \dodoubleargument and \dodoubleempty? I expected \dodoubleargument to throw an error since the arguments are supposed to be mandatory. Marco ___ If your question is of interest to others as well, please add an entry to the Wiki! maillist : ntg-context@ntg.nl / 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 ___