Le principe de la notion de commande est à Latex est ce que la Macro est à Word, à quelques exceptions près.

L'idée est de définir un "mot-clef" (une nom: de fonction dans Word) de  votre choix (tant qu'il n'est pas ni un mot réservé à Latex, ni un mot-clé réservé à une bibliothèque Latex) qui va lancer une action latex, par exemple l'écriture d'un bloc.

Attention : là où une macro latex est plus autour de l'exécution d'action du logiciel en lui-même, la commande latex a bien pour but de générer un texte, un contenu. Ce n'est en aucun cas une macro d'exécution de menus, clics, .... de l'interface graphique de Word. 

Pour les développeurs lecteurs de mon blog, on pourrait plus associer une macro à une procédure ou une fonction qu'à une macro

Commençons par un exemple pour comprendre

 Dans cet exemple, nous allons écrire une macro Latex qui va avoir pour but d'écrire la locution française "C'est-à-dire" (sans les guillemets bien entendu) lorsque l'utilisateur écrire \cad. Comme vous pouvez d'ores et déjà le remarquer, la locution raccourcie commence bien comme une commande Latex par un antislash (\). 
Ainsi, nous allons écrire la commande de la manière suivante : 
 
\newcommand\cad{C'est-à-dire}
 
Ce n'est pas le cas ici, mais il faut savoir que ces commandes peuvent prendre des arguments en paramètres.

Exemple de la redéfinition d'une commande 

 Comme on peut le voir ainsi, nous sommes très proche de la programmation orientée objet et de sa notion de surcharge. Ici, nous allons redéfinir (ou surcharger donc) la commande \thesection, commande dont le but est de redéfinir la présentation des sections de document. C'est ainsi, par exemple, que l'on peut spécifier comment afficher la numérotation des sections (avec des lettres, des chiffres arabes, ...)
 
\newcommand{\thesection}{\alph{section}}
 

Explication de la surcharge de la commande

 Maintenant que nous avons vu comment fonctionne la surcharge,  tout comme en programmation orientée objet, avec Latex, il est possible de surcharger une fonction (on parle aussi d'héritage)
Le principe de la surcharge est de redéfinir une fonctionnalité déjà présente dans Latex. Ainsi, une commande effectuant une action, effectuera une action légèrement modifiée. 
Dans le cas qui nous concerne, nous allons surchargé à commande au travers de la nouvelle commande \renewcommand. À ne pas confondre avec la commande \newcommand qui a pour but de définir sa propre commande personnalisée. Si je résume :
  • \newcommand peut s'assimuer à une macro commande dans word. On définit alors sa propre commande
  • \renewcommand qui n'a pas d'équivalent sous Word, permet de dire à latex il y a commande xxx qui a l'habitude de faire et action yyy fera désormais et action ZZ.
L'utilisation de \renewcommand fonctionne de la façon suivante : chaque fois que la commande native sera rencontrée, c'est-à-dire la commande appartenant au cœur de latex ou de l'un de ses paquets, au lieu d'exécuter son action normalement, tu la remplaces par mon code à moi.
\newcommand possède plusieurs arguments :
  • un nom de commande
  • un nombre d'arguments à la commande, cette valeur étant facultative
  • une valeur par défaut. Si ce deuxième paramètre est présent, y est spécifié que le premier argument de la commande est facultatif et donne sa valeur uniquement si ce deuxième argument est présent.
  • enfin, entre crochet, la redéfinition de la commande.

Exemple de newcommand 

 La commande suivante vous permettra d'écrire la locution française "c'est-à-dire".
 \newcommand\cad{C'est-à-dire}
 
Il pourrait même être possible ainsi d'affecter des paramètres à cette commande.

Exemple de redéfinition d'une commande renewcommand

 Ici, je redéfinis la fonction \thesection pour une numérotation alphabétique à la place du numérotation numérique.
 
\renewcommand{\thesection}{\alph{section}}

Mon Github

slhuilli1's GitHub repositories