biblatex - 总是单独打印@collection 项目,即使只有一个@incollection 项目引用它

biblatex - 总是单独打印@collection 项目,即使只有一个@incollection 项目引用它

我有一个具有特殊格式的参考书目,它仅打印@incollection 项目所引用集合的简称。

但是,它只对@incollection 项执行此操作,其中存在多个引用同一@collection 项的@incollection 项。

我希望@collection 项目始终作为参考书目中的单独项目出现,无论有多少@incollection 项目引用它。

我希望@incollection 项目的格式始终相同,无论引用的@collection 有多少个@incollection 项目。

请参阅下面的 MWE 和图像以获取解释。

梅威瑟:

\documentclass{book}
\usepackage[style=authortitle-dw,
edsuper=true,
namefont=smallcaps,
useprefix=true,
ibidemfont=smallcaps,
idemfont=smallcaps,
idembibformat=dash,
shorthandibid=true,
backref=false,
backrefstyle=none,
hyperref=true,
isbn=false,
backend=biber,
citereset=chapter,
edstringincitations=false,
bibencoding=utf8,
minxrefs=2]{biblatex}

% ----------- mistake is somewhere in here ------------
%% bilbiography driver to display only shorttitle of referenced collection for incollection items
\DeclareBibliographyDriver{incollection}{%
    \usebibmacro{bibindex}%
    \usebibmacro{begentry}%
    \usebibmacro{author/translator+others}%
    \setunit{\labelnamepunct}\newblock
    \usebibmacro{title}%
    \newunit
    \printlist{language}%
    \newunit\newblock
    \usebibmacro{byauthor}%
    \newunit\newblock
    \usebibmacro{in:}%
    \iffieldundef{crossref}
    {\usebibmacro{crossref:full}}
    {\usebibmacro{crossref:label}}
    \newunit\newblock
    \usebibmacro{chapter+pages}%
    \iffieldundef{crossref}
    {\usebibmacro{crossref:extrainfo}}
    {}
    \setunit{\bibpagerefpunct}\newblock
    \usebibmacro{pageref}%
    \usebibmacro{finentry}}

\newbibmacro{crossref:full}{%
    \usebibmacro{maintitle+booktitle}%
    \newunit\newblock
    \usebibmacro{event+venue+date}%
    \newunit\newblock
    \usebibmacro{byeditor+others}%
    \newunit\newblock
    \iffieldundef{maintitle}
    {\printfield{volume}%
        \printfield{part}}
    {}%
    \newunit
    \printfield{volumes}%
    \newunit\newblock
    \usebibmacro{series+number}%
    \newunit\newblock
    \printfield{note}%
    \newunit\newblock
    \printlist{organization}%
    \newunit
    \usebibmacro{publisher+location+date}}

\newbibmacro{crossref:label}{%
    \entrydata{\strfield{crossref}}
    {\DeclareNameAlias{labelname}{given-family}%
        \printnames{labelname}%
        \setunit*{\addspace}%
        %\printtext[parens]{\usebibmacro{editorstrg}}%
        \setunit*{\addcomma\space}%
        \printfield[shorttitle]{labeltitle}}}

\newbibmacro{crossref:extrainfo}{%
    \newunit\newblock
    \iftoggle{bbx:isbn}
    {\printfield{isbn}}
    {}%
    \newunit\newblock
    \usebibmacro{doi+eprint+url}%
    \newunit\newblock
    \usebibmacro{addendum+pubstate}}

% ----------- mistake is somewhere above here ------------

\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@incollection{albrechtbirkner,
    crossref = {kampmann},
    author = {Albrecht-Birkner, Veronika},
    title = {Die Zwei-Reiche-Lehre in der DDR: Vortrag im Rahmen der Tagung Die lutherische Zwei-Reiche-Lehre in politischen Kontexten des 20. Jahrhunderts},
    shorttitle = {Reiche},
    gender = {sf}
}
@incollection{banchelli2008,
    crossref = {cambi2008},
    author = {Banchelli, Eva},
    title = {Ostalgie: eine vorläufige Bilanz},
    shorttitle = {Ostalgie},
    gender = {sf}
}

@collection{cambi2008,
    year = {2008},
    title = {Gedächtnis und Identität: Die deutsche Literatur nach der Vereinigung},
    address = {Würzburg},
    isbn = {382603788X},
    editor = {Cambi, Fabrizio},
    shorttitle = {Gedächtnis},
    gender = {sm}
}

@collection{kampmann,
    year = {2017},
    title = {Angewandtes Luthertum?},
    address = {Gütersloh},
    isbn = {382603788X},
    editor = {Kampmann, Jürgen and Otte, Hans},
    shorttitle = {Luthertum},
    gender = {pp}
}
@incollection{pelz2015,
    crossref = {kampmann},
    year = {2017},
    title = {Von der Deutschen Demokratischen Repunlik zur deutschen Pastorenrepublik? Mecklenburgische und Pommersche, evangelisch-lutherische Predigten von 1989/90 als Spiegel der Interpretationen einer lutherischen Zwei-Reiche-Lehre im 20. Jahrhundert},
    author = {Pelz, Birge-Dorothea},
    shorttitle = {Kirche}
}
\end{filecontents}

\addbibresource{\jobname.bib}

\begin{document}
    \cite{pelz2015,banchelli2008,albrechtbirkner}
    \printbibliography
\end{document}

图像:

在此处输入图片描述

在情况 1 中,特殊格式正确应用,因为 @collection KAMPMANN 有超过 1 个 @incollection 项目。

在案例 2 中,只有 BANCHELLI 引用了 CAMBI,而 CAMBI 未出现在参考书目中。应按上述方法进行更改。

答案1

mincrossrefs=1

您可以确保所有crossref条目即使未被引用也始终出现在参考书目中。

默认为microssrefs=2,因此需要两个或多个@incollections crossref相同的@collection

幸运的是,microssrefsminxrefs是独立的,所以你仍然可以使用大卫的答案同一作者的多个书籍条目的书目特定格式

相关内容