Warning: There were multiply-defined labels
The log message you quoted is a sort of "summary" of earlier, more detailed warnings, telling you exactly which references are undefined/multiply defined. Scroll up through the log file and you should find more detailed messages that look like the one below:
LaTeX Warning: Label `foo' multiply defined.
There are ways to find duplicate labels in complex documents that have not been mentioned in the other answers. To show how they work I will use a simple (non-complex) test case:
\documentclass{article}
\begin{document}
\section{Section 1}
\label{foo}
\section{Section 2}
\label{foo}
\end{document}
RefTeX
RefTeX can find duplicate labels with the function reftex-find-duplicate-labels
which produce a list of all duplicate labels in the document. To use it simply do M-x reftex-find-duplicate-labels
. When doing this on the file with the test case it opens a new buffer with the following content:
MULTIPLE LABELS IN CURRENT DOCUMENT: Move point to label and type `r' to run a query-replace on the label and its references. Type `q' to exit this buffer. LABEL FILE ------------------------------------------------------------- foo ~/test/test.tex ~/test/test.tex
Perl
As noted by Walt Mankowski one can use a Perl one-liner to find duplicate labels. The one-liner is as follows:
perl -nE 'say $1 if /(\\label[^}]*})/' *.tex | sort | uniq -c | sort -n
To use it open a terminal and cd
to the directory of the document you want to check for duplicate labels in and then execute the one-liner. The output for the test case is as follows:
2 \label{foo}
Relatedly you may also want to check for unused labels.
Besides looking into the .log file, the showlabels package could help you if you would like to check the labels in the output.
To check the input, you could open a terminal and grep for labels:
grep label filename.tex
This gives you a compact overview.