La command \newcommand est défini en utilisant \def.
\newcommand est une macro LaTeX qui permet de faire des choses facilement (comme le test sur les macros déjà existantes ou bien de définir facilement un paramètre facultatif). Toutes ces choses sont faisable en TeX pur bien entendu mais demande plus de travail qu'avec leur version TeX \def.
Par contre \def est bien plus puissant, par exemple il est facile d'avoir une macro avec des appels de parametre bizarre genre:
\macro(param1)(param2,param3)=param4/param5;
Ce n'est qu'un exemple de la puissance de \def. Il y a beaucoup (trop) d'autres choses possibles (voir là aussi le "TeX by topic" par exemple).
En fait, en général \newcommand suffit, mais parfois il faut sortir \def, sans parler des cas ou les deux sont plus ou moins équivalents (dans ce cas là, la flemme me porte à utiliser \def, c'est plus court à écrire).
Et puis il faut se souvenir qu'il n'y a pas que LaTeX, mais aussi ConText et autres. Pour faire un package portable il faut éviter les LaTeXeries.
[^] # Re: [HS] LaTeX ou Tex ?
Posté par HSimpson . En réponse au message LaTeX : définition d'une macro avec \def. Évalué à 2.
\newcommand est une macro LaTeX qui permet de faire des choses facilement (comme le test sur les macros déjà existantes ou bien de définir facilement un paramètre facultatif). Toutes ces choses sont faisable en TeX pur bien entendu mais demande plus de travail qu'avec leur version TeX \def.
Par contre \def est bien plus puissant, par exemple il est facile d'avoir une macro avec des appels de parametre bizarre genre:
\macro(param1)(param2,param3)=param4/param5;
Ce n'est qu'un exemple de la puissance de \def. Il y a beaucoup (trop) d'autres choses possibles (voir là aussi le "TeX by topic" par exemple).
En fait, en général \newcommand suffit, mais parfois il faut sortir \def, sans parler des cas ou les deux sont plus ou moins équivalents (dans ce cas là, la flemme me porte à utiliser \def, c'est plus court à écrire).
Et puis il faut se souvenir qu'il n'y a pas que LaTeX, mais aussi ConText et autres. Pour faire un package portable il faut éviter les LaTeXeries.