[Tex/LaTex] How to show only the bibliography which is cited

bibliographies

I have a file called paper.tex. Another file called PaperBib.bbl contains all the bibliography for this. I've used \cite{...} to cite a paper and \bibliography{PaperBib} to print the references in the end of the document.

One problem is that currently all the papers in PaperBib.bbl are listed no matter whether they are cited or not. Is there a way to list:

  • Only the ones which are cited?
  • Only the ones which are not cited?

By the way, I have searched a little bit for similar questions. Someone suggested using biblatex, but I would prefer not to.

PS: I do not have \nocite{*} in either of these 2 files.

Best Answer

Most probably you have \nocite{*} somewhere in the body of your document; this command will cause all entries of the chosen bibliographical database to be included in the list of references.

Simply delete \nocite{*} and re-compile your document (using, for example, pdflatex+bibtex+pdflatex+pdflatex).

The \nocite command can also be used with a key-list as its argument; in this case, it will write the bibliographical information associated to the key-list (even if the publication(s) is(are) otherwise not cited) into the list of references.

Related Question