natbib - natdin - Autoren im Verzeichnislimitieren
Verfasst: Sa 11. Jan 2014, 23:07
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:
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
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$ }
Grüße
Johnny