Entferntes Zitat erscheint trotzdem in Literaturverzeichnis

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


Pitufo
Forum-Newbie
Forum-Newbie
Beiträge: 7
Registriert: Do 28. Aug 2014, 14:47

Entferntes Zitat erscheint trotzdem in Literaturverzeichnis

Beitrag von Pitufo »

Hallo miteinander,

das erstellen des Literaturverzeichnisses mittels biber funktioniert bei mir soweit, nur hab ich noch ein kleines Problem.
Biber greift auf eine .bib Datei zu, die ich aus Citavi importiere. Darin sind 20 Werke gelistet.
Wenn ich nun zwei verschiedene Zitate einfüge und das Literaturverzeichnis erstelle, erscheinen die beiden Werke wie gewünscht im Literaturverzeichnis.
Wenn ich jetzt aber ein Zitat wieder lösche und auch woanders in meinem Dokument nicht zitiere, bleibt das Werk trotzdem im Literaturverzeichnis erhalten, so nach dem Motto "einmal da, immer da".
Ist das normal?
Würde ich es aus der .bib Datei löschen, würde es auch nicht mehr erscheinen, das möchte ich aber nicht, vielleicht zitier ich es ja doch nochmal, dann müsste ich die .bib Datei wieder aktualisieren...
Ich habe mir das eigentlich so vorgestellt, dass das Dokument nach Zitaten durchsucht wird und dementsprechend jedes Mal das Literaturverzeichnis neu erstellt wird... Anscheinend ist das nicht so?
Weiß jemand eine Lösung für mein Problem?
Oder ist der einzig sinnvolle Ansatz, dass ich das Literaturverzeichnis erst am Ende meiner Arbeit erstelle und nicht nach und nach?

Ich nutze übrigens das TeXStudio unter Win 8.1, installiert habe ich MikTex, falls das etwas zur Lösung beitragen kann =)

Danke für Eure Hilfe!
LG

rais
Forum-Guru
Forum-Guru
Beiträge: 413
Registriert: Di 21. Sep 2010, 00:37

Re: Entferntes Zitat erscheint trotzdem in Literaturverzeich

Beitrag von rais »

Pitufo hat geschrieben: Wenn ich nun zwei verschiedene Zitate einfüge und das Literaturverzeichnis erstelle, erscheinen die beiden Werke wie gewünscht im Literaturverzeichnis.
Wenn ich jetzt aber ein Zitat wieder lösche und auch woanders in meinem Dokument nicht zitiere, bleibt das Werk trotzdem im Literaturverzeichnis erhalten, so nach dem Motto "einmal da, immer da".
Ist das normal?
Nein.
Hast Du danach auch latex/biber/latex laufen lassen?
Und schau, ob Du irgendwo ein \nocite{*} stehen hast.
Ansonsten erstelle bitte ein vollständiges Minimalbeispiel.

MfG
Rainer
One of the joys of travel is visiting new towns and meeting new people---G.Khan (Robert Asprin, Another Fine Myth)

Pitufo
Forum-Newbie
Forum-Newbie
Beiträge: 7
Registriert: Do 28. Aug 2014, 14:47

Re: Entferntes Zitat erscheint trotzdem in Literaturverzeich

Beitrag von Pitufo »

rais hat geschrieben: Hast Du danach auch latex/biber/latex laufen lassen?
Ja hab ich (F1 - F11 - F1)
rais hat geschrieben: Und schau, ob Du irgendwo ein \nocite{*} stehen hast.
Das habe ich nirgends stehen...

Wenn ich nun zwei Zitate einfüge wie:
\usepackage{etex}
\usepackage[babel]{csquotes}
\input{01_Header/Zitate_und_Literaturverzeichnis/Autorstil.tex}
\addbibresource{05_Literaturverzeichnis/citavi.bib} %Literaturdatei
\DefineBibliographyStrings{german}{%
	andothers = {et\,al.},
	and = {\&},
}
\DeclareFieldFormat[article, inproceedings, incollection, thesis, misc]{title}{\textnormal{#1}}
\DeclareFieldFormat[book]{title}{\textit{#1}}
\DeclareFieldFormat[inproceedings]{booksubtitle}{\enquote{#1}}
\bibparsep = 0em
\bibitemsep = 1em
\bibhang = 0em

\begin{document}

\zitat{}{Autor1.2012}

\zitat{}{Autor2.2010}

\printbibliography
\end{document} 
Dann bekomme ich in meinem Literaturverzeichnis:

AUTOR1 2012
Titel usw.

AUTOR2 2010
Titel usw.

Wenn ich anschließend ein Zitat wieder lösche:
\usepackage{etex}
\usepackage[babel]{csquotes}
\input{01_Header/Zitate_und_Literaturverzeichnis/Autorstil.tex}
\addbibresource{05_Literaturverzeichnis/citavi.bib} %Literaturdatei
\DefineBibliographyStrings{german}{%
	andothers = {et\,al.},
	and = {\&},
}
\DeclareFieldFormat[article, inproceedings, incollection, thesis, misc]{title}{\textnormal{#1}}
\DeclareFieldFormat[book]{title}{\textit{#1}}
\DeclareFieldFormat[inproceedings]{booksubtitle}{\enquote{#1}}
\bibparsep = 0em
\bibitemsep = 1em
\bibhang = 0em

\begin{document}

\zitat{}{Autor1.2012}

\printbibliography
\end{document} 
Dann habe ich trotzdem noch die gleiche Ausgabe im Literaturverzeichnis...


Dabei ist die 01_Header/Zitate_und_Literaturverzeichnis/Autorstil.tex Datei folgende:
\usepackage%
[%
	style = authoryear-comp,		% authoryear-comp oder 
	backend = biber,
	hyperref = true,
	maxnames = 2,
	isbn = true,
	doi = true, 			% DOIs im LitVZ
	language = german,
	firstinits = true,		% Vornamen abkürzen
	uniquename = init,
	%backref = true,		% Seitenzahlen der Verweise im LitVZ
	dashed = false, 		% Falls mehrere gleiche Autoren auftauchen, werden die Einträge mit 
							% einem Strich abgekürzt. S.a. http://projekte.dante.de/DanteFAQ/BiblatexStile --> autoryear
]{biblatex}


% Nachnames-Formatierung (im Text) anpassen
\renewcommand*{\mkbibnamelast}[1]{\textsc{#1}}

% Im Literaturverzeichnis immer nach "Nachname, Vorname" formatieren. Siehe auch
% http://projekte.dante.de/DanteFAQ/BiblatexReihenfolgeAutoren
% \DeclareNameAlias{sortname}{last-first}	% Einfache Variante, formatiert allerdings nicht den Herausgeber!
\DeclareNameFormat{default}{%
\iffirstinits
{\usebibmacro{name:last-first}{#1}{#4}{#5}{#7}}			% Wenn Vorname nur mit Initialien, dann dieses Makro ansonsten
{\usebibmacro{name:last-first}{#1}{#3}{#5}{#7}}%		% dieses (mit Initialien). s.a. Link oben.
\usebibmacro{name:andothers}}

\input{01_Header/Zitate_und_Literaturverzeichnis/biblatex_Jahreszahl_Anpassungen.tex}
\input{01_Header/Zitate_und_Literaturverzeichnis/biblatex_article_Anpassungen.tex}

% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
\AtEveryBibitem{%
\renewcommand*{\mkbibnamelast}[1]{\textsc{#1}}
% Ursprüngliche Formatierung von Zitaten verwenden (lokal für Kopf der Einträge)
\let\multinamedelim\myOriginalMultiNameDelim
\let\finalnamedelim\myOriginalFinalNameDelim

\cite{\thefield{entrykey}}\\
\renewcommand*{\mkbibnamelast}[1]{#1}
% Die neue Formatierung wieder aktivieren -> siehe Hook "\AtBeginBibliography{"
  \let\multinamedelim\myBibMultiNameDelim				% \let heißt renewcommand (multiNameDelim) --> (eignenen Stil)
  \let\finalnamedelim\myBibFinalNameDelim
}%

\AtBeginBibliography{%
\setcounter{maxnames}{99}
\renewcommand*{\mkbibnamelast}[1]{#1}
}

% Zwischen zwei Autoren als Begrenzung einen Semikolon anstatt Komma:
\newcommand*{\myBibMultiNameDelim}{\addsemicolon\space} % Eigenen Stil definieren und weiter unten zuweisen
\newcommand*{\myBibFinalNameDelim}{\addsemicolon\space} %
\renewcommand*{\labelnamepunct}{\addcolon\space} %

\AtBeginBibliography{%
% In neuen Befehl speichern bevor überschrieben
\let\myOriginalMultiNameDelim\multinamedelim
% In neuen Befehl speichern bevor überschrieben
\let\myOriginalFinalNameDelim\finalnamedelim
% Neuen Befehl zuordnen - wurde mit newcommand etwas weiter oben definiert
  \let\multinamedelim\myBibMultiNameDelim				% \let heißt renewcommand (multiNameDelim) --> (eignenen Stil)
  \let\finalnamedelim\myBibFinalNameDelim
}
% % % % % % % % % % % % % % % % % % % % % % % % % % % % % %


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

Beitrag von u_fischer »

Mach mal aus diesen Schnipseln, ein lauffähiges, vollständiges Beispiel - inklusiver bib. Dann erfahren wir vielleicht auch, wie dein Zitatbefehl eigentlich definiert ist.

Pitufo
Forum-Newbie
Forum-Newbie
Beiträge: 7
Registriert: Do 28. Aug 2014, 14:47

Beitrag von Pitufo »

% Dokumentenklasse
%-----------------------------------------------
\documentclass[
a4paper, 
12pt, 
bibliography=totoc, 		% Literaturvz. ins TOC
%listof=totoc, 				% Abbildungs- und Tabellenverzeichnis ins TOC
parskip=half, 
numbers=noenddot,
captions=tableheading,		% Tabellen-Caption überhalb
]{scrreprt}
%-----------------------------------------------

% Auotmatische Abkürzungen (Acronyme). In Sections u.ä. immer die speziellen Befehle \acs und \acl benutzten 
% (die erste Verwendung ist nämlich das TOC)
\usepackage[%
printonlyused,
%nohyperlinks,
]{acronym}

%Makros
% % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
\newcommand{\chap}[1]{Kapitel~\ref{chap:#1}}
\newcommand{\zitat}[2]{\parencite[#1]{#2}}
% % % % % % % % % % % % % % % % % % % % % % % % % % % % % %

% Bessere Zitate (anstatt einfacher Anführungszeichen). Mit \enquote. BibLatex unterstützt
\usepackage[babel]{csquotes}

%% BibLaTeX
% ------------------------------------------------------------------
% Zitation nach Author-Year

\usepackage%
[%
style = authoryear-comp,		% authoryear-comp oder 
backend = biber,
hyperref = true,
maxnames = 2,
isbn = true,
doi = true, 			% DOIs im LitVZ
language = german,
firstinits = true,		% Vornamen abkürzen
uniquename = init,
%backref = true,		% Seitenzahlen der Verweise im LitVZ
dashed = false, 		% Falls mehrere gleiche Autoren auftauchen, werden die Einträge mit 
% einem Strich abgekürzt. S.a. http://projekte.dante.de/DanteFAQ/BiblatexStile --> autoryear
]{biblatex}


% Nachnames-Formatierung (im Text) anpassen
\renewcommand*{\mkbibnamelast}[1]{\textsc{#1}}

% Im Literaturverzeichnis immer nach "Nachname, Vorname" formatieren. Siehe auch
% http://projekte.dante.de/DanteFAQ/BiblatexReihenfolgeAutoren
% \DeclareNameAlias{sortname}{last-first}	% Einfache Variante, formatiert allerdings nicht den Herausgeber!
\DeclareNameFormat{default}{%
	\iffirstinits
	{\usebibmacro{name:last-first}{#1}{#4}{#5}{#7}}			% Wenn Vorname nur mit Initialien, dann dieses Makro ansonsten
	{\usebibmacro{name:last-first}{#1}{#3}{#5}{#7}}%		% dieses (mit Initialien). s.a. Link oben.
	\usebibmacro{name:andothers}}

% Quick Solution: Wir hängen die Jahreszahl vor die Ausgabe der Notizen / Seitenzahlen.
\renewbibmacro*{note+pages}{%
	\printfield{year}%
	\newunit
	\printfield{note}%
	\setunit{\bibpagespunct}%
	\printfield{pages}%
	\newunit}

\renewbibmacro*{chapter+pages}{%
	\printfield{year}%
	\newunit
	\printfield{chapter}%
	\setunit{\bibpagespunct}%
	\printfield{pages}%
	\newunit}

\DeclareBibliographyDriver{article}{%
	\usebibmacro{bibindex}%
	\usebibmacro{begentry}%
	\usebibmacro{author/translator+others}%
	\setunit{\labelnamepunct}\newblock
	\usebibmacro{title}%
	\newunit
	\printlist{language}%
	\newunit\newblock
	\usebibmacro{byauthor}%
	\newunit\newblock
	\usebibmacro{bytranslator+others}%
	\newunit\newblock
	\printfield{version}%
	\newunit\newblock
	%\usebibmacro{in:}%
	\usebibmacro{journal+issuetitle-mod}%
	\newunit
	\usebibmacro{byeditor+others}%
	\newunit
	\usebibmacro{note+pages-mod}%
	\newunit\newblock
	\iftoggle{bbx:isbn}
	{\printfield{issn}}
	{}%
	\newunit\newblock
	\usebibmacro{doi+eprint+url}%
	\newunit\newblock
	\usebibmacro{addendum+pubstate}%
	\setunit{\bibpagerefpunct}\newblock
	\usebibmacro{pageref}%
	\newunit\newblock
	\iftoggle{bbx:related}
	{\usebibmacro{related:init}%
		\usebibmacro{related}}
	{}%
	\usebibmacro{finentry}}

\renewbibmacro*{author}{%
	\ifboolexpr{
		test \ifuseauthor
		and
		not test {\ifnameundef{author}}
	}
	{\usebibmacro{bbx:dashcheck}
		{\bibnamedash}
		{\usebibmacro{bbx:savehash}%
			\printnames{author}%
			\iffieldundef{authortype}
			{\setunit{\addspace}}
			{\setunit{\addcomma\space}}}%
		\iffieldundef{authortype}
		{}
		{\usebibmacro{authorstrg}%
			\setunit{\addspace}}}%
	{\global\undef\bbx@lasthash
		\usebibmacro{labeltitle}%
		\setunit*{\addspace}}%
	%\usebibmacro{date+extrayear}%
}


\newbibmacro*{journal+issuetitle-mod}{%
	\usebibmacro{journal}%
	\setunit*{\addspace}%
	\iffieldundef{series}
	{}
	{\newunit
		\printfield{series}%
		\setunit{\addspace}}%
	\usebibmacro{volume+number+eid-mod}%
	\setunit{\addspace}%
	\usebibmacro{issue+date}%
	\setunit{\addcolon\space}%
	\usebibmacro{issue}%
	\newunit}

\newbibmacro*{volume+number+eid-mod}{%
	\printfield{volume}%
	%\setunit*{\adddot}%
	%\printfield{number}%
	\addspace
	\printtext{(}%
	\printfield{year}%
	\printtext{)}%
	\addspace
	\printfield{number}%
	\setunit{\addcomma\space}%
	\printfield{eid}}

% Jahreszahl wurde schon ausgegeben, muss nicht nochmal passieren.  
\newbibmacro*{note+pages-mod}{%
	\printfield{note}%
	\setunit{\bibpagespunct}%
	\printfield{pages}%
	\newunit}

% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
\AtEveryBibitem{%
	\renewcommand*{\mkbibnamelast}[1]{\textsc{#1}}
	% Ursprüngliche Formatierung von Zitaten verwenden (lokal für Kopf der Einträge)
	\let\multinamedelim\myOriginalMultiNameDelim
	\let\finalnamedelim\myOriginalFinalNameDelim
	
	\cite{\thefield{entrykey}}\\
	\renewcommand*{\mkbibnamelast}[1]{#1}
	% Die neue Formatierung wieder aktivieren -> siehe Hook "\AtBeginBibliography{"
	\let\multinamedelim\myBibMultiNameDelim				% \let heißt renewcommand (multiNameDelim) --> (eignenen Stil)
	\let\finalnamedelim\myBibFinalNameDelim
}%

\AtBeginBibliography{%
	\setcounter{maxnames}{99}
	\renewcommand*{\mkbibnamelast}[1]{#1}
}

% Zwischen zwei Autoren als Begrenzung einen Semikolon anstatt Komma:
\newcommand*{\myBibMultiNameDelim}{\addsemicolon\space} % Eigenen Stil definieren und weiter unten zuweisen
\newcommand*{\myBibFinalNameDelim}{\addsemicolon\space} %
\renewcommand*{\labelnamepunct}{\addcolon\space} %

\AtBeginBibliography{%
	% In neuen Befehl speichern bevor überschrieben
	\let\myOriginalMultiNameDelim\multinamedelim
	% In neuen Befehl speichern bevor überschrieben
	\let\myOriginalFinalNameDelim\finalnamedelim
	% Neuen Befehl zuordnen - wurde mit newcommand etwas weiter oben definiert
	\let\multinamedelim\myBibMultiNameDelim				% \let heißt renewcommand (multiNameDelim) --> (eignenen Stil)
	\let\finalnamedelim\myBibFinalNameDelim
}
% % % % % % % % % % % % % % % % % % % % % % % % % % % % % %

% ------------------------------------------------------------------

% Literaturdatei
\addbibresource{Test.bib}


% et al. anstatt u. a.
\DefineBibliographyStrings{german}{%
	andothers = {et\,al.},
	and = {\&},
} 

% Formatierung des "title" elements und weitere.
\DeclareFieldFormat[article, inproceedings, incollection, thesis, misc]{title}{\textnormal{#1}}
\DeclareFieldFormat[book]{title}{\textit{#1}}
%\DeclareFieldFormat[article]{journaltitle}{\textnormal{#1}}
%\DeclareFieldFormat[inproceedings, incollection]{booktitle}{\textnormal{#1}}
\DeclareFieldFormat[inproceedings]{booksubtitle}{\enquote{#1}}
  

% Lengths and Counters, siehe biblatex-Doku
\bibparsep = 0em
\bibitemsep = 1em
\bibhang = 0em
% ------------------------------------------------------------------

%% Eigentliches Dokument
% --------------------------------------------------------
\begin{document}
	\chapter{Test}
	
	Das ist das erste Zitat: \zitat{}{Muller.2005}
	
	Das ist das zweite Zitat: \zitat{}{Maier.2010}
	
	\printbibliography 	
\end{document} 
Der Code läuft bei mir und hat auch immer noch den gleichen Fehler, wenn man nach dem ersten mal (F1-F11-F1) das zweite Zitat löscht. Ich hoffe, Ihr könnt damit was anfangen...

Die Test.bib Datei schaut so aus (automatisch von Citavi erstellt):
@thesis{Maier.2010,
 author = {Maier, Hans},
 year = {2010},
 title = {Zum Thema Literaturverzeichnis},
 type = {Dissertation},
 institution = {Berlin}
}


@online{Muller.2005,
 author = {M{\"u}ller, Birgit},
 year = {2005},
 title = {Latex und Biber}
}


@book{Mustermann.2012,
 author = {Mustermann, Max},
 year = {2012},
 title = {Ein Testtitel},
 publisher = {Sch{\"o}ner Verlag}
}


@article{Schulz.2000,
 author = {Schulz, Maria},
 year = {2000},
 title = {So klappt's}
}

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

Beitrag von u_fischer »

Nun ja, was erwartest du auch, wenn du bei

\AtEveryBibitem ein \cite{\thefield{entrykey}} ausführst. Dann kann der Eintrag auch nie verschwinden. Nimm dort einfach \thefield{entrykey}.

Pitufo
Forum-Newbie
Forum-Newbie
Beiträge: 7
Registriert: Do 28. Aug 2014, 14:47

Beitrag von Pitufo »

Top! Vielen Dank!

Antworten