Difference between revisions of "Command/define"
< Command
Yatskovsky (talk | contribs) m (→Example) |
|||
(24 intermediate revisions by 5 users not shown) | |||
Line 3: | Line 3: | ||
|attributes= | |attributes= | ||
}} | }} | ||
+ | |||
+ | == [[Help:Reference|Syntax]] (autogenerated) == | ||
+ | <syntax>define</syntax> | ||
== [[Help:Reference|Syntax]] == | == [[Help:Reference|Syntax]] == | ||
Line 15: | Line 18: | ||
<tr valign="top" class="third"> | <tr valign="top" class="third"> | ||
<td class="cmd">{...}</td> | <td class="cmd">{...}</td> | ||
− | <td> | + | <td>''macro contents''</td> |
</tr> | </tr> | ||
</table> | </table> | ||
Line 21: | Line 24: | ||
== Description == | == Description == | ||
− | |||
− | |||
− | The optional | + | * In MkII, {{cmd|define}} is like the TeX primitive {{tex|def}}: it defines a new TeX macro. |
− | to your command. | + | * In MkIV {{cmd|define}} is like {{tex|unexpanded}}{{tex|def}} |
− | not | + | : and \defineexpandable is like {{tex|def}}. |
+ | The optional bracketed argument denotes the number of parameters you can give | ||
+ | to your command. ''macro contents'' is the result when the macro gets expanded. | ||
+ | |||
+ | == Pitfalls == | ||
+ | <code>\define</code> does not use {{tex|long}}; that means that in MkII | ||
+ | multiple paragraphs (e.g. through {{tex|par}} or <tt>\endgraf</tt>) | ||
+ | inside arguments will not work. | ||
+ | |||
+ | The name of the new command may not include numbers. | ||
− | == | + | == Example == |
− | |||
− | |||
− | |||
+ | <context mode=mkiv source="yes"> | ||
+ | % wiki mode=mkiv | ||
+ | \define\hello{Good morning} | ||
− | + | % You may not use numbers | |
+ | % \define[1]\mp3{The ID3 Tag of the MP3 file is: #1} | ||
+ | % but this will work: | ||
+ | \define[1]\mpThree{The ID3 Tag of the MP3 file is: #1} | ||
− | + | % You can use non-ASCII characters in MkIV, but not in MkII. | |
− | \define[1]\ | + | % This example is compiled using mkiv. |
+ | \define[1]\KüFst{Küstenfunkstelle, #1!} | ||
\starttext | \starttext | ||
− | \hello{ | + | \hello |
+ | |||
+ | \KüFst{12} | ||
+ | |||
\stoptext | \stoptext | ||
</context> | </context> | ||
== See also == | == See also == | ||
− | + | * {{tex|def}} | |
− | + | == Help from ConTeXt-Mailinglist/Forum == | |
+ | All issues with: | ||
+ | {{Forum|{{SUBPAGENAME}}}} | ||
− | [[Category: | + | [[Category:Command/Internals|define]] |
Latest revision as of 16:22, 11 November 2019
\define
Syntax (autogenerated)
\define[...]\command{...} | |
[...] | number |
\command | csname |
{...} | content |
Syntax
\define[...]\command{...} | |
[...] | number |
{...} | macro contents |
Description
- In MkII, \define is like the TeX primitive \def: it defines a new TeX macro.
- In MkIV \define is like \unexpanded\def
- and \defineexpandable is like \def.
The optional bracketed argument denotes the number of parameters you can give to your command. macro contents is the result when the macro gets expanded.
Pitfalls
\define
does not use \long; that means that in MkII
multiple paragraphs (e.g. through \par or \endgraf)
inside arguments will not work.
The name of the new command may not include numbers.
Example
% wiki mode=mkiv \define\hello{Good morning} % You may not use numbers % \define[1]\mp3{The ID3 Tag of the MP3 file is: #1} % but this will work: \define[1]\mpThree{The ID3 Tag of the MP3 file is: #1} % You can use non-ASCII characters in MkIV, but not in MkII. % This example is compiled using mkiv. \define[1]\KüFst{Küstenfunkstelle, #1!} \starttext \hello \KüFst{12} \stoptext
See also
Help from ConTeXt-Mailinglist/Forum
All issues with: