동일한 문제에 대한 많은 게시물을 찾았지만 아무 것도 도움이 될 수 없습니다. 이 오류가 발생하는 이유를 알아내도록 도와주실 수 있나요? 나는 다음을 사용하고 있습니다: 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
문서에 no 또는 명령이 .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 ieeeetran 역.
답변4
내 경우에는 BibTex BBL 파일의 컨텍스트에 있었는데 검사 결과 비어 있었습니다.
분명히 Overleaf는 .bib 파일의 이름을 로 보고했고 Mendeley.bib
나는 포함시켰지만 \bibliography{Mendeley}
파일은 자동으로 발견되지 않았습니다.
해결책:.bib 파일의 이름을 모두 소문자로 바꾸고 \bibliography
일치하도록 항목을 업데이트했는데 모든 것이 예상대로 작동했습니다.