Note that annote
is an alias for annotation
, so the answer uses annotation
instead.
You can create bibcheck
s with almost arbitrary logic. See ยง3.7.9 Bibliography Filters and Checks of the biblatex
manual.
A bibcheck
will contain the special directive \skipentry
to discard a particular entry, all entries that do not get to \skipentry
will be displayed. (So in a way you don't explicitly tell biblatex
which entries you want, you mark those that you don't want.)
With \iffieldequalstr
you can check for field contents. Putting that together you can use
\defbibcheck{annotebar}{\iffieldequalstr{annotation}{bar}{}{\skipentry}}
\defbibcheck{annotefoo}{\iffieldequalstr{annotation}{foo}{}{\skipentry}}
to obtain only those entries with an annotation
equal to bar
and foo
, respectively.
\documentclass[british]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[bibencoding=auto,backend=biber,babel=other]{biblatex}
\usepackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@book{Bara2006,
address = {New York},
author = {Bara, Judith},
publisher = {Routledge},
title = {English Citation entry},
year = {2006},
annote = {foo},
}
@book{Bara2007,
address = {New York},
author = {Bara, Judith},
publisher = {Routledge},
title = {Another English Citation entry},
year = {2007},
annote = {bar},
}
\end{filecontents*}
\addbibresource{\jobname.bib}
\defbibcheck{annotebar}{\iffieldequalstr{annotation}{bar}{}{\skipentry}}
\defbibcheck{annotefoo}{\iffieldequalstr{annotation}{foo}{}{\skipentry}}
\begin{document}
\parencite{Bara2006,Bara2007}
\printbibliography[check=annotebar]
\printbibliography[check=annotefoo]
\end{document}
Best Answer
The command
\clearlist
can be used to suppress a category. You can read more details in the documenationIn the MWE below I have used
filecontents*
to create the bibliography, but if you already have a.bib
file then you can delete these lines.The compilation sequence is
(You don't have to use the extensions if you don't want to.)