Anzeige:
Ergebnis 1 bis 4 von 4

Thema: Bibtex Autoren Problem (Vorname - Nachname Reihenfolge)

  1. #1
    Mr_Blonde
    Gast

    Bibtex Autoren Problem (Vorname - Nachname Reihenfolge)

    Hallo,

    ich bastel gerade an meiner Diplomarbeit und habe ein Problem mit Bibtex. Im Literaturverzeichnis werden die Namen der Autoren unterschiedlich angegeben. D.h., wenn ich zwei Autoren angegeben habe, wird der Erste mit NACHMANE, VORNAME und der zweite mit VORNAME, NACHNAME gesetzt. Die Reihenfolge (ob zuerst Vorname oder Nachname) wäre mir eigentlich egal, solange es einheitlich ist. Wenn ich mehr als 2 Autoren angebe wird immer nur der erste in der Reihenfolge N, V und alle anderen V, N gesetzt.

    Hier ein Beispiel:

    (Bibtex Eintrag)
    Code:
    @article{DiHe76,
        author  	= {W. Diffie and M. Hellman},
        title   	= {{New Directions in Cryptography}},
        year    	= {1976},
        journal 	= {IEEE Transactions on Information Theory},
        volume  	= {IT-22},
        number  	= {6},
        pages   	= {644--654},
        language	= {ngerman}
    }
    (gesetztes Literaturverzeichnis)
    [DH76] Diffie, W. und M. Hellman: New Directions in Cryptography. IEEE Transactions
    on Information Theory, IT-22(6):644–654, 1976.
    Zum Setzten benutze ich:
    Code:
    \bibliographystyle{babalpha}
    \bibliography{quellen}
    Weiß jemand, an welcher Stelle man etwas umstellen muß, damit die Namenreihenfolge einheitlich wird?

    Vielen Dank schonmal!

  2. #2
    Julialei
    Gast
    Hi Mr_Blonde,

    in der babalpha.bst wird definiert, wie die Autoren später im Literaturverzeichnis dargestellt werden. Für deine Zwecke musst du in die BST-Programmierung einsteigen.

    VG
    Julia

  3. #3
    Mr_Blonde
    Gast
    Hier ist die (unschöne) Lösung, falls jemand das gleiche Problem hat.

    In der Datei babalpha.bst, folgende Zeilen ändern:


    Original:
    Code:
    FUNCTION {format.names}
    { 's :=
      #1 'nameptr :=
      s num.names$ 'numnames :=
      numnames 'namesleft :=
        { namesleft #0 > }
        { nameptr #1 >
          {
            s nameptr "{ff{\btxfnamespacelong } }{vv~}" format.name$
            s nameptr "{ll}" format.name$ lastnamefont *
            s nameptr "{, jj}" format.name$ *
            't :=
              namesleft #1 >
                { ", " * t namefont * }
                { numnames #2 >
                    { "\btxandcomma {}" * }
                    'skip$
                  if$
                  s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ "others" =
                    { " " "\btxetalshort {.}" etalfont * * }
                    { " \btxandlong {}\ " * t namefont * }
                  if$
                }
              if$
            }
            {
              s nameptr "{ll}" format.name$ lastnamefont
              s nameptr "{,~jj}{, ff{\btxfnamespacelong }}{~vv}"
              format.name$ * namefont
            }
          if$
          nameptr #1 + 'nameptr :=
          namesleft #1 - 'namesleft :=
        }
      while$
    }
    Geändert: (Vorname Nachname)
    Code:
    FUNCTION {format.names}
    { 's :=
      #1 'nameptr :=
      s num.names$ 'numnames :=
      numnames 'namesleft :=
        { namesleft #0 > }
        { nameptr #1 >
          {
            s nameptr "{ff{\btxfnamespacelong } }{vv~}" format.name$
            s nameptr "{ll}" format.name$ lastnamefont *
            s nameptr "{, jj}" format.name$ *
            't :=
              namesleft #1 >
                { ", " * t namefont * }
                { numnames #2 >
                    { "\btxandcomma {}" * }
                    'skip$
                  if$
                  s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ "others" =
                    { " " "\btxetalshort {.}" etalfont * * }
                    { " \btxandlong {}\ " * t namefont * }
                  if$
                }
              if$
            }
            {
            s nameptr "{ff{\btxfnamespacelong } }{vv~}" format.name$
            s nameptr "{ll}" format.name$ lastnamefont *
            s nameptr "{, jj}" format.name$ *
            }
          if$
          nameptr #1 + 'nameptr :=
          namesleft #1 - 'namesleft :=
        }
      while$
    }
    Garantie, dass es in allen Fällen funktioniert, gibt es natürlich keine. :-)
    Geändert von Mr_Blonde (15-02-2008 um 15:02 Uhr)

  4. #4
    Registrierter Benutzer
    Registriert seit
    03.01.2007
    Beiträge
    14
    Hallo,

    bei mir ist es umgekehrt, ich hätte das Literaturverzeichnis gerne so, wie im ersten Post beschrieben. Allerdings weiß ich nicht genau, was dieses babalpha.bst macht, ich habe mir eine solche Datei gegoogelt und als bibliographystyle eingebunden, aber dann bekomme ich eine Fehlermeldung, weil der Befehl providebibliographyfont nicht definiert ist. Muss ich davor noch ein Paket einbinden, damit ich babalpha nutzen kann?

    Danke + Gruß,
    Alex

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •