我正在使用 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}