Kombinieren Sie zwei separate Biblatex-Felder in Biblatex-ext

Kombinieren Sie zwei separate Biblatex-Felder in Biblatex-ext

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 bibmacround den entsprechenden Befehl am Ende des Bibliographie-Treibers durch ersetzt . Ich bin mir jedoch nicht sicher, wie ich diese Strategie articlemit einem von bereitgestellten Stil umsetzen soll. Inbiblatex-exteine andere Fragedas hat mich dazu gebracht,biblatex-exthabe 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-extund 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-extso ändern, dass die Seitenverweise für xrefcitedirekt 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 crossciteBibmacro so, dass es das pagesFeld 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}

Bosch, Gerhard und Thorsten Kalina (2017). „Die deutsche Mittelschicht aus der Arbeitsmarktperspektive“. In: Eicker-Wolf und Truger (2017: 111–142).

verwandte Informationen