Comment générer l'expression et al automatiquement ?

recherche d'un mot
Voici une fonction "format.names" (tirée de plain.bst) où V. Henn
a rajouté quelques lignes pour mettre un et al pour les auteurs
de numéro supérieurs à 4. N'importe quel style biblio utilise une
fonction avec une syntaxe similaire, il n'y a qu'à insérer les
nouvelles lignes dans la fonction format.names (juste avant la
fin du while) du fichier biblio qui vous plaît et le tour est
joué...

%%%% debut macro %%%%
FUNCTION {format.names}
{ 's :=
  #1 'nameptr :=
  s num.names$ 'numnames :=
  numnames 'namesleft :=
  { namesleft #0 > }
  { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't :=
    nameptr #1 >
    { namesleft #1 >
      { ", " * t * }
      { numnames #2 >
          { "," * }
          'skip$
        if$
        t "others" =
          { " et~al." * }
          { " and " * t * }
        if$
      }
      if$
    }   % fin du "si nameptr > 1"
    't  % "si nameptr = 1"
  if$
  nameptr #1 + 'nameptr :=
  namesleft #1 - 'namesleft :=

% ------------------------------
% si à ce stade on se retrouve avec des noms à placer et que
% le pointeur nameptr est égal à 4 alors il faut
% 1. ajouter un "et al."
% 2. ne pas prendre en compte les auteurs suivants : nameleft:=0
    nameptr #4 =  namesleft #0 >  and
    {  " \emph{et~al.}" *
       #0 'namesleft :=
    }
    'skip$
    if$
% fin des ajouts
% ------------------------------

  }
  while$ % tant qu'il reste des nom à placer
}
%%%% fin macro %%%%

Retour à la FAQ LaTeX
Proposition de modification de la FAQ LaTeX :
bayartb at edgard point fdn point fr
Commentaire sur la version HTML de cette FAQ :
Fabien Torre
© Copyright 1997 Marie-Paule Kluth. Tous droits réservés.

Valid XHTML 1.0! Valid CSS!