maxcitenames funktioniert nicht

Erstellung eines Literaturverzeichnisses mit BibTeX, Biber, BibLaTeX und Co.


Johanna

maxcitenames funktioniert nicht

Beitrag von Johanna »

Hallo zusammen,

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!
\documentclass[12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[a4paper,lmargin={2.5cm},rmargin={2.5cm},tmargin={3cm},bmargin = {3cm}]{geometry}
\usepackage{amssymb}
\usepackage{amsthm}
\usepackage{setspace}
\usepackage{amsmath}
\usepackage{eqnarray}
\usepackage{graphicx}
\usepackage{here} 
\usepackage[german]{babel}
\usepackage{csquotes}
\usepackage{fancyhdr}
\usepackage[gen]{eurosym}
\usepackage[backend=biber,style=authoryear,sorting=ynt,natbib=true,maxcitenames=2,maxbibnames=100]{biblatex}
\addbibresource{Literaturverzeichnis.bib}
\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}}

Benutzeravatar
u_fischer
Forum-Meister
Forum-Meister
Beiträge: 4266
Registriert: Do 22. Nov 2012, 11:09
Kontaktdaten:

Beitrag von u_fischer »

Dein Code ist unvollständig und es fehlt der bib-Eintrag.

markusv
Forum-Meister
Forum-Meister
Beiträge: 947
Registriert: Do 3. Sep 2015, 17:20
Wohnort: Leipzig

Beitrag von markusv »

Hallo.

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

Gast

Beitrag von Gast »

Möglicherweise ist es der Klassiker https://tex.stackexchange.com/q/69028/35864
Du möchtest dann
uniquelist=false
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.

Johanna

Danke!:)

Beitrag von Johanna »

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.

Gast

Beitrag von Gast »

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}
vorschlagen.

Antworten