当我尝试使用更新到最新软件包的 MikTeX 2.9 编译附加的测试文档时,我得到了
! TeX capacity exceeded, sorry [input stack size=5000].
错误。我最终发现错误是由url
bib 文件中的行引起的,我的 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
提供的文件latex2html
与harvard.sty
在工作目录中有一个空html.sty
文件(如答案中所建议)应该可以解决问题。 另一个策略是使用natbib
和har2nat
:
\usepackage{natbib,har2nat}
\providecommand{\newblock}{}
iopart.cls
(第二行可能与未定义有关\newblock
。输出应该与产生的输出非常相似harvard.sty
。