Seite 1 von 1

Plots in Latex: memory exceeded

Verfasst: Mi 30. Jul 2014, 17:56
von Kalle754
Ich habe ein großes Problem. Ich bin gerade dabei meine Auswertung für die Bachelorarbeit zu schreiben und fertige die letzten Plots an. Jetzt ist tritt jedoch der Fehler memory exceeded auf. Ich hab keine Zeit für so etwas. Ich muss Montag abgeben.

Ich schreibe an einem Mac mit Texstudio.

Ich habe schon dem Main Memory auf 9000000 erhöht. Dann funktionierte ein weiterer Plot. Jetzt geht es nicht mehr zu Kompilieren und er sagt die Datei ist beschädigt. Das Main Memory problem wird nicht mehr aufgeführt.

Ich brauche wirklich dringend Hilfe. Ich kann doch nicht alle Plots mit einem anderen Programm nochmal machen.

Mit freundlichen Grüßen
Kalle

Verfasst: Mi 30. Jul 2014, 17:59
von Johannes_B
Doku, Kapitel 6, sowie Abschnitt 7.1

Verfasst: Mi 30. Jul 2014, 18:01
von Kalle754
Danke, aber mit luanatex kann ich nicht arbeiten, benötigt utf8, ich habe latin1 und den Speicher habe ich doch schon erhöht.

Verfasst: Mi 30. Jul 2014, 18:03
von Johannes_B
Dann solltest du das Kapitel zu Ende Lesen, dann wirst du nämlich auf Abschnitt 7.1 verwiesen.

Verfasst: Mi 30. Jul 2014, 18:19
von Kalle754
Habe das in meine Präambel eingefügt:

\usepgfplotslibrary{external}
\tikzexternalize% activate externalization!

Es kommen jedoch zu jedem tikz nur Fehlermeldungen die so aussehen:

tikz: Sorry, the system call 'pdflatex -halt-on-error -interact

Meine Tikz sehen so aus.
\begin{figure}[ht]
\centering
\input{plots/auswertung/ohneopt/ohne}%
\caption{ohne optimierung}
\label{ohnenefz}
\end{figure}

die Inputdatei:


\begin{tikzpicture}
	\begin{axis}[width=0.75\textwidth,
					height=3.5cm,
					grid=major,
					ymin=0, %ymax=55,
					xmin=0, xmax=1180,
					xticklabels={},
					ylabel={$bar$},
					legend pos= north east]
			\addplot[mark=none] table[x=X,y=Y] {plots/auswertung/ohneopt/ptank.txt};
			\legend{Tankdruck}
		\end{axis}
\end{tikzpicture}


\begin{tikzpicture}	
		\begin{axis}[width=0.75\textwidth,
					height=3.5cm,
					grid=major,
					ymin=0.7,
					xmin=0, xmax=1180,
					xlabel={Sekunden},
					ylabel={Event},
					legend pos= north east]
	 				\legend{Event}
			\addplot[mark=none] table[x=X,y=Y] {plots/auswertung/ohneopt/event.txt};
		\end{axis}
\end{tikzpicture}

Ich habe mehrere Plots untereinander gefügt, die nur eine x Achse haben.

Verfasst: Mi 30. Jul 2014, 18:22
von Johannes_B
Lies dir bitte meine Signatur durch. Bleib ruhig, sobald du hastig arbeitest verzettelst du dich!

Du musst pdflatex mit der Option --shell-escape aufrufen. Dann kann tikz für jeden Plot einen eigenen Prozess (mit eigenem memory) starten.

Verfasst: Mi 30. Jul 2014, 18:23
von Felix
Wenn Du auf UTF-8 umstellst, könntest Du mit lualatex auch übersetzen. Viele Editoren können das. Es bedeutet aber auch, die Dateien neu abzuspeichern in UTF-8-Format. Kann man einmal testhalber machen, ist auch nur ein paar Minuten Aufwand. Aber arbeite an einer Kopie, statt das Original zu ändern, damit Du zurück kannst.

Ansonsten kannst Du auch die Plots als einzelnes Dokument erstellen (standalone-Klasse) und sie als PDF einbinden, wenn das Problem nicht beim einzelnen Plot auftritt, sondern erst bei mehreren, wie ich oben las.

edit: tikzexternalize macht ja sowas, wie Johannes erwähnte.

Felix

Verfasst: Mi 30. Jul 2014, 18:32
von Kalle754
Ok ich versuche ruhig zu bleiben 8) Entschuldigung.

Ok ich habe den Schell Befehl ausgeführt. Kompilieren geht ziemlich schnell. Allerdings sind meine Grafiken teilweise Rechts abgeschnitten.

Verfasst: Mi 30. Jul 2014, 18:50
von Kalle754
Fehlalarm.

Bilder sind Heile.

Ich habe jetzt wirklich nur:
\usepgfplotslibrary{external}
\tikzexternalize% activate externalization!
hinzugefügt und die Shell ausgeführt.

Es funktioniert auch alles. Als ich einen großen zusätzlichen Plot eingefügt habe. Hat Latex mir den Fehler ausgegeben mit zu wenig Speicher: Nachdem ich die shell laufen lassen hab, ging das wieder.

Ich hoffe das Problem ist jetzt beseitigt.


Kann ich die Bilder in einen extra Ordner Externalisieren? Die Benennung der Bilder ist ja nicht so wichtig, aber in einen separaten Ordner wäre schön.

Und geht das externalisieren auch schöner ohne die shell in das Terminal eingeben zu müssen?

Erklärung

Verfasst: Mi 20. Mai 2015, 22:53
von guest123
Hallo, ich weiß, dass das hier ein alter Thread ist. Aber könnte mir evtl. einer ganz langsam erklären wie man einstellt, dass Latex auch Dateien kompiliert, die den eigenen Speicher übersteigen (wirklich einmal für Dumme, bitte^^)?

Also:
\usepgfplotslibrary{external}
\tikzexternalize
packe ich in die Präambel, oder? und wo gehört dann die Option "--shell-escape" hin?

Außerdem würde mich interessieren, welche Doku gemeitn ist. Ich habe gegoogelt und kann keine finden :(. Vllt bin ich auch nur zu blind^^


Grüße