[Tex/LaTex] Using references to a .bib file when using IEEEtran

bibtexieeetran

I'm writing an article that is supposed to be written using the IEEE Manuscript Templates for Conference Proceedings. I downloaded the latex templates from here, and used the bare_conf.tex as a template to my article tex file, myArticle.tex.

I did not remove any code (only comments), and started slowly exchanging the template content with real content. I started to work references into my article, so as the IEEEtran_HOWTO.pdf file advised me, I added the lines \bibliographystyle{IEEEtran}
\bibliography{IEEEabrv,mybibfile}
to my code, and created a .bib file, currently containing only a single item (see below).

However, when I added the \cite command to my code, referencing the cite key of my single entry, I received the following error and warning:

! LaTeX Error: Something's wrong--perhaps a missing \item.
LaTeX Warning: Citation 'jj2' on page 2 undefined on input line 70.
LaTeX Warning: There were undefined references.

I'm trying to understand what is it that I'm doing wrong, but so far unsuccessfully. Here are all relevant details that I can think of:

  1. My installation: My OS is Windows XP SP3. I'm using Texmaker 3.5.2 as my Tex editor, and MikTex 2.9 as my Tex compiler. The package bibtex is installed, and all my packages are updated as of today.

  2. My working folder contains the following files:

    • IEEEtran.cls (copied from the template's folder)
    • IEEEabrv.bib (downloaded, thought it might be necessary)
    • IEEEtran.bst (downloaded, thought it might be necessary)
    • myArticle.tex
    • myArticle.pdf
    • myArticle.aux
    • myArticle.bbl
    • myArticle.blg
    • myArticle.bcf
    • myArticle.log
    • myArticle.synctex.gz
    • myArticle.run.xml
    • bibi.bib
  3. This is how my .tex file looks like:

        \documentclass[conference]{IEEEtran}
        \hyphenation{op-tical net-works semi-conduc-tor}    
    
        \begin{document}
        \bibliographystyle{IEEEtran}
        \bibliography{IEEEabrv,bibi}
        \title{My Article's Title}
    
        \author{\IEEEauthorblockN{****}
        \and
        \IEEEauthorblockN{****}
        }
        \maketitle
    
    
        \begin{abstract}
        The abstract goes here.
        \end{abstract}
        \IEEEpeerreviewmaketitle
    
        \section{Introduction}
        My intro... blah blah \cite{jj2}.
    
        \section{Conclusion}
        The conclusion goes here.
    
        \section*{Acknowledgment}
    
        \end{document}
    
  4. My bibi.bib file:

    @ARTICLE{jj2,
      author = {Andreas Junghanns and Jonathan Schaeffer},
      title = {Sokoban: Enhancing general single-agent search methods using domain      knowledge},
      journal = {Artificial Intelligence},
      year = {2001},
      volume = {129},
      pages = {219-251}
    }
    

Edit: My code after changing like percu├če suggested (I still get the same error):

\documentclass[conference]{IEEEtran}  
\usepackage[noadjust]{cite}  

\hyphenation{op-tical net-works semi-conduc-tor}

\title{title}  

\author{\IEEEauthorblockN{Researcher 2}\and  
\IEEEauthorblockN{Researcher 1} }  

\begin{document}  
\maketitle  


\begin{abstract}    
The abstract goes here.  
\end{abstract}  


\section{Introduction}  
blah blah \cite{jj2}.   

\section{Conclusion}   
The conclusion goes here.    

\bibliographystyle{IEEEtran}  
\bibliography{bibi}  

\end{document}

Best Answer

I found that there are two things that I found are necessary to make the IEEEtran class compile:

  1. There needs to be a at least one correct citation in your document one in your bib (in your case, bibi.bib) file.
  2. In the tool chain, you need to compile with LaTeX (or equivalently PdfLaTeX), then once with BibTex, and then twice with LaTeX again to incorporate the bibliography and correct in-text referencing.

If either of these two things is not the case, I also get the same LaTeX Error: Something's wrong--perhaps a missing \item error. Bizarrely, with a single citation it works for me, but after commenting it out it crashes again.

The apparent reason for this is that the IEEEtran class doesn't like empty bibliographies and can't deal with that. I haven't been able to find an underlying reason for that, though, nor a way to fix it.