Seite 1 von 1

natbib - natdin - Autoren im Verzeichnislimitieren

Verfasst: Sa 11. Jan 2014, 23:07
von JohnnyB.
Hallo,
ich habe folgendes Problem. Ich habe ein wunderschönes Literaturverzeichnis mit natbib und der natdin.bst. Ich möchte aber das im Literaturverzeichnis nur eine begrenzte Menge an Autoren angezeigt werden und ab dem beispielsweise 5 et al. angezeigt wird. Leider komme ich mit der bst überhaupt nicht klar.
Ich vermute, dass hier irgendwas geändert werden muss:
FUNCTION {format.names}
{ 's :=
  "" 'u  :=
  #1 'nameptr :=
  s num.names$ 'numnames :=
  numnames 'namesleft :=
    { namesleft #0 > }
    {
       s nameptr "{ll}" format.name$ 't :=
       t capitalize 't :=
       s nameptr "{ jj}" format.name$ 'w :=
       s nameptr "{, ff}{ vv}{ jj}" format.name$ 'u :=
       u  text.length$  'lang :=
       #1 'zahl :=
       "" 'v :=
         {  zahl  lang  <  }
           {  u  zahl  #1  substring$  "~"  =
               {  v  ""  =
                     {  u  #1  zahl  #1  -  substring$  'v :=  }
                     'skip$
                  if$
                  v  u  zahl  #2  substring$ * "." *  w * 'v :=
                }
                'skip$
              if$
            zahl  #1  +  'zahl :=  }
      while$
      v  ""  =
         {  u  'v :=  }
         'skip$
      if$
      t  v  *  fkt  *  't :=
      nameptr #1 >
         { namesleft #1 >
             { " ; " * t * }
             { numnames #2 >
                  { " " * }
                  'skip$
               if$
               t "\textsc{others}" = t "\textsc{others} (Hrsg.)" = or
                  { ua.etal * }
                  { " ; " * t * }
               if$
               }
            if$  %% Ende der namesleft-Pruefung
          }
            't
           if$  %%  Ende der nameptr-Pruefung

      nameptr #1 + 'nameptr :=
      namesleft #1 -  'namesleft :=
    }
  while$  %%  Ende von { namesleft #0 > } ganz oben
  "" 'fkt :=  %% fkt wird zurueckgesetzt
}



FUNCTION {format.authors}
{ author empty$
    { "" }
    { author format.names }
  if$
}
Wie kann man format.names erweitern das er irgendwann die Autoren mit et al. beendet. Bzw. format.authors erklären das eine zweite Funktion aufgerufen werden soll, die das gewünschte Verhalten bewirkt.

Grüße
Johnny