kleines Problem mit et al.

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: kleines Problem mit et al.

kleines Problem mit et al.

von kieselbert » So 24. Okt 2010, 22:57

Hallo Leute,

ich habe mir mithilfe von custom-bib einen Stil fürs Literaturverzeichnis erstellt und den dann nachträglich noch weiter angepasst. Eigentlich ist es so fast perfekt bis auf ein kleines Detail. Leider komme ich mit der Syntax aus den bst-files nicht so ganz klar, bisher konnte ich durch viel probieren dennoch alles zurechtbiegen wie ich es brauchte.

Derzeit hab ich es so, dass im Literaturverzeichnis maximal 3 Autoren angegeben werden. Sind es 4 oder mehr Autoren wird nur noch einer ausgegeben gefolgt von "et al.". Das klappt auch soweit, nur leider wird der Schrägstrich der normal die Autoren voneinander trennt auch zwischen den Autor und das "et al." gesetzt. Das ist mein Problem.

Bsp.:
************
Allman, M./et al., An Evaluation of TCP with Larger Initial Windows,
http://www.icir.org/mallman/papers/initwin-ccr.ps
, veröffentlicht am 01.07.1998, Seitenabruf am 11.08.2010
************

Hier der Code, der für die Formatierung zuständig ist. Der erste Slash gibt wohl die übliche Trennung zwischen den Autoren vor. Der 2. Slash ist dann die Trennung zwischen vorletztem und letztem Autor. Ja und nun müssten da irgendwie noch 1-2 Zeilen rein, damit bei et al. eben kein Slash gesetzt wird. Jemand eine Idee?
FUNCTION {format.names}
{ 'bibinfo :=
  duplicate$ empty$ 'skip$ {
  's :=
  "" 't :=
  #1 'nameptr :=
  s num.names$ 'numnames :=
  numnames 'namesleft :=
    { namesleft #0 > }
    { s nameptr
      "{vv~}{ll}{, jj}{, f{.}.}"
      format.name$
      bibinfo bibinfo.check
      't :=
      nameptr #1 >
        {
          nameptr #1
          #1 + =
          numnames #3
          > and
            { "others" 't :=
              #1 'namesleft := }
            'skip$
          if$
          namesleft #1 >

            { "/" * t * }
            {
              s nameptr "{ll}" format.name$ duplicate$ "others" =
                { 't := }
                { pop$ }
              if$

              "/" *
              t "others" =
                {
                  * bbl.etal *
                }
                { * t * }
              if$
            }
          if$
        }
        't
      if$
      nameptr #1 + 'nameptr :=
      namesleft #1 - 'namesleft :=
    }
  while$
  } if$
}

Nach oben