Tex-Kapazität überschritten, tut mir leid, Eingabestapelgröße = 5000

Tex-Kapazität überschritten, tut mir leid, Eingabestapelgröße = 5000

Ich erhalte diesen Fehler beim Versuch, meine Tex-Datei zu erstellen. Sobald ich das cleverefPaket einbinde, erhalte ich diesen Fehler und er wird cleveref.stymit dem Cursor im fettgedruckten Teil der Datei angezeigt.

\def\make@df@tag@@@#1{%
    \gdef\df@tag{\tagform@{#1}%
      \toks@\@xp{\p@equation{#1}}%
      \edef\@currentlabel{\the\toks@}%
      \edef\cref@currentlabel{[equation][2147483647][]\the\toks@}}}
**}{}%  end of \@ifpackageloaded{amsmath}**
\@ifpackageloaded{IEEEtrantools}{%
  \PackageInfo{cleveref}{`IEEEtrantools' support loaded}
  \let\cref@orig@@IEEEeqnarray\@@IEEEeqnarray
  \def\@@IEEEeqnarray[#1]#2{%
    \refstepcounter{equation}%

Was könnte der Grund für diesen Fehler sein?

aus den Kommentaren:

\begin{filecontents*}{example.eps}
gsave newpath 20 20 moveto 20 220 lineto 220 220 lineto 220 20 lineto
closepath 2 setlinewidth gsave .4 setgray fill grestore stroke grestore
\end{filecontents*}
\RequirePackage{fix-cm} 
\documentclass[smallextended]{svjour3} 
\smartqed \let\proof\relax \let\endproof\relax \usepackage{cleveref} 
\begin{document} 
\title{Title} \author{First Author} \date{Received: date / Accepted: date} 
\maketitle 
\begin{abstract} \end{abstract} 
\maketitle 
\section{Introduction} 
\end{document}

Antwort1

svjour3 ist nicht in Texlive, aber ich habe eine Kopie von der Springer-Site. Es scheint einen Fehler zu haben und Ihr Dokument geht in eine Endlosschleife, die so \cl@chapterdefiniert ist, dass sie sich selbst erweitert. Dies behebt (oder vermeidet zumindest) dieses unmittelbare Problem.

\begin{filecontents*}{example.eps}
gsave newpath 20 20 moveto 20 220 lineto 220 220 lineto 220 20 lineto closepath 2 setlinewidth gsave .4 setgray fill grestore stroke grestore \end{filecontents*}
\RequirePackage{fix-cm} 
\documentclass[smallextended]{svjour3} 
\smartqed \let\proof\relax \let\endproof\relax

\makeatletter
%\def\cl@chapter{\cl@chapter \@elt {theorem}}%bug in class
\def\cl@chapter{\@elt {theorem}}
\makeatother

\usepackage{cleveref} 

\begin{document}

\title{Title} \author{First Author} \date{Received: date / Accepted: date} 
\maketitle 
\begin{abstract} \end{abstract} 


\section{Introduction} 
\end{document}

Antwort2

Erstens wäre Ihr wirklich minimales MWE (mit Ausnahme von Leerzeichen) folgendes:

\documentclass{svjour3}
\usepackage{cleveref}
\begin{document}
    \section{}
\end{document}

Nun eine Ergänzung zur Antwort von David Carlisle (das Kommentarfeld ist jedoch zu kurz):

Ich denke, das Problem liegt am \@addtoreset{theorem}{chapter}in svjour3.cls. Zumindest kann ich das Problem in diesem MWE unabhängig von reproduzieren svjour3:

\documentclass{article} 
\makeatletter
\@addtoreset{theorem}{chapter}
\makeatother
\usepackage{cleveref} 
\begin{document} 
    \section{}
\end{document}

Natürlich hat article(dasselbe wie svjour3) kein \chapter:

\documentclass{svjour3}
\begin{document}
    \chapter{}
\end{document}

Nun \@addtoresetsieht es so aus in latex.ltx:

\def\@addtoreset#1#2{\expandafter\@cons\csname cl@#2\endcsname {{#1}}}
\def\@cons#1#2{\begingroup\let\@elt\relax\xdef#1{#1\@elt #2}\endgroup}

Was es bewirkt, wird hier gut erklärt: https://www.tug.org/TUGboat/tb18-4/tb57work.pdf Allerdings scheint es beim Versuch, es auf ein nicht definiertes Abschnittselement anzuwenden, fehlzuschlagen; daher schlägt die Erweiterung \cl@chapterbeim Neudefinieren \cl@chapterzum Hinzufügen \@elt {theorem}zur Liste fehl.

Eine Lösung wäre also, \@addtoreset/ zu patchen, um beim Neudefinieren \@consauf die Existenz von zu prüfen . Das sollte nicht zu schwer sein, zum Beispiel:\cl@<unit>\cl@<unit>

\makeatletter
%\def\@cons#1#2{\begingroup\let\@elt\relax\xdef#1{#1\@elt #2}\endgroup}
\def\@cons#1#2{\begingroup\let\@elt\relax\xdef#1{\ifx#1\relax\else#1\fi\@elt #2}\endgroup}
\makeatother
\documentclass{svjour3}
\usepackage{cleveref} 
\begin{document} 
    \section{}
\end{document}

Es sollte noch von jemandem überprüft werden, der sich mit Latex besser auskennt als ich, ob es \@consunter allen Umständen noch das tut, was es tun soll, und ob dieser Patch in sinnvoll wäre latex.ltx. Folgenhttp://www.latex-project.org/cgi-bin/ltxbugs2html?pr=latex/4427bei Interesse.

Bis dies erledigt ist (oder falls nicht), schlage ich die folgende Problemumgehung vor:

\makeatletter
\def\cl@chapter{}
\makeatother
\documentclass{svjour3}
\usepackage{cleveref} 
\begin{document} 
    \section{}
\end{document}

Sie können dies ganz einfach überprüfen, indem Sie die zweite Zeile auskommentieren. Dies reproduziert den angezeigten Fehler (und behebt ihn, indem Sie die Auskommentierung aufheben).

verwandte Informationen