Bibliografiedatenbank und Sortierung

Eine .bib-Datei weiß nicht, wie sie am Ende gedruckt wird – und genau diese Unkenntnis ist der Kern des Entwurfs. Sie ist eine Klartext-Datenbank, @article{shannon1948, author = {Shannon, Claude E.}, …}, die ausschließlich festhält, was ein Werk ist, und nie, wie es aussehen soll. Darum überlebt eine einzige .bib jeden LaTeX-Aufsatz und jede Zeitschrift, an die er geschickt wird. Der Haken: Eine Datenbank hat eine Grammatik, und in dieser stecken einige Überraschungen – in einer .bib-Datei beginnt % keinen Kommentar, ein Komma innerhalb eines Namens bedeutet etwas sehr Bestimmtes, und ein einziges Paar geschweifter Klammern ist die einzige Abwehr, wenn ein Stil beschließt, den Titel umzuschreiben. Diese Seite behandelt die Datei selbst: Eintragstypen, Felder, die Wahl eines Zitierschlüssels, die Syntax der Namen, Akzente, @string und crossref.

Diese Arbeitsteilung ist die eigentliche Entwurfsentscheidung, getroffen Mitte der 1980er-Jahre. Werden Daten (.bib) und Erscheinungsbild (ein .bst-Stil) getrennt gehalten, kostet ein Wechsel der Zeitschrift eine einzige Zeile Stil, während die Daten unangetastet bleiben. Umgekehrt gilt: Sobald die Versuchung aufkommt, Gestaltung in die .bib zu schreiben, ist der Kampf meist schon verloren. Wie die Werkzeuge bedient werden – die Reihenfolge latex → bibtex → latex → latex, die Wahl eines .bst –, behandelt die BibTeX-Seite; wie \cite im Text geschrieben wird, die Seite zum Zitieren. Hier geht der Blick ausschließlich ins Innere der Datei.

Aufbau eines Eintrags: @typ{schlüssel, feld = {wert}}

Ein Eintrag besteht aus drei Teilen: einem Typ nach dem @, einem Zitierschlüssel direkt hinter der öffnenden Klammer und einer kommagetrennten Folge von Feldern. Etwas Viertes gibt es nicht zu lernen. Hier ein Eintrag – Shannons Aufsatz von 1948, mit dem die Informationstheorie begann.

references.bib
@article{shannon1948,
  author  = {Shannon, Claude E.},
  title   = {A Mathematical Theory of Communication},
  journal = {Bell System Technical Journal},
  volume  = {27},
  number  = {3},
  pages   = {379--423},
  year    = {1948}
}

Die Details sind nachsichtig. Werte dürfen in geschweiften Klammern { } oder in doppelten Anführungszeichen " " stehen, und ein rein numerischer Wert wie year = 1948 darf nackt bleiben. Ein Komma nach dem letzten Feld ist optional. Typ- und Feldnamen sind nicht groß-/kleinschreibungssensitiv: @Article und @article, Title und title sind dasselbe. In der Praxis empfiehlt sich, durchgehend Klammern zu setzen – Anführungszeichen scheitern an jedem Wert, der selbst ein " enthält, und Klammern vertragen sich besser mit @string-Makros. Der doppelte Bindestrich in pages = {379--423} wird im Satz zum Halbgeviertstrich „–“. Ein einfacher Bindestrich erscheint als kurzer Trennstrich, was für einen Bereich falsch ist.

Einen Zitierschlüssel wählen – und welche Zeichen verboten sind

Der Zitierschlüssel gehört ganz der schreibenden Person; erlaubt ist alles, solange er innerhalb der .bib eindeutig ist. Er muss zeichengenau zu \cite{shannon1948} im Text passen, Groß- und Kleinschreibung eingeschlossen. Üblich ist Nachname + Jahr (shannon1948), bei Kollisionen mit angehängtem Buchstaben – shannon1948a, shannon1948b. Ein merkbarer Schlüssel schlägt auf Dauer jeden maschinell erzeugten. Die verbotenen Zeichen liegen fest: geschweifte Klammern, Kommas, Leerzeichen, Backslashes, #, % und ~ sind überall untersagt, biber lehnt zusätzlich runde Klammern, Anführungszeichen und = ab. Wird derselbe Schlüssel zweimal definiert, meldet BibTeX Repeated entry---line 15 of file refs.bib und verwirft den späteren Eintrag vollständig. Das ist der klassische Unfall nach doppeltem Import desselben Datensatzes aus einem Literaturverwaltungsprogramm – die Meldung lohnt sich zu merken.

Welcher Eintragstyp: @article, @book, @inproceedings oder @misc

Der Typ erklärt, was ein Werk ist, und mit der Wahl entscheidet zugleich der Stil, welche Felder in welcher Reihenfolge erscheinen. Klassisches BibTeX kennt die folgenden vierzehn Standardtypen. Zu jedem gehören Pflichtfelder (fehlt eines, folgt eine Warnung) und optionale Felder; die Datei, die diese Zuordnung enthält, ist nicht die eigene, sondern der Stil (.bst).

TypWofür er stehtWichtige Pflichtfelder
@articleAufsatz in einer Zeitschrift oder Periodikaauthor, title, journal, year
@bookBuch mit genanntem Verlagauthor oder editor, title, publisher, year
@bookletGebundenes Werk ohne genannten Verlagtitle (mindestens)
@inproceedingsBeitrag in einem Tagungsbandauthor, title, booktitle, year
@conferenceAlias für @inproceedings (Scribe-Kompatibilität)(wie @inproceedings)
@proceedingsDer Tagungsband selbst; Elternteil für crossreftitle, year
@incollectionBetiteltes Kapitel in einem Sammelbandauthor, title, booktitle, publisher, year
@inbookTeil eines Buches (Kapitel oder Seitenbereich)author/editor, title, chapter oder pages, publisher, year
@phdthesisDoktorarbeitauthor, title, school, year
@mastersthesisMasterarbeitauthor, title, school, year
@techreportBericht einer Institutionauthor, title, institution, year
@manualTechnisches oder Software-Handbuchtitle (mindestens)
@unpublishedUnveröffentlichtes Manuskript oder Entwurfauthor, title, note
@miscAlles, was oben nicht passtkeine Pflichtfelder (mit howpublished, note ergänzen)

Zwei Paare stiften das meiste Zögern. @inbook gegenüber @incollection: Das erste ist ein Teil eines einzelnen Buches (etwa Kapitel 3 des eigenen), das zweite ein eigenständiger Beitrag anderer Verfasserschaft in einem Sammelband. @inproceedings und @conference sind funktional völlig gleich – @conference überlebt nur als Alias zur Verträglichkeit mit Scribe, dem Satzsystem, von dem BibTeX abstammt; in neuem Material gehört daher @inproceedings hin. Abschlussarbeiten teilen sich nach Grad auf @phdthesis und @mastersthesis auf, und was nirgends passt, fällt an @misc und wird mit howpublished oder note gestützt.

Modernes biblatex deckt nahezu all das ab und ergänzt weitere Typen: @online (Alias @electronic) für Webquellen, ein allgemeines @report, dessen Feld type die Gattung benennt, ein gradunabhängiges @thesis sowie @xdata – ein reiner Datenbehälter, der weder zitiert noch gedruckt werden kann und nur dazu da ist, beerbt zu werden. @online passt zu arXiv- und Preprint-Datensätzen, zusammen mit den unten beschriebenen eprint-Feldern. Diese neueren Typen setzen biber/biblatex voraus; klassisches bibtex mit einem .bst versteht sie unter Umständen nicht.

Pflicht- und optionale Felder – und wohin DOI und URL gehören

Ein Feld ist ein Paar name = {value}. Welche Felder Pflicht und welche optional sind, hängt vom Typ ab, und diese Grenze zieht der Stil. Fehlt ein Pflichtfeld, warnt BibTeX; ein unbekanntes Feld wird in den meisten Stilen stillschweigend übergangen – die überzähligen Felder aus importierten Metadaten richten also keinen Schaden an. Diese Felder begegnen einem über alle Typen hinweg.

  • author / editor — Autor oder Herausgeber; die Syntax für mehrere Namen folgt im nächsten Abschnitt.
  • title — der Titel: Aufsatztitel, Buchtitel, Kapitelüberschrift.
  • journal / booktitle — der Zeitschriftentitel (@article) oder der Titel des enthaltenden Buchs bzw. Tagungsbands (@inproceedings, @incollection).
  • year / month / date — klassisches BibTeX nutzt year und month; biblatex bevorzugt eine ISO-Form wie date = {2026-05-01} (ein bloßes date = {2026} genügt auch).
  • volume / number / pages — Band, Heft und Seiten; Bereiche schreibt man mit doppeltem Bindestrich, pages = {379--423}.
  • publisher / institution / school — Verlag / herausgebende Institution (Berichte) / gradverleihende Universität (Abschlussarbeiten).
  • doi / url / urldate — der DOI (nur der 10.…-Körper, ohne https://doi.org/), eine URL und das Zugriffsdatum in biblatex.
  • eprint / eprinttype / eprintclass — die Preprint-Felder von biblatex. Für arXiv: eprint = {2405.00001}, eprinttype = {arxiv} (früher archivePrefix), eprintclass (früher primaryClass) für das Fachgebiet.
  • note / howpublished — freie Anmerkungen / „wie veröffentlicht“, der übliche Platz für die URL eines @misc-Eintrags.

Hier liegt das Schlagloch, in das fast alle einmal geraten. Die klassischen Standardstile kennen weder doi noch url. Die Zeichenkette url kommt in plain.bst kein einziges Mal vor, und ein sorgfältig ausgefülltes Feld verschwindet einfach – ohne auch nur eine Warnung. Drei Auswege gibt es: \usepackage{url} laden und die Adresse in howpublished = {\url{https://…}} unterbringen; auf einen Stil wechseln, der sie versteht, etwa plainnat (natbib) oder IEEEtran; oder zu biblatex übergehen, wo doi, url und urldate vollwertige Felder sind und die Ausgabe mit einer Option wie \usepackage[doi=false]{biblatex} abgeschaltet werden kann. Die richtige Gewohnheit: in den Daten stets beides festhalten und dem Stil überlassen, ob es gedruckt wird.

references.bib
% classic BibTeX: standard .bst styles drop doi/url, so use howpublished
@misc{tug2024,
  author       = {{TeX Users Group}},
  title        = {TeX Live 2024},
  howpublished = {\url{https://tug.org/texlive/}},
  note         = {Accessed 7 August 2026},
  year         = {2024}
}

% biblatex: doi, url and urldate are proper fields
@online{arxiv2405,
  author     = {Doe, Jane},
  title      = {A Preprint with a {DOI}},
  date       = {2024-05-01},
  eprint     = {2405.00001},
  eprinttype = {arxiv},
  doi        = {10.1000/example},
  url        = {https://arxiv.org/abs/2405.00001},
  urldate    = {2026-08-07}
}

Autorennamen schreiben: and, von, Jr und die vierteilige Grammatik

Mehrere Autoren werden mit and getrennt – niemals mit einem Komma, denn das Komma hat eine andere Aufgabe. BibTeX liest einen einzelnen Namen als vier Teile: First, von, Last und Jr und akzeptiert genau drei Schreibweisen: First von Last, von Last, First und von Last, Jr, First. Das Komma markiert dabei die Grenze zwischen den Teilen. Deshalb bedeutet author = {Shannon, Claude E.} Nachname Shannon, Vorname Claude E. Die erste, natürliche Reihenfolge genügt meist, versagt aber in zwei Fällen: wenn ein Jr-Teil vorliegt und wenn der Nachname aus mehreren Wörtern besteht, ohne von-Teil. Bei Per Brinch Hansen liest BibTeX „Brinch“ fälschlich als Teil des Vornamens; bei Brinch Hansen, Per bleibt kein Spielraum für Missverständnisse.

references.bib
@book{names2026,
  author = {de la Vall{\'e}e Poussin, Charles Louis Xavier Joseph
            and Brinch Hansen, Per
            and Ford, Jr., Henry
            and {The TeX Users Group}
            and others},
  title  = {Four Ways to Write One Name},
  publisher = {William Reid {and} Company},
  year   = {2026}
}

Woher weiß BibTeX also, dass de la ein von-Teil ist? Die Regel ist entwaffnend schlicht: Ein Token gilt als von, wenn sein erster Buchstabe außerhalb von Klammern klein ist. In de la Vall{\'e}e Poussin beginnen de und la klein und bilden den von-Teil, die beiden folgenden Wörter den Last-Teil. Die Regel lässt sich austricksen: Ein vorangestelltes Scheinmakro, das mit einem Großbuchstaben beginnt, schiebt auch einen kleingeschriebenen Nachnamen in den Last-Teil. Daraus folgen drei praktische Konsequenzen. Bei zu vielen Autoren endet die Liste auf and others, und der Stil setzt „et al.“ ein. Ein Körperschaftsname muss als Ganzes in Klammern stehen, {The TeX Users Group}, damit das darin enthaltene and nicht als Trenner gelesen wird. In biblatex greift dieselbe Regel auch bei den literalen Listen publisher, institution, organization und location: Ein and, das zu einem Firmennamen gehört, muss geklammert werden – publisher = {William Reid {and} Company}.

Akzente und Nicht-ASCII-Namen: G{\"o}del ist nicht dasselbe wie Gödel

Für klassisches bibtex ist ein Akzentzeichen ein „special character“ – alles von einer öffnenden Klammer auf oberster Ebene, unmittelbar gefolgt von einem Backslash, bis zur zugehörigen schließenden Klammer. {\"o} und {\'e} sind solche Gebilde, und BibTeX zählt die ganze Gruppe als einen einzigen Buchstaben. In Labels zeigt sich die Wirkung deutlich. Im Stil alpha erzeugt G{\"o}del das Label G{\"o}d31; derselbe Name als rohes UTF-8 geschrieben, Gödel, ergibt dagegen Gö31 – denn ö belegt zwei Bytes, und bibtex 0.99d, das Bytes zählt, hat damit seine drei Zeichen bereits verbraucht. Beim Sortieren geschieht dasselbe, und japanische, chinesische oder koreanische Namen ergeht es noch schlechter. Daraus folgt eine einzige praktische Konsequenz: Bei Nicht-ASCII-Namen gehört biber verwendet, das auf UTF-8 ausgelegt ist und mit sprachbewusster Sortierung arbeitet. Wo klassisches BibTeX zwingend bleibt, schreibt man die Namen in der Form {\"o} oder wechselt zum achtbitfähigen bibtex8 / bibtexu.

references.bib
% classic bibtex + alpha.bst -> label [G{\"o}d31]
@article{godel1931a,
  author  = {G{\"o}del, Kurt},
  title   = {On Formally Undecidable Propositions},
  journal = {Monatshefte},
  year    = {1931}
}

% same name in raw UTF-8 -> label [Gö31] under bibtex 0.99d; fine under biber
@article{godel1931b,
  author  = {Gödel, Kurt},
  title   = {Same Name, Raw UTF-8},
  journal = {Monatshefte},
  year    = {1931}
}

Warum {DNA} Klammern braucht – und wann nicht

Die klassischen Stile – plain, abbrv, unsrt, alphasetzen den Titel eines Aufsatzes bis auf den ersten Buchstaben klein. title = {A Theory of DNA and Galois Theory} erscheint daher als „A theory of dna and galois theory“. Eigennamen und Akronyme finden keine Gnade. Dagegen hilft genau ein Werkzeug: den zu erhaltenden Bereich in ein zweites Klammerpaar setzen. Als {DNA} geschrieben, liegt dieser Bereich außerhalb der Umwandlung. Diesen einen Griff nicht zu kennen ist die häufigste Ursache verunstalteter Literaturlisten. Warum das Programm so arbeitet, gehört auf die BibTeX-Seite.

Mit biblatex und biber ändert sich das Bild. Die Standardstile – numeric, authoryear und die übrigen – rühren die Groß- und Kleinschreibung eines Titels gar nicht an; er erscheint genau so, wie er getippt wurde. Sentence case tritt nur ein, wenn sie ausdrücklich angefordert wird, etwa durch \DeclareFieldFormat{titlecase}{\MakeSentenceCase*{#1}}, und selbst dann bildet die voreingestellte Option bibtexcaseprotection=true die Klammerregel von BibTeX nach, sodass {DNA} weiterhin geschützt bleibt. Mit bibtexcaseprotection=false hören Klammern auf zu schützen; die Absicht wird dann mit \NoCaseChange{DNA} ausgedrückt. Die Gewohnheit des Klammerns trägt unter biblatex also weiterhin – sie wird nur weit seltener gebraucht als früher.

Ein Detail lohnt hier die Aufmerksamkeit. Alte .bib-Dateien klammern häufig einzelne Großbuchstaben – title = {An Introduction to {L}a{T}e{X}} –, doch das Handbuch von biblatex rät davon ab, denn Klammern töten das Kerning auf beiden Seiten des eingeschlossenen Buchstabens, sodass das Wort merklich locker wirkt. Das ganze Wort zu klammern, {LaTeX}, schützt genauso, ohne die Laufweite zu beschädigen. Ein zweites Detail: Geschützt ist, was innerhalb von Klammern steht, nicht, was innerhalb eines Makros steht. Ein Makro muss samt Text eingeschlossen werden, etwa {\TeX book}; ein nacktes \TeX bleibt ungeschützt.

references.bib
% unprotected: plain.bst prints "A theory of dna and galois theory"
% protected:   prints "A theory of DNA and Galois theory"
@article{protect2026,
  author  = {Doe, Jane},
  title   = {A Theory of {DNA} and {Galois} Theory},
  journal = {J. Test},
  year    = {2026}
}

% brace the whole word, not single letters: {LaTeX}, not {L}a{T}e{X}
% wrap a macro together with its text: {\TeX book}

@string-Abkürzungen, @preamble und Kommentare in einer .bib

Kehrt derselbe Wert immer wieder, lässt sich mit @string ein Makro definieren. Der definierte Name steht ohne Klammern an einer Wertposition und wird mit # an andere Zeichenketten gehängt. Das ist der übliche Weg, zwischen abgekürzten und ausgeschriebenen Zeitschriftentiteln zu wechseln; verbreitet ist, die @string-Definitionen in einer eigenen .bib zu halten und diese zuerst einzulesen, etwa \bibliography{strings,refs}. Tatsächlich ist der Mechanismus längst im Einsatz: Die Standardstile definieren die Monate jan bis dec vorab als @string-Makros, weshalb month = jan ohne Klammern geschrieben wird – month = {jan} liefert nicht das Makro, sondern die Zeichenkette „jan“.

references.bib
@string{bstj = {Bell System Technical Journal}}

@preamble{ "\newcommand{\noopsort}[1]{} " }

@article{shannon1948,
  author  = {Shannon, Claude E.},
  title   = {A Mathematical Theory of Communication},
  journal = bstj # { (Supplement)},
  month   = jan,
  year    = {1948}
}

@comment{ everything in here is skipped, portably }

@preamble ist von anderer Art: Es schickt seinen Inhalt – meist LaTeX-Makrodefinitionen – unverändert an den Anfang der .bbl. Nützlich, wenn ein kleines Hilfsmittel wie der Sortiertrick \noopsort mit den Daten reisen soll. Bei Kommentaren gilt es, ein berühmtes Missverständnis auszuräumen: In einer .bib-Datei ist % kein Kommentarzeichen. Klassisches bibtex ignoriert alles außerhalb eines Eintrags (@…{}); eine Zeile, die mit % beginnt, läuft daher schlicht als ignorierter Text durch und sieht nur wie ein Kommentar aus. Gefährlich wird es im Inneren: Ein nacktes % in einem Feldwert wandert in die .bbl und wird dort zu einem echten LaTeX-Kommentarzeichen, das den Rest der Zeile verschluckt. In einem Wert gehört stets \% hin.

Die portable Form ist @comment{ … }; ihr Inhalt wird vollständig übersprungen und ist auch unter biber unbedenklich. Das zählt, denn biber ist strenger als klassisches bibtex: Loser Text außerhalb eines Eintrags trägt die Warnung warning: 30 characters of junk seen at toplevel ein. Und wer bloß einen Eintrag vorübergehend stilllegen will, löscht am schnellsten ein einziges Zeichen – aus @article{…} wird article{…}, und schon ist es kein Eintrag mehr, sondern nur noch ignorierter Text.

Den Tagungsband nur einmal schreiben: das Feld crossref

Das Feld crossref lässt einen Eintrag die fehlenden Felder von einem anderen erben. Werden fünf Aufsätze aus demselben Band zitiert, muss der Konferenzname, die Herausgeberschaft und das Jahr nicht fünfmal getippt werden. Ein @proceedings-Eintrag dient als Elternteil, in jedem Kind-@inproceedings steht crossref = {gg1988}, und booktitle, editor und year kommen von oben herunter. Die Dopplung verschwindet – und mit ihr das Ärgernis von fünf leicht abweichenden Schreibweisen desselben Konferenznamens.

references.bib
@inproceedings{gneisser1988,
  crossref = {gg1988},
  author   = {Gneisser, Rocky},
  title    = {No Gnats Are Taken for Granite},
  pages    = {133--139}
}

% the parent must appear LATER in the file than every entry citing it
@proceedings{gg1988,
  editor    = {Ford, Gerald and Carter, Jimmy},
  title     = {The Gnats and Gnus 1988 Proceedings},
  booktitle = {The Gnats and Gnus 1988 Proceedings},
  year      = {1988}
}

Drei Regeln hängen daran. Erstens muss der Elterneintrag später in der Datei stehen als jeder Eintrag, der auf ihn verweist – daher die Gepflogenheit, crossref-Eltern am Dateiende zu sammeln. Zweitens erscheint der Elterneintrag auch ohne eigenes \cite von selbst im Literaturverzeichnis, sobald zwei oder mehr Kinder auf ihn zeigen; bei nur einem Kind bleibt er draußen, und seine Felder werden stattdessen in diesem Kind mitgedruckt. Die Schwelle lässt sich mit bibtex --min-crossrefs=N verstellen. Drittens ist verschachteltes crossref unzuverlässig – ein Elternteil sollte also keinen eigenen Elternteil bekommen. biblatex bietet dafür ein eigenes Mittel, xdata, das Daten vererbt, ohne eine Eltern-Kind-Beziehung zu stiften – die naheliegende Wahl für Bündel wie Verlag samt Ort, die selbst kein Werk sind.

Wer die Reihenfolge der Literaturliste bestimmt

Nicht die schreibende Person – und das ist eine gute Nachricht. Die Reihenfolge der Einträge hat nichts mit der Eingabereihenfolge zu tun; entschieden wird sie vom Werkzeug. Im klassischen BibTeX legt der Stil (.bst) die Reihenfolge fest. Mitsprache gibt es kaum, den Stil zu wählen heißt also, die Sortierung zu wählen. plain und alpha sortieren alphabetisch nach Autor, unsrt nach der Reihenfolge der ersten Zitierung im Text, technische Stile wie ieeetr ebenso. Bleiben die Daten unangetastet und wird \bibliographystyle{plain} zu \bibliographystyle{unsrt}, ordnet sich die ganze Liste neu. Das Sortieren japanischer Literatur übernehmen pbibtex / upbibtex (siehe die BibTeX-Seite).

biblatex gibt diese Entscheidung zurück. Unabhängig vom Stil legt \usepackage[sorting=nyt]{biblatex} die Reihenfolge fest. Sortierschlüssel werden als Buchstabenkombinationen geschrieben: n für name, y für year, t für title.

OptionSchlüsselreihenfolgeBedeutung
ntyname → title → yearName, dann Titel, dann Jahr (biblatex-Standard)
nytname → year → titleName, Jahr, Titel (beliebt für Autor-Jahr-Stile)
yntyear → name → titleJahr, dann Name, dann Titel (chronologisch)
ydntyear (absteigend) → name → titleneueste Jahre zuerst, dann ältere
none(keine Sortierung)Zitierreihenfolge (entspricht unsrt)

Kurz gefasst: Soll die Zitierreihenfolge erhalten bleiben, dient unter BibTeX der Stil unsrt, unter biblatex sorting=none. Für alphabetische Ordnung plain unter BibTeX oder das voreingestellte nty unter biblatex (nyt bei Autor-Jahr). In keinem Fall müssen die Einträge in der .bib von Hand umsortiert werden. Das ist Sache des Werkzeugs; die eigene Aufgabe besteht allein darin, die Daten genau zu erfassen – den richtigen Typ wählen, Namen nach der vierteiligen Grammatik schreiben, die Großbuchstaben klammern, die überleben sollen. Eine .bib, die diese drei Punkte beachtet, überdauert den Aufsatz, an dem gerade geschrieben wird, bei weitem.