为什么分区的 biblatex 书目不完整?

为什么分区的 biblatex 书目不完整?

我正在使用 biblatex,想用关键词将参考书目分成几部分。三部分中的两部分按预期打印,引用也正常打印,但第三部分参考书目(使用 type= 和 notkey=)没有打印。

我在一个较小的文档中重现了这个问题:

\documentclass[b4paper]{article}
\usepackage[
    backend=biber,%
    backref=true,%
    indexing=true,%
    sorting=anyt,%,
    style=alphabetic%
    ]%
    {biblatex}
\addbibresource{ARB.bib}
\addbibresource{FAQ.bib}
\addbibresource{IETF.bib}
\addbibresource{ISO.bib}
\addbibresource{Unicode.bib}
\usepackage{hyperref}
\usepackage{imakeidx}
%\usepackage{url}

\makeindex[intoc]

\title{Test of biblatex
    \author{Shmuel (Seymour J.) Metz}
    }

\begin{document}
\maketitle

\tableofcontents

\section{Test text citing bib}

This~\cite{ANSI:J18} is a reference to an ANSI standard. This \cite{ISO:10646} isva reference to an ISO standard.

This~\cite{Unicode} is a reference to the entire standard, this~\cite{USTD:3.9} is a reference to section 3.9 and this~\cite{UAX42} is
a reference to Annex 42. 

This~\cite{RFC:3629} is a reference to an RFC.

This\footcite{UAX44} is a footnote reference to Annex 44.

This~\cite{UFAQs} is a reference to the Unicode FAQs and this~\cite{UFAQ:Chars} is a reference to a specific FAQ.

This~\cite{ARB:RXU} is a reference to RXU

\section{Bibliography}

\printbibliography[%
    keyword=ARB,%
    title={GitHub ARB documents}%
    ]
\printbibliography[%
    keyword=FAQ,%
    title=FAQs%
    ]
\printbibliography[%
    type=standard,%
    notkeyword=FAQ,%
    title={Official documents}%
    ]

\printindex

\end{document}

相关的 .bib {使用 type=standard 重新测试) 条目是:

@report{ANSI:J18,
    label          = {INCITS 274-1996[S2008]},
    type           = {standard},
    shorthand      = {INCITS 274-1996[S2008]},
    title          = {American National Standard for Information Systems - Programming Language REXX},
    shorttitle     = {ANSI Rexx},
    indexsorttitle = {Rexx ANSI standard},
    keywords       = {ANSI,standard},
    instituition   = {American National Standards Institute (ANSI)},
    url            = {https://webstore.ansi.org/standards/incits/incits2741996s2008},
    urldate        = {2023-09-27}
}
@report{ISO:10646,
    label         = {ISO/IEC 10646},
    type          = {standard},
    title         = {Information technology - Universal coded character set (UCS)},
    indextitle    = {ISO 10646: Information technology - Universal coded character set (UCS)},
    keywords      = {IETF,standard},
    instituition  = {International Standards Organization )ISO)},
    url           = {https://www.iso.org/standard/76835.html},
    urldate       = {2023-09-27}
}

答案1

你没有提供一个可行的示例,因为大多数必需的.bib文件(和条目)都不可用,但如果你说

\printbibliography
[...
  type=standard,
]

Biblatex 将仅包含标准条目type。通常,这些条目会是@standard{...}您的文件中的条目.bib。您显示的两个条目均不符合此标准,因为它们都不是@standard{...}。相反,它们都是@report{...},并且会匹配type=report

但请注意,标准样式映射@standard@misc,因此简单地更改条目的类型可能不是一个好的解决方案。根据其他因素,使用keyword而不是type或过滤report而不是standard可能会更好。

答案2

使用 keyword=standard 进行过滤的技巧是有效的。同时,我打开了问题 #1307https://github.com/plk/biblatex/issues/1307要求增强功能以​​允许对条目类型和类型进行过滤。 工作技巧是:

\documentclass[b4paper]{article}
\usepackage[
    backend=biber,%
    backref=true,%
    indexing=true,%
    sorting=anyt,%,
    style=alphabetic%
    ]%
    {biblatex}
\addbibresource{ARB.bib}
\addbibresource{FAQ.bib}
\addbibresource{IETF.bib}
\addbibresource{ISO.bib}
\addbibresource{Unicode.bib}
\usepackage{hyperref}
\usepackage{imakeidx}
%\usepackage{url}

\makeindex[intoc]

\title{Test of biblatex
    \author{Shmuel (Seymour J.) Metz}
    }

\begin{document}
\maketitle

\tableofcontents

\section{Test text citing bib}

This~\cite{ANSI:J18} is a reference to an ANSI standard. This \cite{ISO:10646} isva reference to an ISO standard.

This~\cite{Unicode} is a reference to the entire standard, this~\cite{USTD:3.9} is a reference to section 3.9 and this~\cite{UAX42} is
a reference to Annex 42. 

This~\cite{RFC:3629} is a reference to an RFC.

This\footcite{UAX44} is a footnote reference to Annex 44.

This~\cite{UFAQs} is a reference to the Unicode FAQs and this~\cite{UFAQ:Chars} is a reference to a specific FAQ.

This~\cite{ARB:RXU} is a reference to RXU

\section{Bibliography}

\printbibliography[%
    keyword=ARB,%
    title={GitHub ARB documents}%
    ]
\printbibliography[%
    keyword={FAQ},%
    title=FAQs%
    ]
\printbibliography[%
    keyword={standard},%
    notkeyword={FAQ},%
    title={Official documents}%
    ]

\printindex

\end{document}

相关内容