Mehrfaches zitieren einer Quelle funktioniert nicht

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

Mehrfaches zitieren einer Quelle funktioniert nicht

Beitrag von Thomas Peters »

Hallo liebe Gemeinde!
Ich sitze schon einige Tage an meiner Masterarbeit und habe die einleitende Literaturarbeit bereits fertig. Nun ist auch alles soweit fertig editiert nur an einer Stelle haperts noch und da trete ich doch sehr auf der Stelle.
Folgendes:
An einigen Stellen im Text werden Zitat nicht angezeigt sondern nur die Klammern. Mir ist aufgefallen, dass jedoch die gleichen Quellenverweise im Text bereits vorgekommen sind, der Bib Eintrag kann also nicht fehlerhaft sein. Hat es eventuell etwas damit zu tun, dass mir noch ein kleiner Zusatz im Code fehlt, mit dem ich latex befehle Quellen mehrfach auch ausgeschrieben werden sollen?

Hier ist übrigens mein code:

\documentclass[11pt,a4paper]{report}
\usepackage[utf8]{inputenc}
\usepackage[german]{babel}
\usepackage[T1]{fontenc}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{makeidx}
\usepackage{graphicx, subfig}
\usepackage[font=footnotesize]{caption}
\graphicspath{{img/}}
\usepackage{fancyhdr}
\usepackage{lmodern}
\usepackage{color}
\usepackage[left=2cm,right=2cm,top=2cm,bottom=2cm]{geometry}
\usepackage{float}
\usepackage[printonlyused]{acronym}
\usepackage{url}
\usepackage[backend=biber,
hyperref=true,
sorting=author,
url=true,
isbn=true,
citestyle=authoryear-comp,
bibstyle=authoryear,
mergedate=true,
dashed=false,
citereset=chapter,
maxcitenames=3,
maxbibnames=100,
block=none,
eprint=false,
urldate=comp,
dateabbrev=false]{biblatex}
\addbibresource{Literatur.bib}
\newcounter{mymaxcitenames}
\setcounter{mymaxcitenames}{1}
\renewbibmacro*{begentry}{%
\printtext[brackets]{%
\begingroup
\defcounter{maxnames}{\value{mymaxcitenames}}%
\printnames{labelname}%
\setunit{\nameyeardelim}%
\usebibmacro{cite:labelyear+extrayear}%
\endgroup
}%
\quad
}
\setlength{\bibhang}{6em}
\DeclareCiteCommand{\brackcite}[\mkbibbrackets]
{\usebibmacro{cite:init}%
\usebibmacro{prenote}}
{\usebibmacro{citeindex}%
\usebibmacro{cite}}
{}
{\usebibmacro{postnote}}
\DeclareCiteCommand*{\brackcite}[\mkbibbrackets]
{\usebibmacro{cite:init}%
\usebibmacro{prenote}}
{\usebibmacro{citeindex}%
\usebibmacro{citeyear}}
{}
{\usebibmacro{postnote}}
\DeclareCiteCommand{\cite}[\mkbibbrackets]
{\usebibmacro{prenote}}
{\usebibmacro{citeindex}%
\usebibmacro{cite}}
{\multicitedelim}
{\usebibmacro{postnote}}
\author{Thomas Peters}

Gast

Beitrag von Gast »

sorting=author?

Thomas Peters

Beitrag von Thomas Peters »

Das ist für das Literaturverzeichnis. Soll alphabetisch nach Autorenname geordnet sein :)

Bartman
Forum-Meister
Forum-Meister
Beiträge: 2159
Registriert: Do 16. Jul 2009, 21:41
Wohnort: Hessische Provinz

Beitrag von Bartman »

Die Option findest Du im Abschnitt 3.1.2.1 General der Dokumentation von biblatex (welches übrigens url lädt). Die zulässigen Zuweisungen werden dort genannt. Inwiefern missfällt Dir die Voreinstellung?

Deine vier Optionen beim Laden des Pakets geometry darfst Du zu margin=2cm verkürzen.

Du lädst babel mit der alten deutschen Rechtschreibung.

Thomas Peters

Beitrag von Thomas Peters »

Bartman hat geschrieben:Die Option findest Du im Abschnitt 3.1.2.1 General der Dokumentation von biblatex (welches übrigens url lädt). Die zulässigen Zuweisungen werden dort genannt. Inwiefern missfällt Dir die Voreinstellung?

Deine vier Optionen beim Laden des Pakets geometry darfst Du zu margin=2cm verkürzen.

Du lädst babel mit der alten deutschen Rechtschreibung.
Vielen Dank für die Antwort!
Ich bin eigentlich zufrieden mit meiner Einstellung mein einziges Problem ist tatsächlich nur, dass ich noch nicht weiß warum mir Literaturverweise im Text nicht mehrmals an verschiedenen Stellen im Text angezeigt werden können.

Beispiel:
blablablablabla \cite{autor.2019}. blebleblebleb \cite{autor.2019}.

Ausgegeben wird:
blablablablabla [Autor, 2019]. blebleblebleb [].

Meine Vermutung ist, dass Quellenverweise die in einem Abschnitt und im Text mehrmals vorkommen momentan nur beim erstauftreten mit aufgeführt werden.

Bartman
Forum-Meister
Forum-Meister
Beiträge: 2159
Registriert: Do 16. Jul 2009, 21:41
Wohnort: Hessische Provinz

Beitrag von Bartman »

Wenn Du Deinen Befehl \brackcite benutzt, funktioniert die zweite Ausgabe.

Die beiden Definitionen von \brackcite enthalten

Code: Alles auswählen

\usebibmacro{cite:init}
Beim angepassten \cite-Befehl fehlt der Teil.

Thomas Peters

Beitrag von Thomas Peters »

Bartman hat geschrieben:Wenn Du Deinen Befehl \brackcite benutzt, funktioniert die zweite Ausgabe.

Die beiden Definitionen von \brackcite enthalten

Code: Alles auswählen

\usebibmacro{cite:init}
Beim angepassten \cite-Befehl fehlt der Teil.
Vielen Dank! Das hat super geklappt!!

Bartman
Forum-Meister
Forum-Meister
Beiträge: 2159
Registriert: Do 16. Jul 2009, 21:41
Wohnort: Hessische Provinz

Beitrag von Bartman »

Nachtrag:

Code: Alles auswählen

%\usebibmacro{cite:labelyear+extrayear}% veraltet
\usebibmacro{cite:labeldate+extradate}% aktuell
Die Zuweisungen an die Optionen url, isbn, maxcitenames, block und urldate sind die Voreinstellung.

Da sich Dein Arbeitsprozess noch am Anfang befindet, möchte ich auf den Befehl \autocite aufmerksam machen.

Für die Änderung der Klammern kannst Du den Stil für die Literaturverweise in ext-authoryear-comp von biblatex-ext ändern und fügst dann den Befehl

Code: Alles auswählen

\DeclareOuterCiteDelims{parencite}{\bibopenbracket}{\bibclosebracket}
der Präambel hinzu.

Gast

Beitrag von Gast »

Die exakte Implementation der \cite-Befehle unterscheidet sich von Stil zu Stil leicht. Es sieht hier so aus, als wären die Definitionen von \brackcite in der Tat für style=authoryear-comp, gut, die Definition von \cite passt aber eher zu style=authoryear,. Da werden bestimmte interne Tracker nicht zurückgesetzt, was dazu führt, dass eventuell Folgezitate nicht wie geplant aussehen.

Etwas einfacher geht das in der Tat mit dem von Bartman erwähnten biblatex-ext. Da bekommt man übrigens auch den Autor-Jahr-Block im Literaturverzeichnis wesentlich einfacher als über die mühsame Redefinition von begentry. Mehr dazu findest Du unter dem Stichwort introcite in der biblatex-ext-Dokumentation. Auf Seite 18 gibt es Code, der so ziemlich die Ausgabe produzieren sollte, die Du jetzt bekommst. Aber es gibt noch ein paar andere Möglichkeiten.

Die Option hyperref=true, ist selten "besser" als die Voreinstellung hyperref=auto,. Sie unterscheiden sich nur darin, dass hyperref=true, eine Warnung produziert, wenn das Paket hyperref nicht geladen wird. Bei beiden Einstellungen muss hyperref vom Nutzer selbst explizit geladen werden und beide Einstellungen produzieren Links dann und nur dann, wenn das Paket hyperref geladen wird.

Standardmäßig ist das Sortierschema author nicht bekannt, daher wird sprting=author eine Fehlermeldung produzieren. Stile die auf authoryear basieren, setzen automatisch sorting=nyt das hier wesentlich sinnvoller scheint.

citestyle=authoryear-comp, bibstyle=authoryear, kann man zu style=authoryear-comp, verkürzen.

mergedate=true ist die Voreinstellung.

Code: Alles auswählen

\documentclass[ngerman]{report}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{csquotes}

\usepackage[backend=biber, style=ext-authoryear-comp,
  maxcitenames=3, maxbibnames=100,
  introcite=plain, dashed=false,
  citereset=chapter,
  urldate=comp, dateabbrev=false]{biblatex}

\DeclareOuterCiteDelims{parencite}{\bibopenbracket}{\bibclosebracket}

\DeclareFieldFormat{bbx@introcite}{\mkbibbrackets{#1}}
\renewcommand*{\introcitepunct}{\quad}

\addbibresource{biblatex-examples.bib}

\begin{document}
Lorem \autocite{sigfridsson,worman}
ipsum \autocite{geer,nussbaum}
\printbibliography
\end{document}

Antworten