Ошибка: Ошибка LaTeX: Что-то не так — возможно, отсутствует \item

Ошибка: Ошибка LaTeX: Что-то не так — возможно, отсутствует \item

Я нашел много постов о той же проблеме, но ни один не помог. Можете ли вы помочь мне разобраться, почему я получаю эту ошибку? Я использую: IEEEtran.bstи IEEEtran.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}

И мой test.tex:

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

\section{Test Citation}
\cite{logjam2015}

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

\end{document}

И ссылки.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или \nocite. Ошибка возникает из-за неправильного переопределения, сделанного IEEEtran.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 (который мне, кстати, не нужно было загружать), и указывают, что он содержится в TeX Live как IEEEtran и вMiKTeX как ieeetran.

решение4

В моем случае это было в контексте файла BibTex BBL, который при проверке оказался пустым.

Судя по всему, Overleaf сообщил имя файла .bib как , Mendeley.bibи я включил его \bibliography{Mendeley}, но файл так и не был найден.

Решение:Я переименовал файл .bib, сделав все буквы строчными, и обновил \bibliographyзапись соответствующим образом, и все заработало так, как и ожидалось.

Связанный контент