PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : main memory exceeded



wuntzt
06-04-2010, 16:52
Guten Abend,

ich arbeite mit MikTex 2.8 und kompiliere im TeXnicCenter. Mein Memory ist übergelaufen (TeX capacity exceeded, sorry [main memory size=3000001]). Nachdem ich durch verschiedene Foren geschaut habe, habe ich verschiedene Vorschläge zur Erhöhung des main_memory-Wertes bekommen: z.B.hier (http://www.mrunix.de/forums/showthread.php?t=65908&highlight=main+memory)und hier (http://meinews.niuz.biz/tex-t46849.html?)

Tenor der Beiträge ist, dass ich sowas in der Richtung
latex --mem-max=5000000 mydoc eingeben soll.

Wie und wo mache ich das? Im MikTex-Guide steht, dass ich über Maintenance->Settings-> Format gehen kann. Damit kann ich aber leider nicht wirklich umgehen.

Kann mir jemand eine einfache Anleitung dazu geben? Sicherlich gibt's die auch schon irgendwie, weiss aber nicht, wie ich danach suchen soll.

danke!
Karl

Schweinebacke
06-04-2010, 18:40
main memory läuft hauptsächlich aufgrund von Fehlern in Dokumenten über - und zwar kapitalen Fehlern. Im main memory wird nämlich normalerweise keineswegs das gesamte Dokument gehalten, sondern nur der Teil, der zwar bereits eingelesen ist, aber noch nicht ausgegeben wurde. Dazu kommt ggf. Code für Makros. 3000000 reicht deshalb normalerweise mehr als problemlos aus.

Überlaufen kann er beispielsweise dann, wenn man ein wirklich riesiges Dokument hat, das man komplett in ein Makro stecken will oder wenn man ein wirklich riesiges Dokument hat, das aber aus einem einzigen Absatz besteht.

Früher mal ist main memory häufig übergelaufen, wenn man gnuplot-Grafiken als tex-Datei mit vielen Stützpunkten erstellt hat. Aber selbst da muss man bei 3000000 Worten main memory schon sehr, sehr viele Stützstellen haben.

Erster Tipp wäre deshalb, das Dokument auf Fehler zu überprüfen.

Zweiter Tipp, wenn Du main memory doch ändern willst wäre http://docs.miktex.org/2.8/manual/runtimeparams.html. Dort steht nämlich u. a. dass man das Format neu erzeugen muss, wenn man das ändert.

wuntzt
07-04-2010, 14:31
Hallo Schweinebacke,

die Sache ist die, dass sich die gesamte Arbeit reibungslos kompilieren lässt. Jetzt kommt es, dass ich ein Diagramm mit 3000 Datenpaaren kreieren möchte. Das geht einmal. Sobald jedoch das zweite Diagramm dazukommt, entsteht die Fehlermeldung. Jetzt könnte ich die Daten ein wenig ausdünnen, als Alternative aber einfach auch den Speicher hochsetzen. Es sei denn, diese Alternative birgt andere Risiken oder so. Für Tipps diesbezüglich bin ich sehr offen.

Bzgl. des Links: Kannst du mir konkret sagen, wo ich was einzusetzen und zu kompilieren habe? Irgendwo hakt es dort bei mir. D.h., was genau konkret dies hier zu bedeuten hat:
You use the --edit-config-file option of initexmf to edit the configuration file, e.g.:

> initexmf --edit-config-file=pdflatex


Danke für die Hilfe!
Karl

u_fischer
07-04-2010, 14:55
Versuche ob es funktioniert, wenn du im Profil in TeXnicCenter für latex/pdflatex oder was auch immer du verwendest, die Option
--extra-mem-top=6000000 einträgst.

wuntzt
07-04-2010, 14:59
in "Argumente, die an den Compiler übergeben werden sollen", steht bei mir jetzt
--src -interaction=nonstopmode -max-print-line=120 "%Wm" drin.

Hänge ich die andere Information da einfach dran, so dass das wie folgt aussieht oder wie läuft das?


--src -interaction=nonstopmode -max-print-line=120 "%Wm" --extra-mem-top=6000000

Danke!

u_fischer
07-04-2010, 15:12
Versuch's doch einfach. Und überlege dir, wofür "%Wm" wohl steht, und ob die neue Option daher davon oder danach stehen sollte.
http://docs.miktex.org/2.8/manual/pdftex.html

wuntzt
07-04-2010, 15:48
klasse, funktioniert soweit erstmal.

Habe nun
--src -interaction=nonstopmode -max-print-line=120 "%Wm" --extra-mem-top=60000000 benutzt.

Danke!
Karl