以下 MWE 最终有三个参考书目条目,尽管只引用了两个。我做错了什么?
\documentclass{book}
\usepackage[utf8]{inputenc}
\usepackage{blindtext}
\usepackage[backend=biber,
natbib=true,
hyperref=true,
bibstyle=ext-authoryear,
giveninits=true,
uniquename=false,
innamebeforetitle,
articlein=false,
useprefix=true,
sortlocale=de_DE_phonebook,
]{biblatex}
\defbibheading{bibliography}[\bibname]{%
\section*{#1}%
}
\addbibresource{TEST-Bib-Sorting.bib}
\defbibheading{subbibliography}[\refname]{\subsection*{#1}}
\DeclareBibliographyCategory{cited}
\AtEveryCitekey{\addtocategory{cited}{\thefield{entrykey}}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% Biblatex-Einstellungen %%%
\renewcommand*{\newunitpunct}{\addcomma\space}
\ExecuteBibliographyOptions{dashed=false}
\DeclareNameAlias{sortname}{family-given}
\DeclareDelimFormat{multinamedelim}{\addslash}
\DeclareDelimAlias{finalnamedelim}{multinamedelim}
\DeclareDelimFormat[bib,biblist]{nametitledelim}{\addperiod\space}
\DeclareDelimFormat[bib,biblist]{innametitledelim}{\addcomma\space}
% this is tricky, we want to merge the round brackets around
% the "ed."/"eds." and the year
% the idea is to only open the brackets in the editor string
% and the close it in the labelyear
% since editortype might also be used for editors of @in...
% types where this can't happen, we need a test
\newtoggle{bbx@editor@sortname}
\makeatletter
\renewbibmacro*{bbx:editor}[1]{%
\ifboolexpr{
test \ifuseeditor
and
not test {\ifnameundef{editor}}
}
{\toggletrue{bbx@editor@sortname}%
\usebibmacro{bbx:dashcheck}
{\bibnamedash}
{\printnames{editor}%
\setunit{\printdelim{editortypedelim}}%
\usebibmacro{bbx:savehash}}%
\usebibmacro{#1}%
\clearname{editor}%
\setunit{\printdelim{nameyeardelim}}}%
{\global\undef\bbx@lasthash
\usebibmacro{labeltitle}%
\setunit*{\printdelim{nonameyeardelim}}}%
\usebibmacro{date+extradate}%
\togglefalse{bbx@editor@sortname}}
\makeatother
\DeclareFieldFormat{superedition}{\textsuperscript{#1}}
\DeclareFieldFormat{editortype}{%
\iftoggle{bbx@editor@sortname}
{\bibopenparen #1}
{\mkbibparens{#1}}}
\DeclareFieldFormat{biblabeldate}{%
\iftoggle{bbx@editor@sortname}
{\addcomma\space
\iffieldnum{edition}
{\printfield[superedition]{edition}%
\csgundef{abx@field@edition}}
{}%
#1\bibcloseparen}
{\mkbibparens{%
\iffieldnum{edition}
{\printfield[superedition]{edition}%
\csgundef{abx@field@edition}}
{}%
#1}}}
\DeclareDelimFormat{editortypedelim}{\addspace}
%% tricky bit END
\DeclareFieldFormat{translatortype}{\mkbibparens{#1}}
\DeclareDelimFormat{translatortypedelim}{\addspace}
\renewbibmacro*{pubinstorg+location+date}[1]{%
\setunit{\addperiod\space}%
\printlist{location}%
\iflistundef{#1}
{\setunit*{\locdatedelim}}
{\setunit*{\locpubdelim}}%
\printlist{#1}%
\setunit*{\pubdatedelim}%
\usebibmacro{date}%
\newunit}
\newbibmacro*{pages}{
\printfield{pages}%
}
\renewcommand*{\bibpagespunct}{\ifentrytype{article}{\addcolon}{\addcolon}\space}
\DeclareFieldFormat{pages}{#1}
\DeclareFieldFormat{postnote}{\mknormrange{#1}}
\DeclareFieldFormat{volcitepages}{\mknormrange{#1}}
\DeclareFieldFormat{multipostnote}{\mknormrange{#1}}
%%% Titel kursiv
\DeclareFieldFormat{title}{#1\isdot}
\DeclareFieldFormat[article]{title}{#1}
\DeclareFieldFormat[inbook,incollection]{title}{#1}
\DeclareFieldFormat[inbook,incollection]{booktitle}{#1}
\DeclareFieldFormat[article]{journaltitle}{#1}
\DeclareSortingNamekeyTemplate{
\keypart{
\namepart{prefix}
}
\keypart{
\namepart{family}
}
\keypart{
\namepart{given}
}
\keypart{
\namepart{suffix}
}
}
\renewbibmacro*{incollection:parent}{%
\iftoggle{bbx:innamebeforetitle}
{\usebibmacro{in:editor+others}%
\setunit{\printdelim{innametitledelim}}\newblock}
{}%
\usebibmacro{maintitle+booktitle}%
\newunit\newblock
\usebibmacro{byeditor+others}%
\newunit\newblock
\usebibmacro{edition}%
\newunit
\usebibmacro{barevolume+volumes}%
\newunit\newblock
\usebibmacro{series+number}%
\newunit\newblock
\usebibmacro{publisher+location+date}}
\DeclareBibliographyDriver{article}{%
\usebibmacro{introcite:plain}%
\usebibmacro{bibindex}%
\usebibmacro{begentry}%
\usebibmacro{author/translator+others}%
\setunit{\printdelim{nametitledelim}}\newblock
\usebibmacro{title}%
\newunit
\usebibmacro{language}%
\newunit\newblock
\usebibmacro{byauthor}%
\newunit\newblock
\usebibmacro{bytranslator+others}%
\newunit\newblock
\printfield{version}%
\newunit\newblock
\iftoggle{bbx:articlein}{\usebibmacro{in:}}{}%
\usebibmacro{journal+issuetitle}%
\newunit
\usebibmacro{byeditor+others}%
\setunit{\addcolon\addspace}
\usebibmacro{pages}%
\setunit{\adddot\addspace}\newblock
\usebibmacro{note}%
\newunit\newblock
\usebibmacro{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}}
\DeclareBibliographyDriver{book}{%
\usebibmacro{introcite:plain}%
\usebibmacro{bibindex}%
\usebibmacro{begentry}%
\usebibmacro{author/editor+others/translator+others}%
\setunit{\printdelim{nametitledelim}}\newblock
\usebibmacro{maintitle+title}%
\newunit
\usebibmacro{language}%
\newunit\newblock
\usebibmacro{byauthor}%
\newunit\newblock
\usebibmacro{byeditor+others}%
\newunit\newblock
\usebibmacro{edition}%
\newunit
\usebibmacro{barevolume+volumes}%
\newunit\newblock
\usebibmacro{series+number}%
\newunit\newblock
\usebibmacro{publisher+location+date}%
\setunit{\adddot\addspace}\newblock
\usebibmacro{note}%
\newunit\newblock
\usebibmacro{chapter+pages}%
\newunit
\printfield{pagetotal}%
\newunit\newblock
\usebibmacro{isbn}%
\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}}
\DeclareBibliographyDriver{incollection}{%
\usebibmacro{introcite:plain}%
\usebibmacro{bibindex}%
\usebibmacro{begentry}%
\usebibmacro{author/translator+others}%
\setunit{\printdelim{nametitledelim}}\newblock
\usebibmacro{title}%
\newunit
\usebibmacro{language}%
\newunit\newblock
\usebibmacro{byauthor}%
\newunit\newblock
\usebibmacro{in:}%
\usebibmacro{crosscite}{incollection:parent}%
\newunit\newblock
\usebibmacro{chapter+pages}%
\setunit{\adddot\addspace}\newblock
\usebibmacro{note}%
\newunit\newblock
\usebibmacro{isbn}%
\newunit\newblock
\usebibmacro{doi+eprint+url}%
\newunit\newblock
\usebibmacro{addendum+pubstate}%
\setunit{\bibpagerefpunct}\newblock
\usebibmacro{pageref}%
\newunit\newblock
% with default inheritance 'related' is not inherited,
% so the test is not actually necessary
\ifboolexpr{togl {bbx:related} and not test {\iffieldxref{related}}}
{\usebibmacro{related:init}%
\usebibmacro{related}}
{}%
\usebibmacro{finentry}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{filecontents}{TEST-Bib-Sorting.bib}
@Incollection{Fowler:2000:First,
author = {Fowler, D. P.},
year = {2000},
title = {First thoughts on closure: problems and prospects},
pages = {239–83},
crossref = {Fowler:2000},
}
@Incollection{Fowler:2000:Second,
author = {Fowler, D. P.},
year = {2000},
title = {Second thoughts on closure},
pages = {284–307},
crossref = {Fowler:2000},
}
@Book{Fowler:2000,
editor = {Fowler, D. P.},
year = {2000},
title = {Roman constructions. Readings in postmodern Latin},
publisher = {Oxford},
booktitle = {Roman constructions. Readings in postmodern Latin},
}
\end{filecontents}
\begin{document}
%\citet{Fowler:2000},
\citet{Fowler:2000:Second},
\citet{Fowler:2000:First}
\printbibliography
\end{document}
答案1
您在 bib 条目中有交叉引用。
来自文档:
如果引用特定父条目的子条目数量达到特定阈值,则即使没有明确引用父条目,也会自动将其添加到参考书目中。可以使用包选项设置阈值
mincrossrefs
...