
Ich möchte das Jahr und die Seiten eines incollection
-Artikels so verbinden, dass sie in der Bibliographie als Einheit angezeigt werden. In einem anderen Fall (Zeitschrift + Seitenzahl in einem article
-Artikel) habe ich einen neuen geschrieben bibmacro
und den entsprechenden Befehl am Ende des Bibliographie-Treibers durch ersetzt . Ich bin mir jedoch nicht sicher, wie ich diese Strategie article
mit einem von bereitgestellten Stil umsetzen soll. Inbiblatex-ext
eine andere Fragedas hat mich dazu gebracht,biblatex-ext
habe ich diesen Code erhalten:
\documentclass[ngerman]{article}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[backend=biber, style=ext-authoryear-ibid, citexref=true]{biblatex}
\usepackage{libertinus}
\begin{filecontents}{\jobname.bib}
@collection{EickerWolf2017,
title = {Ungleichheit in Deutschland – ein »gehyptes Problem«?},
editor = {Eicker-Wolf, Kai and Truger, Achim},
location = {Marburg},
year = {2017},
}
@incollection{Schreiner2017,
author = {Schreiner, Patrick},
title = {Löhne und Verteilung},
crossref = {EickerWolf2017},
pages = {47--78},
}
@incollection{Bosch2017,
author = {Bosch, Gerhard and Kalina, Thorsten},
title = {Die deutsche Mittelschicht aus der Arbeitsmarktperspektive},
crossref = {EickerWolf2017},
pages = {111--142},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
\cite{Bosch2017,Schreiner2017}
\printbibliography
\end{document}
Für die Kurzzitation des übergeordneten Eintrags würde ich nach der Nennung des Herausgebernamens Jahreszahl und Seitenzahl in Klammern setzen, getrennt durch Doppelpunkt und Leerzeichen [2017, S. 17–46 → (2017: 17–46)]. Ich würde etwa Folgendes verwenden:
\newbibmacro*{year+pages}{%
\space\printtext[parens]{\printfield{year}: \printfield{pages}}%
\newunit}
Nachdem ich den Code durchgesehen biblatex-ext
und einige Hinweise von moewe erhalten habe, weiß ich einfach nicht, wo ich ihn platzieren soll, da Querverweise und verschiedene Umschalter erforderlich sind. Kann mir jemand einen Tipp geben?
Antwort1
Sie können den Code biblatex-ext
so ändern, dass die Seitenverweise für xrefcite
direkt in der Postnote des Zitatbefehls gedruckt werden und die Funktion verwenden \textcite
.
Zuerst müssen wir das Bibmacro, das die Seiten aus den entsprechenden Bibdrivern druckt, entfernen. Dann modifizieren wir das crosscite
Bibmacro so, dass es das pages
Feld an den Zitatbefehl weitergibt.
\documentclass[ngerman]{article}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[backend=biber, style=ext-authoryear-ibid, citexref=true]{biblatex}
\usepackage{libertinus}
\DeclareDelimFormat{postnotedelim}{\addcolon\space}
\DeclareFieldFormat{postnote}{\mknormrange{#1}}
\usepackage{xpatch}
\newcommand*{\removechapterpages}[1]{%
\xpatchbibdriver{#1}
{\newunit\newblock
\usebibmacro{chapter+pages}}
{}
{}{}}
\removechapterpages{inbook}
\removechapterpages{incollection}
\removechapterpages{inproceedings}
\renewbibmacro*{crosscite}[1]{%
\iftoggle{bbx:citexref}
{\iffieldundef{crossref}
{\iffieldundef{xref}
{\usebibmacro{#1}%
\newunit\newblock
\usebibmacro{chapter+pages}}
{\usebibmacro{xrefcitewithpages}{xref}}}
{\usebibmacro{xrefcitewithpages}{crossref}}}
{\usebibmacro{#1}%
\newunit\newblock
\usebibmacro{chapter+pages}}}
\makeatletter
\newbibmacro{xrefcitewithpages}[1]{%
\printtext{%
\iffieldundef{pages}
{\bbx@xrefcite{\thefield{#1}}}
{\expandafter\bbx@xrefcite\expandafter[\abx@field@pages]{\thefield{#1}}}}%
}
\renewcommand*{\bbx@xrefcite}{%
\AtNextCite{%
\boolfalse{citetracker}%
\boolfalse{pagetracker}%
\boolfalse{backtracker}}%
\textcite}
\makeatother
\begin{filecontents}{\jobname.bib}
@collection{EickerWolf2017,
title = {Ungleichheit in Deutschland – ein »gehyptes Problem«?},
editor = {Eicker-Wolf, Kai and Truger, Achim},
location = {Marburg},
year = {2017},
}
@incollection{Schreiner2017,
author = {Schreiner, Patrick},
title = {Löhne und Verteilung},
crossref = {EickerWolf2017},
pages = {47--78},
}
@incollection{Bosch2017,
author = {Bosch, Gerhard and Kalina, Thorsten},
title = {Die deutsche Mittelschicht aus der Arbeitsmarktperspektive},
crossref = {EickerWolf2017},
pages = {111--142},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
\cite{Bosch2017,Schreiner2017}
\printbibliography
\end{document}