我怎样才能找出哪些包导致了课程出现问题svjour3
?
经过多次编译,我发现问题出在我使用的软件包上。代码如下,并没有生成 pdf。
编辑 1:文件 svjour3.cls 于 2008 年 1 月 10 日修改。我使用 MiKTeX 2.9。
编辑2:错误是
! TeX capacity exceeded, sorry [input stack size=5000].
\cl@chapter ->\cl@chapter
\@elt {theorem}
l.2486 }{}
% end of \@ifpackageloaded{amsmath}
! ==> Fatal error occurred, no output PDF file produced!
Transcript written on probleem.log.
PDFLaTeX 编译报告:
(Pages: 0) Errors: 2 Warnings: 2 Bad Boxes: 0
\documentclass[smallextended]{svjour3}
\usepackage{amssymb}
\usepackage{amsmath}
\usepackage{undertilde}
\usepackage{amstext}
\usepackage{amsthm}
\usepackage{epsfig}
\usepackage{graphics}
\usepackage{color}
\usepackage{booktabs}
\usepackage{graphicx}
\usepackage{caption}
\usepackage{float}
\usepackage{subfigure}
\usepackage[sort&compress,round,comma,authoryear]{natbib}%bibtex
\usepackage{mathtools}
\usepackage{epstopdf}
\usepackage[titletoc,title]{appendix}% for appendix met A
\usepackage{cleveref}
\usepackage{dcolumn}
\begin{document}
Hello
\end{document}
答案1
问题出现在cleveref
加载时,并且仅在amsmath
加载时显示,因为在这种情况下cleveref
会进行一些检查和重新定义。
问题是svjour
其中的一个错误
\if@envcntsect
\def\@thmcountersep{.}
\spnewtheorem{theorem}{Theorem}[section]{\bfseries}{\itshape}
\else
\spnewtheorem{theorem}{Theorem}{\bfseries}{\itshape}
\if@envcntreset
\@addtoreset{theorem}{section}
\else
\@addtoreset{theorem}{chapter}
\fi
\fi
并且这一\@addtoreset{theorem}{chapter}
行根本没有任何意义,因为该类不支持章节。
您可以通过定义一个虚拟chapter
计数器来解决此问题。
\documentclass[smallextended]{svjour3}
\usepackage{amsmath}
\usepackage{mathtools}
\usepackage{amssymb}
%\usepackage{undertilde} % not in TeX Live
%\usepackage{amsthm} % incompatible with svjour3
%\usepackage{epsfig} % obsolete
%\usepackage{graphics} % loaded by graphicx
\usepackage{color}
\usepackage{booktabs}
\usepackage{graphicx}
%\usepackage{caption} % incompatible with svjour3
\usepackage{float}
\usepackage{subfigure} % deprecated!!!
\usepackage[sort&compress,round,comma,authoryear]{natbib}%bibtex
\usepackage{epstopdf}
\usepackage[titletoc,title]{appendix}% for appendix met A
\usepackage{dcolumn}
\newcounter{chapter} % to fix the bug in svjour3
\usepackage{cleveref}
\begin{document}
Hello
\end{document}
我注释掉了一些软件包:undertilde
我的系统上没有,可能你更适合使用这个accents
软件包(记得在之后加载它amsmath
);我注释掉的其他软件包要么已经过时,要么与之不兼容svjour3
(除了一些引发的错误)。
你可以subfigure
使用
\usepackage[caption=false]{subfig}
它有\subfloat
而不是\subfigure
和\subtable
(一个简单的改变)。