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

$\Reponse$ Lorsqu'un document a une longue liste d'auteurs, la tradition lorsqu'on le cite dans un bibliographie est de ne pas mettre la liste complète, mais seulement les quatre premiers, puis et al. (« et les autres » en latin). Dans certains domaines, en français, on n'utilise pas l'expression latine, mais « et collab. » ou « et coll. » (pour collaborateurs).

Pour ce faire, on modifie la fonction format.names (qui est généralement toujours semblable à celle ci-dessous) et on ajoute un test sur le nombre d'auteurs :

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$
    } 
    't
  if$
  nameptr #1 + 'nameptr :=
  namesleft #1 - 'namesleft := 
% ------------------------------
% (debut des ajouts)
% 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 : 
%    on met donc namesleft à 0.
%
    nameptr #4 =  namesleft #0 >  and
    {  " \emph{et~al.}" *
       #0 'namesleft := }
    'skip$
    if$
%
% NB : pour mettre 3 noms au lieu de 4, on mettra #3 
% au lieu de #4 ci-dessus.
% (fin des ajouts)
% ------------------------------   
}
  while$ 
}
3_composition/annexes/bibliographie/generer_l_expression_et_al_automatiquement.txt · Dernière modification: 2019/01/30 08:18 par jejust
CC Attribution-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0