We maintain a bibtex file with all publications from our group. We use the annote field to separate the publications into several groups, e.g. Journal Papers or Other Papers. This makes the entries look like this:
@article{something_2011,
Author = {Author, Some and Other, An},
Title = {Here be dragons},
Journal = {Whatever journal},
Pages = {123-234},
Volume = {1},
Year = {2000},
Annote = {Other Peer Reviewed Paper}
}
We then have a tex file that looks something like this:
\documentclass{article}
\usepackage{fontspec}
\usepackage{biblatex}
\addbibresource{author1_Books.bib}
\addbibresource{author1_OtherPeerReviewedPapers.bib}
\addbibresource{author1_OtherPapers.bib}
\addbibresource{author1_JournalPapers.bib}
\begin{document}
\nocite{*}
\printbibliography[title={Books}]
\printbibliography[title={Other Peer Reviewed Papers}]
\printbibliography[title={Other Papers}]
\printbibliography[title={Journal Papers}]
\end{document}
The above tex files prints all publications into all four bibliographies. So we want to use the content of the annote field to group the entries. But biblatex only filters on segment, type, subtype, category, keyword or a combination of those, but not on arbitrary fields. Is it possible to have biblatex filter on the annote field?
Best Answer
Note that
annote
is an alias forannotation
, so the answer usesannotation
instead.You can create
bibcheck
s with almost arbitrary logic. See ยง3.7.9 Bibliography Filters and Checks of thebiblatex
manual. Abibcheck
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 tellbiblatex
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 useto obtain only those entries with an
annotation
equal tobar
andfoo
, respectively.