![缺失数字,在 IOP 模板中使用 BibTeX 处理为零](https://linux22.com/image/332316/%E7%BC%BA%E5%A4%B1%E6%95%B0%E5%AD%97%EF%BC%8C%E5%9C%A8%20IOP%20%E6%A8%A1%E6%9D%BF%E4%B8%AD%E4%BD%BF%E7%94%A8%20BibTeX%20%E5%A4%84%E7%90%86%E4%B8%BA%E9%9B%B6.png)
我正在使用来自这里和iopart-num
包裹。
这是iopdebug.bib
:
@article{debugitem,
title = {This is the title},
author = {Surname, N and Lastname, F},
journal = {Journ},
volume = {123},
number = {1},
pages = {1--2},
year = {2000},
publisher = {Debugging}
}
这是最小的工作示例:
\documentclass[12pt,A4,final]{iopart}
\usepackage{iopams}
\usepackage[breaklinks=true,colorlinks=true,linkcolor=blue,urlcolor=blue,citecolor=blue]{hyperref}
\usepackage{citesort}
\begin{document}
\nocite{*}
Attempt to cite~\cite{debugitem}
\section*{References}
\bibliographystyle{iopart-num}
\bibliography{iopdebug.bib}
\end{document}
pdfLaTeX
然后我运行BibTeX
,pdfLaTeX
到目前为止一切都很正常(参考列表显示正确)。但是当我pdfLaTeX
第三次运行时,我得到:
! Missing number, treated as zero.
<to be read again>
\let
l.10 Attempt to cite~\cite{debugitem}
然而,如果\cite{debugitem}
省略则没有错误消息。
答案1
最后,你的代码中有两个错误。
首先,您使用了\bibliography
带有文件扩展名的命令.bib
。只需删除扩展名(在我的 MWE 中,我使用包filecontents
将 bib 文件和 tex 代码放在一个可编译的 MWE 中。这就是我将文件 neame 更改为 的原因\jobname.bib
)。
第二个问题是包citesort
。它似乎很旧(您使用的类也是如此)并导致您遇到的错误。只需删除它或注释它(就像我在 MWE 中所做的那样)。请注意,在您的代码中,它hyperref
应该是最后一个被调用的包。
梅威瑟:
\RequirePackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@article{debugitem,
title = {This is the title},
author = {Surname, N and Lastname, F},
journal = {Journ},
volume = {123},
number = {1},
pages = {1--2},
year = {2000},
publisher = {Debugging},
}
\end{filecontents*}
\documentclass[12pt,A4,final]{iopart}
%\usepackage{citesort} % <================================ causes error!
\usepackage{iopams}
\usepackage[%
breaklinks=true,
colorlinks=true,
linkcolor=blue,
urlcolor=blue,
citecolor=blue
]{hyperref}
\begin{document}
\nocite{*}
Attempt to cite~\cite{debugitem}.
\section*{References}
\bibliographystyle{iopart-num}
\bibliography{\jobname}% \jobname.bib <=================================
\end{document}
结果: