Sortieren von Zitaten und Bibliographie mit natbib und plainnat

Sortieren von Zitaten und Bibliographie mit natbib und plainnat

Ich schreibe eine Arbeit in LaTeX. Ich arbeite mit dem natbibPaket und dem plainnatStil für die Zitate und Referenzen. Das Problem ist, wie die Zitate und Referenzen sortiert werden.

Ich möchte die Zitate nach Jahr sortiert haben (für dasselbe Jahr alphabetisch) und die Referenzen alphabetisch nach dem Nachnamen des Autors sortiert haben. Wie kann ich das machen?

Mein Code:

    \documentclass[12pt,a4paper]{article}
    \usepackage[utf8]{inputenc}
    \usepackage[T1]{fontenc}
    \usepackage[left=2.00cm, right=2.00cm, top=2.00cm, bottom=2.00cm]{geometry}
    \usepackage[comma,authoryear,round]{natbib}
    \usepackage[none]{hyphenat} 
    \bibliographystyle{plainnat}
    \setcitestyle{citesep={;}}

    \begin{filecontents}{\jobname.bib}
    @book{A,
     author = {Ho, L. and Auntz, K. and Zwitter, B. F. and Valencia, D.},
     year = {2010},
     title = {Title Example 1},
    }
    @book{B,
     author = {Ho, L. and Yelp, A. and Richter, G. and Gregory, K. T.},
     year = {2005},
     title = {Title Example 2},
    }
    @book{C,
     author = {Ho, L. Abrook, H. and Dolman, R. G. and Fjing, H. and Ho, S. and Xerem, R.},
     year = {2013},
     title = {Title Example 3},
    }
    }
    @book{D,
     author = {Di Bernardo, L. and Mc Daug, C. and Coelho, L},
     year = {2000},
     title = {Title Example 4},
    }
    @book{E,
     author = {Gomes, L. N. L. and Ginoris, Y. P and Brand\~{a}o, C. C. S.},
     year = {2010},
     title = {Title Example 5},
    }
    \end{filecontents}


    \begin{document}
    Hi, this is an example. First a citation \citep{A,B},
then an inline citation \citet{B}.
Another citation \citep{C,D} and
the last one \citep{A,E}
    \bibliography{\jobname}
    \end{document}

Und das Ergebnis mit den Beobachtungen:

Bildbeschreibung hier eingeben

Antwort1

Wenn Sie die sortOption hinzufügen,natbib

    \usepackage[sort,comma,authoryear,round]{natbib}

dann wird zuerst nach Autorennamen und dann nach Jahr sortiert. Sie scheinen zuerst nach Jahr und dann nach Autorennamen sortieren zu wollen. Ich glaube nicht, dass natbibdas unterstützt wird.

Bearbeiten:Es ist ziemlich einfach, eine Kopie so zu ändern, dass plainnat.bstzuerst nach Jahr und dann nach Name sortiert wird. Dies scheint nicht das zu sein, was Sie in Ihrem Beispiel zeigen, aber vielleicht ist es das, was Sie wollen.

Erstellen Sie zunächst eine Kopie von plainnat.bstin Ihrem aktuellen Verzeichnis und nennen Sie sie yearnat.bst. Auf meinem Computer kann ich das über tun

$ cp `kpsewhich plainnat.bst` yearnat.bst

Bearbeiten yearnat.bstund ändern Sie die presortFunktion wie folgt.

FUNCTION {presort}
{ calc.label
  label sortify
  "    "
  *
  year field.or.null sortify
  "    "
  *
  type$ "book" =
  type$ "inbook" =
  or
    'author.editor.sort
    { type$ "proceedings" =
        'editor.organization.sort
        { type$ "manual" =
            'author.organization.sort
            'author.sort
          if$
        }
      if$
    }
  if$
  *
  "    "
  *
  cite$
  *
  #1 entry.max$ substring$
  'sort.label :=
  sort.label *
  #1 entry.max$ substring$
  'sort.key$ :=
}

Dadurch wird das yearFeld lediglich an den Anfang des Sortierschlüssels verschoben.

Kompilieren Sie nun Ihr Beispiel mit der sortoben genannten Option und dem \bibliographystyle{yearnat}. Hier ist das Ergebnis.

Bildbeschreibung hier eingeben

Wie Sie sehen, ist alles zunächst nach Jahr und dann nach Autor sortiert. Wenn Sie wissen möchten, wie das funktioniert, lesen SieAbonnieren(oder durch Ausführen von texdoc btxhak).

verwandte Informationen