Background: I have all bibliographic entries in one giant .bib file. In my CV, I'd like to have a section that lists all my articles and another section that lists all my conference presentations. My current approach is this: I tag my own entries with the keyword "own" and then use biblatex:
\printbibliography[type=article,keyword=own,heading="Articles"]
\printbibliography[type=inproceedings,keyword=own,heading="Conference Presentations"]
This approach has two drawbacks. First, I have to tag all my entries and it happened that I missed some. Second, I have to nocite all my entries, which is another great opportunity to make mistakes.
The first problem can be addressed using bib2bib, which allows me to extract my own articles from the big .bib file by specifying a filter for the author
field. However, I was wondering if there is a simpler solution using only tools within LaTeX. \printbibliography
already seems to have some filtering facility but from reading the manual I couldn't figure out how to filter entries based on the values of their fields.
Best Answer
You could use regexp to map a
keyword = {own},
field to all entries with a given pattern inauthor
field via\DelclareSourcemap
, as shown in PLK's answer to biblatex: separating publications of a specific author in the bibliography (there's also an example in the documentation that adds a keyword to every entry with a given title, check §4.5.2.). Something like:After this, you could use
\printbibliography[keyword={own}]
within arefsection
environment in order to have all entries marked with your keyword (called via\nocite{*}
) printed, like shown in Marco Daniel's answer to the same question:Here's a MWE
* Edit: I have removed the
\regexp
frommatch=Kant
inside the\DeclareSourceMap
since it's not needed.