bib 文件中的 harvard 包和 url 字段显示“TeX 容量超出”

bib 文件中的 harvard 包和 url 字段显示“TeX 容量超出”

当我尝试使用更新到最新软件包的 MikTeX 2.9 编译附加的测试文档时,我得到了

! TeX capacity exceeded, sorry [input stack size=5000].

错误。我最终发现错误是由urlbib 文件中的行引起的,我的 bib 管理器会自动生成该文件。我该如何修复此问题而不手动删除所有url行(大多数情况下我不需要删除所有行,但我不明白为什么它们会导致错误)?


我用于编译的命令是

pdflatex sa
bibtex sa
pdflatex sa

iopart从以下位置获取课程文件这里(我使用的是 PKZip 版本)。我提取了全部文件从 zip 复制到我的项目目录,并按照同一 zip 文件中附带的文档中的说明进行操作:

  • 对于字母(哈佛)风格参考,我们建议作者将 jphysicsB.bst BiBTeX 风格文件与 harvard LATEX 包一起使用。jphysicsB.bst 是 harvard.sty 包的一部分,可从 www.ctan.org 下载。

来源sa.tex

\documentclass[12pt]{iopart}
\usepackage{iopams}  
\usepackage{harvard}

\begin{document}

test \cite{Hoo2009}.

\bibliographystyle{jphysicsB}
\bibliography{sa}

\end{document}

来源sa.bib

@ARTICLE{Hoo2009,
  author = {Boo Hoo},
  title = {Paper},
  year = {2009},
  url = {boo}
}

答案1

这个问题与问题中提出的问题类似为什么 hyperref 和 harvard 不能正常协同工作?

最大的问题是它harvard.sty太旧了,而且html.sty它指的是什么还不清楚。目前 TeX Live 没有这个html.sty文件,但你可能有一个latex2html(如http://www.ctan.org/pkg/latex2html页面)。可以肯定的是,html.sty提供的文件latex2htmlharvard.sty

在工作目录中有一个空html.sty文件(如答案中所建议)应该可以解决问题。 另一个策略是使用natbibhar2nat

\usepackage{natbib,har2nat}
\providecommand{\newblock}{}

iopart.cls(第二行可能与未定义有关\newblock。输出应该与产生的输出非常相似harvard.sty

相关内容