Les deux révisions précédentesRévision précédente | |
2_programmation:macros:que_sont_les_macros [2021/10/21 08:27] – [Les commandes avec des arguments] Ajout lien bdumont | 2_programmation:macros:que_sont_les_macros [2022/10/10 15:27] (Version actuelle) – Usage de ⟨...⟩ dbitouze |
---|
<latex>\TeX</latex> est un //processeur de macros// : il compose le texte au fur et à mesure en développant chaque commande (ou macro) qu'il trouve. Les commandes <latex>\TeX</latex> peuvent inclure des instructions à <latex>\TeX</latex> lui-même, en plus de la simple génération de texte à laquelle on peut s'attendre. | <latex>\TeX</latex> est un //processeur de macros// : il compose le texte au fur et à mesure en développant chaque commande (ou macro) qu'il trouve. Les commandes <latex>\TeX</latex> peuvent inclure des instructions à <latex>\TeX</latex> lui-même, en plus de la simple génération de texte à laquelle on peut s'attendre. |
| |
Les commandes sont //une bonne chose// car elles permettent à l'utilisateur de manipuler des documents en fonction du contexte. Par exemple, la commande ''\emph{//texte//}'' de <latex>\LaTeX</latex> produit un texte en italique. Mais si elle est utilisée dans un texte déjà en italique, elle produit un texte en romain (dans les deux cas, cela fait met en valeur le texte que la commande encadre). Mieux, vous pouvez changer le comportement de cette commande en changeant sa définition, par exemple faire en sorte qu'elle produise un texte en gras, un texte en couleur ou un texte souligné. Et ce comportement sera alors appliqué à tout votre document ! | Les commandes sont //une bonne chose// car elles permettent à l'utilisateur de manipuler des documents en fonction du contexte. Par exemple, la commande ''\emph{⟨//texte//⟩}'' de <latex>\LaTeX</latex> produit le ⟨//texte//⟩ en italique. Mais si elle est utilisée dans un texte déjà en italique, elle produit un texte en romain (dans les deux cas, cela fait met en valeur le texte que la commande encadre). Mieux, vous pouvez changer le comportement de cette commande en changeant sa définition, par exemple faire en sorte qu'elle produise un texte en gras, un texte en couleur ou un texte souligné. Et ce comportement sera alors appliqué à tout votre document ! |
| |
===== Le format des commandes ===== | ===== Le format des commandes ===== |
| |
Les noms de commande débutent traditionnellement par un ''\'' suivi d'une séquence de lettres, qui peuvent être majuscules ou minuscules. Ils peuvent également être « n'importe quel caractère unique », ce qui permet toutes sortes de bizarreries (intégrées à la plupart des ensembles de commandes <latex>\TeX</latex>, tel ''\ '' (''\'' suivi d'une espace) signifiant « insérer une espace ici »). | Les noms de commande débutent traditionnellement par un ''\'' suivi d'une séquence de lettres, qui peuvent être majuscules ou minuscules. Ils peuvent également être « n'importe quel caractère unique », ce qui permet toutes sortes de bizarreries (intégrées à la plupart des ensembles de commandes <latex>\TeX</latex>, tel ''\ '' (''\'' suivi d'une espace) signifiant « insérer une espace ici »). |
| |
===== Les commandes de définition ===== | ===== Les commandes de définition ===== |
| |
La programmation de commandes peut être parfois compliquée mais, réduite à sa plus simple expression, elle est assez intuitive : | La programmation de commandes peut être parfois compliquée mais, réduite à sa plus simple expression, elle est assez intuitive : |
| |
<code latex> | <code latex> |
</code> | </code> |
| |
Cette instruction remplace chaque commande ''\truc'' par le texte « élément d'intérêt majeur ». La commande ''\def'' est, de fait, la syntaxe Plain <latex>\TeX</latex> pour définir les commandes. Pour sa part, <latex>\LaTeX</latex> propose une commande ''\newcommand'' qui permet de prendre un peu plus de précaution pour l'utilisateur mais qui fait fondamentalement la même chose : | Cette instruction remplace chaque commande ''\truc'' par le texte « élément d'intérêt majeur ». La commande ''\def'' est, de fait, la syntaxe Plain <latex>\TeX</latex> pour définir les commandes. Pour sa part, <latex>\LaTeX</latex> propose une commande ''\newcommand'' qui permet de prendre un peu plus de précaution pour l'utilisateur mais qui fait fondamentalement la même chose : |
| |
<code latex> | <code latex> |
===== Les commandes avec des arguments ===== | ===== Les commandes avec des arguments ===== |
| |
Les commandes peuvent avoir des //arguments//. Représentés par la notation ''#'' suivi d'un chiffre dans les commandes de définitions, ces derniers vont s'insérer aux emplacements indiqués lors du développement de la commande : | Les commandes peuvent avoir des //arguments//. Représentés par la notation ''#'' suivi d'un chiffre dans les commandes de définitions, ces derniers vont s'insérer aux emplacements indiqués lors du développement de la commande : |
| |
<WRAP column 45ex> | <WRAP column 45ex> |
<WRAP clear /> | <WRAP clear /> |
| |
En <latex>\LaTeX</latex>, cette définition serait écrite de la manière suivante : | En <latex>\LaTeX</latex>, cette définition serait écrite de la manière suivante : |
| |
<WRAP column 45ex> | <WRAP column 45ex> |
metatag-og:site_name=(FAQ LaTeX francophone) | metatag-og:site_name=(FAQ LaTeX francophone) |
}} | }} |
| |