使用 IEEEtran 时使用对 .bib 文件的引用

使用 IEEEtran 时使用对 .bib 文件的引用

我正在写一篇文章,应该使用 IEEE 会议论文集手稿模板。我从以下网址下载了 latex 模板这里,并使用 bare_conf.tex 作为模板,生成我的文章 tex 文件 myArticle.tex。

我没有删除任何代码(只删除了注释),并开始慢慢地用实际内容替换模板内容。我开始在文章中加入参考资料,因此根据 IEEEtran_HOWTO.pdf 文件的建议,我\bibliographystyle{IEEEtran} \bibliography{IEEEabrv,mybibfile}在代码中添加了这些行,并创建了一个 .bib 文件,目前只包含一个项目(见下文)。

但是,当我将\cite命令添加到我的代码中,引用我的单个条目的引用键时,我收到以下错误和警告:

! 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.

我试图了解我做错了什么,但到目前为止还没有成功。以下是我能想到的所有相关细节:

  1. 我的安装:我的操作系统是 Windows XP SP3。我使用 Texmaker 3.5.2 作为我的 Tex 编辑器,使用 MikTex 2.9 作为我的 Tex 编译器。已安装 bibtex 软件包,并且截至今天,我的所有软件包都已更新。

  2. 我的工作文件夹包含以下文件:

    • IEEEtran.cls(从模板文件夹复制)
    • IEEEabrv.bib(已下载,认为可能有必要)
    • IEEEtran.bst(已下载,认为可能有必要)
    • 我的文章.tex
    • 我的文章.pdf
    • 我的文章.aux
    • 我的文章.bbl
    • 我的文章.blg
    • 我的文章.bcf
    • 我的文章日志
    • 我的文章.synctex.gz
    • 我的文章.运行.xml
    • bibi.bib
  3. 我的 .tex 文件如下所示:

        \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. 我的 bibi.bib 文件:

    @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}
    }
    

编辑:更改后我的代码如下打击乐建议(我仍然收到相同的错误):

\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}

答案1

我发现有两件事对于使 IEEEtran 类编译是必要的:

  1. 需要有一个最后一个在您的 bib(就您而言,bibi.bib)文件中正确引用文档之一。
  2. 在工具链中,你需要使用 LaTeX(或等效的 PdfLaTeX)进行编译,然后使用 BibTex 进行编译,然后两次再次使用 LaTeX 来合并参考书目和正确的文内引用。

如果上述两种情况都不成立,我也会出现同样的LaTeX Error: Something's wrong--perhaps a missing \item错误。奇怪的是,我引用一次就可以解决问题,但注释掉之后又崩溃了。

显然,原因是 IEEEtran 类不喜欢空书目,无法处理这种情况。不过,我还没能找到根本原因,也没办法解决它。

答案2

您只需要\bibliography在参考书目应该出现的位置向命令提供您的 bib 文件名,并根据需要进行多次编译。

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

\begin{filecontents*}{bibi.bib}
     @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}
   }
\end{filecontents*}

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

\title{My Article's Title}

\author{Shay \\ \IEEEauthorblockN{some author afiliation}
\and
Pal5 \\ \IEEEauthorblockN{another affiliation}
}

\begin{document}
\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}
We acknowledge the acknowledged acknowledgees.

\bibliographystyle{IEEEtran}
\bibliography{bibi}
\end{document}

在此处输入图片描述

相关内容