Mais, étant donné que c'est du pur TeX, réutiliser \def me semble plus cohérent : je réserve \renewcommand aux macros définies par \newcommand.
Un problème pourrait se poser avec d'autres macros, par exemple celles dont la signature n'est pas simplement \toto[arg1]{arg2}{...}, comme \put(arg1,arg2){arg3} (les parenthèses ne sont pas gérables avec newcommand).
Je préfère n'utiliser que les commandes LaTeX (donc, entre autres, ne pas utiliser \def) dans les .cls et les .sty (destinés uniquement à LaTeX) ; quand cela est possible évidemment : certaines commandes équivalentes LaTeX ne sont pas toujours aussi simples, souples ou robustes (p.ex. \if vs \ifthenelse).
Mais la cohérence n'est pas le fort de LaTeX et des paquets associés : preuve en est l'utilisation très fréquente de commandes TeX (comme \def) dans les classes et dans certains paquets qui sont exclusivement LaTeX (car incompatibles avec plain-TeX ou simplement à cause d'un joli \NeedsTeXFormat{LaTeX2e} au début). Ces commandes étant par ailleurs désavouées par LaTeX, puisque :
1) des macros remplissant ces fonctions y sont définies (\newcommand) ;
2) les documentations officielles les déconseillent.
On pourrait aussi parler de l'habitude d'écrire \z@ pour "0pt", \p@ pour "pt" ou \@ne pour "1pt" et autres écritures très faciles à lire parce que :
1. Knuth le fait ;
2. Knuth dit que ça va plus vite pour TeX (il décompose mieux les terminaux de sa grammaire de cette façon) ;
alors que
1. c'est souvent illisible ;
2. on est plus en 1986, ce n'est sûrement pas la différence entre le découpage de "\@ne " et celui de "1pt " qui fait que (La)TeX est lent.
[^] # Re: Hum, très facile
Posté par Sylvain Sauvage . En réponse au message Latex : la place du nom des chapitres. Évalué à 3.
Mais, étant donné que c'est du pur TeX, réutiliser \def me semble plus cohérent : je réserve \renewcommand aux macros définies par \newcommand.
Un problème pourrait se poser avec d'autres macros, par exemple celles dont la signature n'est pas simplement \toto[arg1]{arg2}{...}, comme \put(arg1,arg2){arg3} (les parenthèses ne sont pas gérables avec newcommand).
Je préfère n'utiliser que les commandes LaTeX (donc, entre autres, ne pas utiliser \def) dans les .cls et les .sty (destinés uniquement à LaTeX) ; quand cela est possible évidemment : certaines commandes équivalentes LaTeX ne sont pas toujours aussi simples, souples ou robustes (p.ex. \if vs \ifthenelse).
Mais la cohérence n'est pas le fort de LaTeX et des paquets associés : preuve en est l'utilisation très fréquente de commandes TeX (comme \def) dans les classes et dans certains paquets qui sont exclusivement LaTeX (car incompatibles avec plain-TeX ou simplement à cause d'un joli \NeedsTeXFormat{LaTeX2e} au début). Ces commandes étant par ailleurs désavouées par LaTeX, puisque :
1) des macros remplissant ces fonctions y sont définies (\newcommand) ;
2) les documentations officielles les déconseillent.
On pourrait aussi parler de l'habitude d'écrire \z@ pour "0pt", \p@ pour "pt" ou \@ne pour "1pt" et autres écritures très faciles à lire parce que :
1. Knuth le fait ;
2. Knuth dit que ça va plus vite pour TeX (il décompose mieux les terminaux de sa grammaire de cette façon) ;
alors que
1. c'est souvent illisible ;
2. on est plus en 1986, ce n'est sûrement pas la différence entre le découpage de "\@ne " et celui de "1pt " qui fait que (La)TeX est lent.