La capacidad de Tex excedió lo siento, tamaño de pila de entrada = 5000

La capacidad de Tex excedió lo siento, tamaño de pila de entrada = 5000

Recibo este error al intentar crear mi archivo tex. Tan pronto como incluyo el cleverefpaquete, aparece este error y se muestra cleveref.stycon el cursor en la parte en negrita del archivo.

\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}%

¿Cuál podría ser el motivo de este error?

de los comentarios:

\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}

Respuesta1

svjour3 no está en texlive pero obtuve una copia del sitio de Springer. Parece tener un error y su documento entra en un bucle infinito \cl@chaptery está definido para expandirse a sí mismo. Esto soluciona (o al menos evita) ese problema inmediato.

\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}

Respuesta2

Primero, su MWE verdaderamente mínimo (excepto los espacios en blanco) sería este:

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

Ahora agregando a la respuesta de David Carlisle (pero el campo de comentarios es demasiado corto):

Creo que el problema es el \@addtoreset{theorem}{chapter}in svjour3.cls. Al menos, puedo reproducir el problema en este MWE independientemente de svjour3:

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

Por supuesto, article(igual que svjour3) no tiene \chapter:

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

Ahora, \@addtoresetse ve así en 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}

Lo que hace está muy bien explicado aquí: https://www.tug.org/TUGboat/tb18-4/tb57work.pdf Sin embargo, parece fallar al intentar usarlo en un elemento de sección que no está definido; por lo tanto, la expansión de \cl@chapterfalla al redefinir \cl@chapterpara agregar \@elt {theorem}a la lista.

Entonces, una solución sería parchear \@addtoreset/ \@conspara verificar la existencia de \cl@<unit>al redefinir \cl@<unit>. Esto no debería ser demasiado difícil, por ejemplo:

\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}

Aún así, alguien que conozca el látex mejor que yo debería asegurarse de si \@constodavía hace lo que debe hacer en todas las circunstancias y si este parche tendría sentido en latex.ltx. Seguirhttp://www.latex-project.org/cgi-bin/ltxbugs2html?pr=latex/4427sobre eso si está interesado.

Hasta que esto se haga (o si no), propongo la siguiente solución:

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

Puede comprobar fácilmente comentando la segunda línea que esto reproduce (y corrige, descomentando) el error visto.

información relacionada