You can use the checkcites
script, which is available in every recent TeX distribution.
Here's an example file, save it as checktest.tex
; usage of \jobname
and filecontents*
is just for making the example selfcontained, you'll use your own .bib
file, of course.
\begin{filecontents*}{\jobname.bib}
@article{used,
author={A. Uthor},
title={Title},
journal={Journal},
year={2015},
}
@article{unused,
author={W. Riter},
title={Title},
journal={Journal},
year={2015},
}
\end{filecontents*}
\documentclass{article}
\begin{document}
\cite{used}
\cite{undefined}
\bibliographystyle{plain}
\bibliography{\jobname}
\end{document}
If you compile it and run
checkcites checktest
The terminal will output
checkcites.lua -- a reference checker script (v1.0i)
Copyright (c) 2012 Enrico Gregorio, Paulo Roberto Massa Cereda
I found 2 citation(s).
Great, there's only one 'bib' file. Let me check it.
I found 2 reference(s).
Unused reference(s) in your bibliography file(s): 1
- unused
Undefined reference(s) in your TeX file: 1
- undefined
So the unused
entry has no corresponding \cite
command in the file, while undefined
has a \cite
, but has no entry in the .bib
file.
\nocite{*}
at the end of the document then any "unused" references will appear at the end of your reference list with the highest numbers, coming after any real references\cite
or\nocite
for each of the items you're writing about, after processing the review with bibliography, your log will tell you what's missing. if you've used\cite
, there will be??
in your output instead of the cited item, but only the log will say what the reference label is.