Tex capacity exceeded[main memory size=3000000] durch Bilder

Tabellen und Grafiken erstellen und anordnen


Butcho
Forum-Anfänger
Forum-Anfänger
Beiträge: 10
Registriert: Mo 10. Sep 2012, 16:25

Tex capacity exceeded[main memory size=3000000] durch Bilder

Beitrag von Butcho »

Guten Tag,

ich habe ein Problem bei der Einfügung von Bildern mit der figure Umgebung. Benutze ich die vom float Paket zur Verfügung gestellte [H] Option bei allen Bildern zur Positionsbestimmung, funktioniert alles soweit und der noch verfügbare Tex Memory ist ca. 2500000. Bei der Option [h] bei allen Bildern kommt Tex der capacity exceeded Error. Keines der Bilder ist größer als 20 KB. Das Dokument ist eine Bachelorarbeit, also schon etwas länger. Bei eingefügten Tabellen mit der table Umgebung ist das auch manchmal passiert. Gibt es irgendeine wichtige Grundregel zur Einfügung vieler Bilder mit der [h] Option? [htbp] hilft nicht und Tex Speicher vergrößern hilft auch nicht...

Viele Grüße

Gast

Beitrag von Gast »

Ein wesentlicher Unterschied zwischen [H] und den anderen Optionen ist, dass [H] einen Absatz einfügt. Das gibt TeX eine Chance eine Seite auszugeben (und somit main memory freizugeben). TeX überlegt nämlich nur an Absatzenden über Seitenumbrüche nach.

Wenn du keine Leerzeilen vor und nach deinen figure-Umgebungen hast, dann können andere Optionen als [H] daher TeX überlasten.
\documentclass{scrartcl}
\usepackage{float}
\begin{document}
text\\
text
\begin{figure}[h]
figure h
\end{figure}
Kein neuer Absatz \\text

\bigskip
\hrule
\bigskip 

text\\
text
\begin{figure}[H]
figure H
\end{figure}
Neuer Absatz \\text
Ulrike Fischer
www.troubleshooting-tex.de

Butcho
Forum-Anfänger
Forum-Anfänger
Beiträge: 10
Registriert: Mo 10. Sep 2012, 16:25

Beitrag von Butcho »

Vielen Dank für deine Antwort. Das mit den Leerzeilen habe ich jetzt beachtet. Der Fehler kommt jetzt, wenn ich ein bestimmtes Bild ohne den [H] Parameter versehe. Dieses Bild hat 6 subfloats (a - f) (kleine pdfs) und füllt fast eine ganze Seite. Vielleicht müsste man sieses umbrechen?

Gast

Beitrag von Gast »

Da kann ich ohne Code nichts zu sagen. Aber das Einfügen von pdfs (mit \includegraphics) belasten TeX kaum, das kann eigentlich nicht die Quelle des Problems sein. Ein großes Bild darf aber nicht nur die Option [h] haben, dort sollte immer auch "p" stehen.

Ulrike Fischer
www.troubleshooting-tex.de

Ich weiß auch mal etwas

Beitrag von Ich weiß auch mal etwas »

Solche Probleme treten nach meiner Erfahrung hauptsächlich dann auf, wenn Leute keine Absätze machen, sondern mit \\ rumpfuschen. Ich habe schon Dokumente mir mehreren hundert eingebundenen PDFs erstellt, bei dem main memory nicht übergelaufen ist. Das Einbinden eines PDFs kostet auch nicht wirklich viel main memory, weil keineswegs das gesamte PDF in den main memory geladen wird. Im main memory landet kaum mehr als eine Box mit einem pdfTeX-Primitiv. Daran ändern auch subfloats nichts. Normalerweise führen zu große floats eher zu einem float-Stau mit der Fehlermeldung "float(s) lost" als zu einem Überlauf von main memory.

Ein Überlauf von main memory kann in einigen Fällen aber auch ein Folgefehler durch falsche Klammerung bzw. Umgebungsschachtelungen sein. Das wird beispielsweise dann ein Problem, wenn ein komplettes Dokument dadurch in eine Box gepackt wird, weil TeX eine Box immer komplett in den main memory bekommen muss (das ist auch der Grund, warum eine Seite - ggf. plus ein Absatz - immer komplett in den main memory passen muss).

Butcho
Forum-Anfänger
Forum-Anfänger
Beiträge: 10
Registriert: Mo 10. Sep 2012, 16:25

Beitrag von Butcho »

Ich habe jetzt bei jedem figure und jeder Tabelle die Option [h] benutzt außer bei dem mit 6 subfloats (dort ist [H]). Vor jedem \begin{figure}[h] und jedem \begin{table}[h] ist eine Leerzeile und nach jedem \end{figure} und jedem \end{table}. Absätze sind durch Leerzeilen und nicht durch \\ markiert. Ergebnis aus der log Datei:
Here is how much of TeX's memory you used:
 11503 strings out of 494045
 171642 string characters out of 3149990
 615510 words of memory out of 3000000
 14353 multiletter control sequences out of 15000+200000
 77075 words of font info for 99 fonts, out of 3000000 for 9000
 716 hyphenation exceptions out of 8191

Output written on main.pdf (86 pages, 2721725 bytes).
PDF statistics:
 764 PDF objects out of 1000 (max. 8388607)
 0 named destinations out of 1000 (max. 500000)
 201 words of extra memory for PDF output out of 10000 (max. 10000000)
Gebe ich dem mit den 6 subfloats auch ein [h] oder ein [hb] oder ein [hp] oder gar nichts, kommt:
Here is how much of TeX's memory you used:
 10278 strings out of 494045
 156252 string characters out of 3149990
 3000000 words of memory out of 3000000
 13191 multiletter control sequences out of 15000+200000
 66347 words of font info for 88 fonts, out of 3000000 for 9000
 716 hyphenation exceptions out of 8191
 50i,19n,66p,1200b,468s stack positions out of 5000i,500n,10000p,200000b,50000s
!  ==> Fatal error occurred, no output PDF file produced!
Die 6 pdfs hab ich wie folgt eingebunden
\begin{figure}[H]
	\subfloat[Aktuelle Stunde]{
	\includegraphics[width=0.5\textwidth]{DatenrateAktStunde_Cut.pdf}
	}
	\hfill
	\subfloat[Alaska]{
	\includegraphics[width=0.5\textwidth]{DatenrateAlaska_Cut.pdf}
	}
	
	\subfloat[Blickpunkt Sport]{
	\includegraphics[width=0.5\textwidth]{DatenrateBPSport_Cut.pdf}
	}
	\hfill
	\subfloat[Brisant]{
	\includegraphics[width=0.5\textwidth]{DatenrateBrisant_Cut.pdf}
	}
	
	\subfloat[Hart aber Fair]{
	\includegraphics[width=0.5\textwidth]{DatenrateHartAberFair_Cut.pdf}
	}
	\hfill
	\subfloat[Tagesschau]{
	\includegraphics[width=0.5\textwidth]{DatenrateTagesschau_Cut.pdf}
	\label{Bild:DatenrateTagesschau}
	}
	\caption{blabla}
	\label{blabla}
\end{figure}
Ich verstehe nicht wie durch das eine Bild dieser Memory Sprung entsteht. Das es was mit einer offenen Klammer o.ä. zu tun hat glaube ich nicht.

Gast

Beitrag von Gast »

Das es was mit einer offenen Klammer o.ä. zu tun hat glaube ich nicht.
Aber es liegt auch nicht einfach am Inhalt der figure-Umgebung. Oder bekommst du auch den Fehler, wenn du nur die in eine kleines Dokument kopierst?

D.h. die Informationen, die du bist jetzt geliefert hast, reichen nicht. Ohne ein vollständiges Beispiel und die log-Datei ist es sehr schwer bis unmöglich sowas zu debuggen.

Ulrike Fischer
www.troubleshooting-tex.de

Butcho
Forum-Anfänger
Forum-Anfänger
Beiträge: 10
Registriert: Mo 10. Sep 2012, 16:25

Beitrag von Butcho »

Anonymous hat geschrieben:
Das es was mit einer offenen Klammer o.ä. zu tun hat glaube ich nicht.
Aber es liegt auch nicht einfach am Inhalt der figure-Umgebung. Oder bekommst du auch den Fehler, wenn du nur die in eine kleines Dokument kopierst?

D.h. die Informationen, die du bist jetzt geliefert hast, reichen nicht. Ohne ein vollständiges Beispiel und die log-Datei ist es sehr schwer bis unmöglich sowas zu debuggen.

Ulrike Fischer
www.troubleshooting-tex.de
Am Inhalt der figure Umgebung liegt es nicht, das stimmt. Wahrscheinlich war es nur Zufall, dass dieses figure der Auslöser war. Ich habe ein weiteres Bild hinzugefügt, was den gleichen Effekt hervorruft.

Ich kriegs bis jetzt leider nicht hin ein Minimalbeispiel bzw. ein kleineres Dokument zu erstellen, welches den Fehler hervorruft. Die laufen alle durch.

Gast

Beitrag von Gast »

Ich kriegs bis jetzt leider nicht hin ein Minimalbeispiel bzw. ein kleineres Dokument zu erstellen, welches den Fehler hervorruft. Die laufen alle durch.
Bei solchen Fehler muss man meistens vom richtigen Dokument ausgehen. D.h. mache von dem eine Kopie und verkleinere die.

Überprüfe aber zuerst in der log-Datei, ob dort irgendwelche Fehler oder Warnungen stehen, die vielleicht weiterhelfen.

Ulrike Fischer
www.troubleshooting-tex.de

Butcho
Forum-Anfänger
Forum-Anfänger
Beiträge: 10
Registriert: Mo 10. Sep 2012, 16:25

Beitrag von Butcho »

Hi,

also es gibt einige von diesen
Overfull \hbox (11.99998pt too wide) in paragraph at lines 37--43
und viele von diesen Messages
Underfull \vbox (badness 10000) has occurred while \output is active []
Die einzige Warning ist diese
Class scrbook Warning: \float@addtolists detected!
(scrbook)              You should use the features of package `tocbasic'
(scrbook)              instead of \float@addtolists.
(scrbook)              Support for \float@addtolists may be removed from
(scrbook)              `scrbook' soon .
Hervorgerufen vom listings paket soweit ich weiß.
Würde dir denn die komplette log etwas nützen?

Viele Grüße

Antworten