TeX capacity exceeded

Neue Frage »

aRo Auf diesen Beitrag antworten »
TeX capacity exceeded
Hallo!

Ich mache gerade meine erste Präsentation mit dem Beamerpaket, und irgendwie habe ich Probleme mit dem Stack.

Ich bekomme, wenn ich Tabellen in \begin{block} /end{block} einklammer, den Fehler:

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

Was genau ist das und wo änder ich den Stack?

Mein Vortragspartner hat wohl auch schon irgendwo an nem Stack rumgespielt, woraufhin angeblich die Fehlermeldung kam, dass ein "spezieller" Stack nicht ausreiche...

dankeschön!
DGU Auf diesen Beitrag antworten »

Gib dem Block mal einen Namen (notfalls leer):

\begin{block}{asd} bzw. \begin{block}{}
Stefan_K Auf diesen Beitrag antworten »

Hallo aRo,

das kann durch zu tief verschachtelte Definitionen passieren, was aber sehr wahrscheinlich durch einen Fehler erreicht wird, etwa durch Definition eines Makros mit Bezug auf sich selbst, Rekursion. evtl. auch falsche Klammerung.
Kannst Du Quelltext angeben, mit dem sich der Fehler nachvollziehen lässt?

Viele Grüße,

Stefan
aRo Auf diesen Beitrag antworten »

hallo!

@DGU:
Das funktioniert schon mal smile Danke Dir! Weißt du auch warum?

@Stefan_K:

Hmm...ich nehme an so ein Fehler kann sich über den ganzen Quellcode erstrecken, oder?
Ich geb mal einen Teil an, wo der Fehler passiert. Mal sehen, ob das schon reicht:

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
\subsection{A Zero-Sum Game:}
\begin{frame}{2-Finger-Morra}
\begin{block}
\begin{center}
 \begin{tabular}{|c||c|c|}
  \hline
  &Odd: one & Odd: two\\
  \hline \hline
  Even: one & E=2, 0=-2 & E=-3, 0=3\\
  Even: two & E=-3, 0=3 & E=4, 0=-4\\
  \hline
 \end{tabular}
\end{center}
\end{block}
\end{frame}


hm... verwirrt
Wenn ich den Block auskommentiere oder wie DGU vorgeschlagen hat ihm einen Namen gebe, funktioniert es.

Dankeschön!
Stefan_K Auf diesen Beitrag antworten »

Hallo aRo,

die block-Umgebung erwartet einen Namen als obligatorischen Parameter, daher funktioniert DGUs Tipp. Da beamer den Fall, dass kein Name angegeben wird, nicht berücksichtigt, tritt der Fehler in Folge auf, dem man die eigentliche Ursache nicht mehr ansieht.
An Deinem Code lässt sich das auch nachvollziehen, wenn man ihn zu einem compilierbaren Dokument ergänzt.

Man kann TeX durch \relax veranlassen, keine Parameter mehr anzunehmen, daher würde auch funktonieren:

code:
1:
2:
3:
4:
\begin{block}\relax
...
\end{block}


Viele Grüße,

Stefan
Iridium Auf diesen Beitrag antworten »
RE: TeX capacity exceeded
Hi,

Unabhängig von deinem speziellen Problem erscheint die Meldung "TeX capacity exceeded" wenn der Arbeitsspeicherbedarf beim compilieren einen von TeX festgelegten Wert übersteigt (z.B. wenn man eine Abbildung mit pstricks erstellt und dabei eine iterative Funktion für eine große Anzahl Iterationen benutzt)...der Wert ist in der Fehlermeldung mit angegeben und tendenziell eher niedrig angesiedelt...Problemlösung in vielen Fällen...die *.ini Datei der jeweiligen TeX Distribution suchen, mit Editor öffnen, bei max_mem den Wert ändern und speichern und anschließend die format files in TeX neu erstellen (geht in MikTeX z.B. über maintenance Programme im Startmenü)...der maximale Wert für max_mem ist in der *.ini-Datei mit angegeben (bei MikTeX zumindest)...

vielleicht hilft das ja weiter...

Gruß
 
 
Stefan_K Auf diesen Beitrag antworten »
RE: TeX capacity exceeded
Hallo,

Iridium gab einen sehr guten Hinweis. In den meisten Fällen tritt diese Meldung meiner Meinung nach aufgrund eines Fehlers in der Programmierung bzw. einer fehlerhaften Makrodefinition auf, Speichermangel ist es vmtl. deutlich seltener. Ehe ich die TeX Konfiguration ändere, würde ich also zunächst nach einem Fehler suchen.

Oben war nur ein vergessener Parameter in einer ansonsten winzigen Datei die Ursache. Oft kommt vor, dass man in der Redefinition eines Makros dieses Makro selbst verwendet, weil man es etwa erweitern möchte, schon erscheint TeX capacity exceeded mit Bezug auf main memory oder etwa input stack size (mit \edef oder \xdef, \expandafter oder \Inline\def mit \Expand kann man das umgehen).

Bzgl. dieser Fehlermeldung, auch zu anderen internen Speichern/Tabellen findet man im LaTeX Begleiter nähere Information: B.1.1 Tod durch zuwenig Speicher.

Viele Grüße,

Stefan
Neue Frage »
Antworten »



Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »