latexbibtexbibliographyoverleafbiblatex

Multikey, multisource bibliography Tex


I'm trying to create a multikey, multisource bibliography in Tex, I have written some psuedo-code for it (I say pseudo, because I'm perfectly aware this is not how the syntax works), but I hope it illustrates what I'm trying to accomplish:

\documentclass{article}
\usepackage{blindtext}
\usepackage[backend=biber]{biblatex}
\addbibresource{Refs1.bib}
\addbibresource{Refs2.bib}
\addbibresource{Refs3.bib}

\begin{document}

\blindtext

\section{Bibliography}
\printbibliography[title={Topic 1}, style=alphabetic, keyword=keyword1]
\printbibliography[title={Topic 2}, style=numeric, keyowrd=keyword2]
\printbibliography[title={No topic}, style=numeric]   %The bibliopgraphy for all the references with no keyword 

\end{document}

The crux of my problem is that I'd like the reader to be able to identify from which of the bibliographies a particular reference comes from, so I would like them to have different styles, furthermore is there a way to make all non-keyed, cited references appear in "No topic".

Any help on this would be greatly appriciated. Have a great day everyone!


Solution

  • You have two options here. You can either use filters or you can parse the keywords directly in your \printbibliography command (almost like you did).

    To use filter you can do the following:

    \defbibfilter{topic1}{
        keyword=key_1
    }
    
    \defbibfilter{topic2}{
        keyword=key_2
    }
    
    
    \defbibfilter{notopic}{
        not keyword=key_1 and not keyword=key_2
    }
    
    \printbibliography[filter=topic1, title={Topic 1}]
    \printbibliography[filter=topic2, title={Topic 2}]
    \printbibliography[filter=notopic, title={No Topic}]
    

    If you just want to parse it in the command directly you can do it like this:

    \printbibliography[keyword={key_1}, keyword={key_2}, keyword={key_3}]
    

    If you want to exclude certain keywords use the following method.

    \printbibliography[notkeyword={key_1}, notkeyword={key_2}, notkeyword={key_3}]
    

    Hope this works for you!