8.24.1 \bibitem

Synopsis:

\bibitem{cite_key}

or

\bibitem[label]{cite_key}

Generate an entry labeled by default by a number generated using the enumi counter. The citation key cite_key can be any string of letters, numbers, and punctuation symbols (but not comma).

See thebibliography, for an example.

When provided, the optional label becomes the entry label and the enumi counter is not incremented. With this

\begin{thebibliography}
\bibitem[Lamport 1993]{latexdps} 
  Leslie Lamport. 
  \textit{\LaTeX{}: a document preparation system}. 
  Addison-Wesley, Reading, Massachusetts, 1993.
\bibitem{texbook} 
  Donald Ervin Knuth. 
  \textit{The \TeX book}. 
  Addison-Wesley, Reading, Massachusetts, 1983.
\end{thebibliography}

the first entry will be styled as ‘[Lamport 1993] Leslie ...’ (The amount of horizontal space that LaTeX leaves for the label depends on the widest-label argument of the thebibliography environment; see thebibliography.) Similarly, ... based on \cite{latexdps} will produce ‘... based on [Lamport 1994]’.

If you mix \bibitem entries having a label with those that do not then LaTeX will number the unlabelled ones sequentially. In the example above the texbook entry will appear as ‘[1] Donald ...’, despite that it is the second entry.

If you use the same cite_key twice then you get ‘LaTeX Warning: There were multiply-defined labels’.

Under the hood, LaTeX remembers the cite_key and label information because \bibitem writes it to the auxiliary file jobname.aux (see Jobname). For instance, the above example causes the two \bibcite{latexdps}{Lamport, 1993} and \bibcite{texbook}{1} to appear in that file. The .aux file is read by the \begin{document} command and then the information is available for \cite commands. This explains why you need to run LaTeX twice to resolve references: once to write it out and once to read it in.

Because of this two-pass algorithm, when you add a \bibitem or change its cite_key you may get ‘LaTeX Warning: Label(s) may have changed. Rerun to get cross-references right’. Fix it by recompiling.


Unofficial LaTeX2e reference manual