• [^] # Re: Hum, très facile

    Posté par . En réponse au message Latex : la place du nom des chapitres. Évalué à 3.

    Si tu veux, ça n'a pas de conséquence réelle ici.

    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.