我正在写一篇文章,应该使用 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.
我试图了解我做错了什么,但到目前为止还没有成功。以下是我能想到的所有相关细节:
我的安装:我的操作系统是 Windows XP SP3。我使用 Texmaker 3.5.2 作为我的 Tex 编辑器,使用 MikTex 2.9 作为我的 Tex 编译器。已安装 bibtex 软件包,并且截至今天,我的所有软件包都已更新。
我的工作文件夹包含以下文件:
- IEEEtran.cls(从模板文件夹复制)
- IEEEabrv.bib(已下载,认为可能有必要)
- IEEEtran.bst(已下载,认为可能有必要)
- 我的文章.tex
- 我的文章.pdf
- 我的文章.aux
- 我的文章.bbl
- 我的文章.blg
- 我的文章.bcf
- 我的文章日志
- 我的文章.synctex.gz
- 我的文章.运行.xml
- bibi.bib
我的 .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}
我的 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 类编译是必要的:
- 需要有一个最后一个在您的 bib(就您而言,
bibi.bib
)文件中正确引用文档之一。 - 在工具链中,你需要使用 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}