缺失数字,在 IOP 模板中使用 BibTeX 处理为零

缺失数字,在 IOP 模板中使用 BibTeX 处理为零

我正在使用来自这里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然后我运行BibTeXpdfLaTeX到目前为止一切都很正常(参考列表显示正确)。但是当我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}

结果:

上述 mwe 的结果

相关内容