Verwendung speziellem Zitierstil mit BibLaTex

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


pred
Forum-Anfänger
Forum-Anfänger
Beiträge: 11
Registriert: Fr 28. Jul 2017, 14:42

Beitrag von pred »

Der Ansatz war gut, jedoch hab ich immernoch bei dem Author-year-Block im Literaturverzeichnis ein Semikolon zwischen den Autoren, wenn es zwei sind.

Ich habe mal das Minimalbeispiel entsprechend ergänzt:
\documentclass[british]{scrbook} 
\usepackage[T1]{fontenc} 
\usepackage[utf8]{inputenc} 
\usepackage{babel} 
\usepackage{csquotes}
\usepackage[style=authoryear-icomp,sorting=nyt,dashed=false,maxcitenames=2,sortlocale=de_DE,url=true,isbn=true,doi=true,uniquename=init,giveninits]{biblatex}
\addbibresource{biblatex-examples.bib} 
%%% Einfügen von authoryear Block in Literaturverzeichnis
\newcounter{mymaxcitenames}
\AtBeginDocument{%
  \setcounter{mymaxcitenames}{\value{maxnames}}%
}
\renewbibmacro*{begentry}{%
  \printtext[parens]{%
    \begingroup
    \defcounter{maxnames}{\value{mymaxcitenames}}%
    \printnames{labelname}%
    \setunit{\nameyeardelim}%
    \usebibmacro{cite:labeldate+extradate}%
    \endgroup
    }%
  \quad% or \addspace
  \newline
}
%%%%

\DeclareDelimFormat{finalnamedelim}{\addspace\&\space} 
\DeclareDelimFormat[bib,biblist]{multinamedelim}{\addsemicolon\space}
\DeclareDelimAlias*[bib,biblist]{finalnamedelim}{multinamedelim} 

\begin{document} 
\cite{sigfridsson,companion,aksin} 
\printbibliography 
\end{document}

Gast

Beitrag von Gast »

Was hältst Du von
\documentclass[ngerman]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[style=authoryear-icomp, dashed=false, maxcitenames=2, uniquename=init, giveninits]{biblatex}
\addbibresource{biblatex-examples.bib}


\makeatletter
\renewbibmacro*{begentry}{%
  \printtext[parens]{%
    \begingroup
    \delimcontext{parencite}%
    \csuse{blx@hook@cite}%
    \csuse{blx@hook@citekey}%
    \citetrackerfalse\pagetrackerfalse\backtrackerfalse
    \defcounter{maxnames}{\blx@maxcitenames}%
    \printnames{labelname}%
    \setunit{\printdelim{nameyeardelim}}%
    \usebibmacro{cite:labeldate+extradate}%
    \endgroup
  }%
  \newline
}
\makeatother

\DeclareDelimFormat{finalnamedelim}{\addspace\&\space}
\DeclareDelimFormat[bib,biblist]{multinamedelim}{\addsemicolon\space}
\DeclareDelimAlias*[bib,biblist]{finalnamedelim}{multinamedelim}

\begin{document}
\cite{sigfridsson,companion,aksin}
\printbibliography
\end{document}
Ein paar Erklärungen, warum das alles nicht sofort ging. biblatex bietet die Möglichkeit, einige Dinge in Zitaten und Literaturverzeichnis getrennt zu regeln (z.B. mit den unterschiedlichen delimiter contexts) oder mit \AtEveryCitekey, ...). Du möchtest gerne am Beginn jedes Eintrages im Literaturverzeichnis die Darstellung des Zitates nachempfinden. Dort befindet sich biblatex allerdings im Kontext des Literaturverzeichnisses und verhält sich auch so. Du musst also ein paar Dinge umbiegen und biblatex vorgaukeln, es sei gerade dabei eine Zitation zu setzten.

Deine Optionen habe ich etwas aufgeräumt. sorting=nyt ist bereits die Voreinstellung bei style=authoryear-icomp. sortlocale sollte man in den seltensten Fällen angeben müssen. Eigentlich übernimmt biblatex die passende Sortierung für die Dokumentensprache (deshalb habe ich ngerman gewählt, dann ist alles wie erwartet). url=true,isbn=true,doi=true sind so voreingestellt, hier also überflüssig.

pred
Forum-Anfänger
Forum-Anfänger
Beiträge: 11
Registriert: Fr 28. Jul 2017, 14:42

Beitrag von pred »

Funktioniert super, riesen danke!!

Antworten