ich bin benutze Latex erst seit Kurzem, habe aber bisher meist das gefunden, was ich gebraucht habe. Bei einem Punkt komme ich leider nicht weiter. So benötige ich beim Zitieren bei 2 Autoren ein "&"-Zeichen als Trennzeichen, ab 3 soll jedoch wieder nur 1 Autor genannt und et. al. geschrieben werden. Bei meinem aktuellen Code tritt leider bei 3 Autoren ein Fehler auf, sodass die Verkürzung auf Nennung nur eines Autoren und et.al. nicht funktioniert. Stattdessen werden alle 3 Autoren ausgegeben und die letzten beiden mit & getrennt. Ich hoffe ihr könnt mir weiterhelfen.
Vielen Dank im Voraus!
Leider entspricht dein Code nicht den Anforderungen eines Minimalbeispiel. Erweitere bzw. kürze (überflüssige Pakete etc.) ich den Code zu diesem, scheint alles nach deinen Vorstellungen zu funktionieren. Daher liegt dein Problem nicht beim gezeigten Code. Führe daher die Anleitung zum Minimalbeispiel durch und poste ggf. ein echtes MB, das den Fehler zeigt.
\documentclass[12pt,ngerman]{article}%ngerman für neue dt. Rechtschreibung
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[backend=biber,style=authoryear,sorting=ynt,natbib=true,maxcitenames=2,maxbibnames=100]{biblatex}
\addbibresource{biblatex-examples.bib}%wir haben deine Literatur-Datenbank nicht
\renewbibmacro*{in:}{}
\renewcommand*{\labelnamepunct}{\addcolon\addspace}
\renewcommand*{\newunitpunct}{\addcomma\space}
\DeclareFieldFormat[article]{title}{{#1}}
\DeclareFieldFormat[incollection]{title}{{#1}{\addspace}{in}\addcolon}
\DeclareFieldFormat[online]{url}{{#1}}
\renewbibmacro*{publisher+location+date}{
\printlist{publisher}
\iflistundef{location}
{\setunit*{\addcomma\space}}
{\setunit*{\addcomma\space}}
\printlist{location}
\setunit*{\addcomma\space}
\usebibmacro{date}
\newunit}
\DefineBibliographyStrings{german}{
andothers = {{et\,al\adddot}},
}
\renewcommand*{\finalnamedelim}{\addspace\&\space}
\AtBeginBibliography{\renewcommand*{\finalnamedelim}{\multinamedelim}}
\begin{document}%ergänzt für Ausgabe
Referenz mit einem Autor: \cite{reese}
Referenz mit 2 Autoren: \cite{baez/article}
Referenz mit mehr als 2 Autoren: \cite{herrmann}
\printbibliography
\end{document}
Wäre Microsoft Word für das Schreiben von Büchern entwickelt worden,
würde es Microsoft Book heißen.
Unkomplizierte und schnelle LaTeX-Hilfe, bspw. Erstellung von Vorlagen und Bewerbungen: Help-LaTeX@web.de
Das Problem tritt auf, wenn Du ähnliche Autorenlisten hast, die sich erst in den zweiten oder dritten Autoren unterscheiden. biblatex versucht dann, die Autorenlisten zu unterscheiden, um nicht den Eindruck zu erwecken, dass die zitierten Quellen von denselben Autoren geschrieben wurden.
Super, vielen Dank! Es war tatsächlich der klassische Fehler mit uniquelist=false, da habe ich wohl bei meiner Google-Suche nicht die richtigen Stichworte eingegeben.
Tut mir leid wegen dem falschen Beispiel, sollte ich noch weitere Fragen haben, werde ich versuchen ein anständiges Minimalbeispiel zu erzeugen.
Deine Methode das 'in' für @incollections wiederzubekommen (also nur für @article zu unterdrücken) halte ich für etwas unschön. Die Redefinition von publisher+location+date kann unerwünschte Leerzeichen verursachen und beinhaltet eine unnötige Abfrage. Ich würde insgesamt (mit unqiuelist=false) also
\documentclass[12pt,ngerman]{article}%ngerman für neue dt. Rechtschreibung
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[backend=biber, style=authoryear, natbib=true, maxcitenames=2, maxbibnames=100, uniquelist=false]{biblatex}
\addbibresource{biblatex-examples.bib}%wir haben deine Literatur-Datenbank nicht
\renewcommand*{\labelnamepunct}{\addcolon\addspace}
\renewcommand*{\newunitpunct}{\addcomma\space}
\DeclareFieldFormat
[article,inbook,incollection,inproceedings,online,patent,thesis,unpublished]
{title}{#1}
\renewbibmacro*{in:}{%
\ifentrytype{article}
{}
{\printtext{%
\bibstring{in}\intitlepunct}}}
\renewbibmacro*{publisher+location+date}{%
\printlist{publisher}%
\setunit*{\addcomma\space}%
\printlist{location}%
\setunit*{\addcomma\space}%
\usebibmacro{date}%
\newunit}
\DefineBibliographyStrings{german}{%
andothers = {{et\,al\adddot}},
}
\renewcommand*{\finalnamedelim}{\addspace\&\space}
\AtBeginBibliography{\renewcommand*{\finalnamedelim}{\multinamedelim}}
\begin{document}%ergänzt für Ausgabe
Referenz mit einem Autor: \cite{worman}
Referenz mit 2 Autoren: \cite{sigfridsson}
Referenz mit 3 Autoren: \cite{companion}
Referenz mit mehr als 3 Autoren: \cite{herrmann}
\printbibliography
\end{document}