
Ich verwende natbib
Paket und plainnat
Stil für meine Zitate und Referenzen. Wenn ich verschiedene Arbeiten desselben Autors, aber verschiedener Co-Autoren zitiere, wird die Bibliografie leider nach dem Schlüssel sortiert.
Zum Beispiel:
Der Schlüssel für Ho, Meyn ist Ho2006
, für Ho, Lambling ist Ho2011
, und für Ho, Dreyfus ist Ho2012
. LaTeX berücksichtigt sicherlich die Schlüssel vor dem zweiten Nachnamen des Autors.
Wie kann ich es lösen???
Antwort1
Wie in den Kommentaren oben zu Ihrem ursprünglichen Beitrag erwähnt, ist das MWE notwendig, damit andere herausfinden können, was Sie erreichen möchten und wie Sie es erreichen möchten. Ohne das kann ich nicht sicher sein, dass ich Ihre Frage beantworte, aber ich werde hier trotzdem einige Informationen bereitstellen, die Sie möglicherweise hilfreich finden.
Die Einträge in Ihrem Screenshot scheinen vom article
Typ zu sein. Wenn dies zutrifft, sortiert diese Artikel natbib
mit wie folgt. Hinweis: Ich verwende die 2007er Version von , die zum Zeitpunkt dieser Veröffentlichung im Jahr 2022 die aktuellste ist.plainnat
plainnat.bst
Die
presort
Funktion (beginnend bei Zeile #1313) wendet dieauthor.sort
Regel (in Zeile #1326) an.Die
author.sort
Funktion (ab Zeile 1248) prüft zunächst, ob dasauthor
Feld leer ist. Da Ihr Feld nicht leer ist, übergibt die Funktion Ihrauthor
Feld an diesort.format.names
Funktion.Ich habe unten eine Kopie der
sort.format.names
Funktion (beginnend bei Zeile #1207) eingefügt, um diese Erklärung zu unterstützen. Aus Ihrem obigen Beispiel geht hervor, dass Ihre Einträge 6, 4 bzw. 7 Autoren haben, wobei Semikolons als Trennzeichen und ein Punkt als Abschluss desauthor
Blocks dienen. Der Code hier scheint zu funktionieren, wie Sie in Ihrem Screenshot gezeigt haben, indem er nach dem ersten Autor und dann nach dem Jahr für jeden Ihrer Einträge sortiert. Sie werden die Funktion bemerken, die sich auf dasyear
Feld bezieht, das ins Spiel kommt:a. Nach der Sortierung nach dem ersten Autor UND
b. Es gibt mehr Autoren als „andere“ UND
c. Es gibt insgesamt mehr als zwei Autoren UND
d. Die Funktion befindet sich beim zweiten Autor (zweiter Durchlauf der
while
Schleife)e. DANN nach Jahr sortieren.
Beachten Sie, dass die Sprache in der BST-Datei eine Postfix-Notation implementiert.
FUNCTION {sort.format.names}
{ 's :=
#1 'nameptr :=
""
s num.names$ 'numnames :=
numnames 'namesleft :=
{ namesleft #0 > }
{
s nameptr "{vv{ } }{ll{ }}{ ff{ }}{ jj{ }}" format.name$ 't :=
nameptr #1 >
{
" " *
namesleft #1 = t "others" = and
{ "zzzzz" * }
{ numnames #2 > nameptr #2 = and
{ "zz" * year field.or.null * " " * }
'skip$
if$
t sortify *
}
if$
}
{ t sortify * }
if$
nameptr #1 + 'nameptr :=
namesleft #1 - 'namesleft :=
}
while$
}
Ungeachtet dessen gibt es eine Antwort auf einen TeX Stack Exchange-BeitragHierbeschreibt, wie die plainnat.bst
Datei angepasst werden kann, um eine Sortierung ohne Autor zu ermöglichen.