错误:LaTeX 错误:出现问题 - 可能缺少 \item

错误:LaTeX 错误:出现问题 - 可能缺少 \item

我发现了很多关于同一问题的帖子,但没有一个能帮上忙。你能帮我找出为什么我会收到这个错误吗?我正在使用:IEEEtran.bstIEEEtran.cls。这两个文件和主 .tex 文件以及都references.bib在一个文件夹中。当我尝试编译我的脚本时,我收到此错误:

test.bbl(24): Error: LaTeX Error: Something's wrong--perhaps a missing \item.

这是test.bbl

% Generated by IEEEtran.bst, version: 1.12 (2007/01/11)
\begin{thebibliography}{}
\providecommand{\url}[1]{#1}
\csname url@samestyle\endcsname
\providecommand{\newblock}{\relax}
\providecommand{\bibinfo}[2]{#2}
\providecommand{\BIBentrySTDinterwordspacing}{\spaceskip=0pt\relax}
\providecommand{\BIBentryALTinterwordstretchfactor}{4}
\providecommand{\BIBentryALTinterwordspacing}{\spaceskip=\fontdimen2\font plus
\BIBentryALTinterwordstretchfactor\fontdimen3\font minus
  \fontdimen4\font\relax}
\providecommand{\BIBforeignlanguage}[2]{{%
\expandafter\ifx\csname l@#1\endcsname\relax
\typeout{** WARNING: IEEEtran.bst: No hyphenation pattern has been}%
\typeout{** loaded for the language `#1'. Using the pattern for}%
\typeout{** the default language instead.}%
\else
\language=\csname l@#1\endcsname
\fi
#2}}
\providecommand{\BIBdecl}{\relax}
\BIBdecl

\end{thebibliography}

我的测试.tex:

\documentclass[conference]{IEEEtran}
\begin{document}

\section{Test Citation}
\cite{logjam2015}

% ---- Bibliography ----
\bibliographystyle{IEEEtran}
\bibliography{references}

\end{document}

以及 references.bib

@inproceedings{logjam2015,
 author               = {Adrian, David and Bhargavan, Karthikeyan and Durumeric, Zakir and Gaudry, Pierrick and Green, Matthew and Halderman, J. Alex and Heninger, Nadia and Springall, Drew and Thom{\'e}, Emmanuel and Valenta, Luke and VanderSloot, Benjamin and Wustrow, Eric and Zanella-B{\'e}guelin, Santiago and Zimmermann, Paul},
 booktitle            = {Proceedings of the 22nd ACM SIGSAC Conference on Computer and Communications Security (CCS '15)},
 pages                = {5-17},
 title                = {{I}mperfect {F}orward {S}ecrecy: {H}ow {D}iffie-{H}ellman {F}ails in {P}ractice},
 url                  = {http://doi.acm.org/10.1145/2810103.2813707},
 year                 = {2015},
 }

答案1

您在文档不包含或命令.bbl时生成了该文件。错误源于宏的错误重新定义。\cite\nociteIEEEtran.cls\endthebibliography

标准类有类似的东西

\newenvironment{thebibliography}[1]
     {[irrelevant code omitted]}
     {\def\@noitemerr
       {\@latex@warning{Empty `thebibliography' environment}}%
      \endlist}

这意味着

\def\endthebibliography{%
  \def\@noitemerr{\@latex@warning{Empty `thebibliography' environment}}%
  \endlist
}

IEEEtran.cls

\let\endthebibliography\endlist

这显然是错误的。

如果你修复它

\documentclass[conference]{IEEEtran}

\makeatletter
\def\endthebibliography{%
  \def\@noitemerr{\@latex@warning{Empty `thebibliography' environment}}%
  \endlist
}
\makeatother

\begin{document}

\section{Test Citation}
\cite{logjam2015}

% ---- Bibliography ----
\bibliographystyle{IEEEtran}
\bibliography{references}

\end{document}

那么空.bbl文件(即没有\bibitem命令)也只会产生警告而不是错误。

答案2

如果即使您已经在论文中添加了,错误仍然出现\cite{something},那么您必须清除辅助文件。

具体来说,删除所有以以下结尾的文件.log .aux .bbl .blg.然后再次编译该文档,就好了。

答案3

我遇到了完全相同的错误消息,.bbl文件为空。如果您像我一样使用 MiKTeX,您可以尝试更改\bibliographystyle{IEEEtran}\bibliographystyle{ieeetran}全部小写。然后运行 ​​BibTeX。最后使用您习惯的方法生成文档。它解决了我的问题。

我发现这个解决方案正在阅读https://ctan.org/pkg/ieeetran,其中提供了最新版本的 IEEEtran BibTeX 样式(顺便说一下,我不需要下载),并指定它作为 IEEEtran 包含在 TeX Live 中,并包含在MiKTeX 作为 ieeetran

答案4

就我而言,这是在 BibTex BBL 文件的上下文中,经检查,该文件是空的。

显然,Overleaf 将 .bib 文件的名称报告为 ,Mendeley.bib并且我包含了\bibliography{Mendeley},但却没有找到该文件。

解决方案:我将 .bib 文件重命名为全部小写,并更新\bibliography条目以匹配,一切都按预期工作。

相关内容