0

I have two .bib files and I can't seem to simply display each bibliography separate. I have searched on several forums but either I can't get the proposed solutions to work or they are quickly very complicated. I was just also imagining something like this or this but I can't get it to work. What is missing? Thanks.

\documentclass{article}

\usepackage{biblatex}

\addbibresource{bib1.bib} 
\addbibresource{bib2.bib}

\begin{document}

\nocite{*}
\printbibliography[title={first bibliography}, resetnumbers=true]
\printbibliography[title={second bibliography}, resetnumbers=true]

\end{document}
2
  • Welcome to TeX.SE. From your links tex.stackexchange.com/questions/135952/… seems the most relevant. Could you explain what you mean exactly with "I can't get it to work"? Do you get errors? If yes, which errors? No output? Wrong output? If the output is wrong, then what does the output look like?
    – Marijn
    May 7, 2021 at 16:30
  • This is usually done by adding keywords via a Biber sourcemap, see the end of the accepted answer to tex.stackexchange.com/q/35279/35864
    – moewe
    May 8, 2021 at 11:26

2 Answers 2

2

biblatex already lets you filter by lots of properties, but not by file name of the containing .bib file.

If the crucial property that separates the two bibliographies can be read off from the data, it might be possible to code a solution that does not need to rely on the artificial separation into different files.

Still, biblatex: multiple bibliographies categorised by different .bib files explains how you can separate your bibliographies just by reference to the file names with a Biber sourcemap. The following just uses the new appendstrict feature to avoid clashes with existing noneempty keywords fields.

\documentclass[british]{article}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{csquotes}

\usepackage[backend=biber, style=authoryear]{biblatex}

\DeclareSourcemap{
  \maps[datatype=bibtex, overwrite]{
    \map{
      \perdatasource{bib1.bib}
      \step[fieldset=keywords, fieldvalue={, }, appendstrict]
      \step[fieldset=keywords, fieldvalue=one, append]
    }
    \map{
      \perdatasource{bib2.bib}
      \step[fieldset=keywords, fieldvalue={, }, appendstrict]
      \step[fieldset=keywords, fieldvalue=two, append]
    }
  }
}

\begin{filecontents}{bib1.bib}
@article{sigfridsson,
  author       = {Sigfridsson, Emma and Ryde, Ulf},
  title        = {Comparison of methods for deriving atomic charges from the
                  electrostatic potential and moments},
  journaltitle = {Journal of Computational Chemistry},
  date         = 1998,
  volume       = 19,
  number       = 4,
  pages        = {377-395},
  doi          = {10.1002/(SICI)1096-987X(199803)19:4<377::AID-JCC1>3.0.CO;2-P},
}
\end{filecontents}
\begin{filecontents}{bib2.bib}
@book{nussbaum,
  author       = {Nussbaum, Martha},
  title        = {Aristotle's \mkbibquote{De Motu Animalium}},
  date         = 1978,
  publisher    = {Princeton University Press},
  location     = {Princeton},
  keywords     = {anotherkey},
}
\end{filecontents}
\addbibresource{bib1.bib}
\addbibresource{bib2.bib}

\begin{document}
Some citations: \autocite{sigfridsson,nussbaum}.
\printbibliography[title={First Bibliography}, keyword=one]
\printbibliography[title={Second Bibliography}, keyword=two]
\end{document}

First Bibliography: Sigfridsson, Emma and Ulf Ryde (1998)//Second Bibliography Nussbaum, Martha (1978).

0

Something like this should work:

\documentclass{article}

\usepackage{biblatex}

\addbibresource{bib1.bib} 
\addbibresource{bib2.bib}

\begin{document}

\begin{refsection}[bib1]
\nocite{*}
\printbibliography[title={first bibliography}, resetnumbers=true]
\end{refsection}
\begin{refsection}[bib2]
\nocite{*}
\printbibliography[title={second bibliography}, resetnumbers=true]
\end{refsection}

\end{document}

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .