Ich lasse mir mit TikZ und gnuplot mit 5000 samples den Tanges plotten. In folgendem Beispiel funktioniert das einwandfei: Open in Online-Editor
\documentclass[12pt]{beamer} \usepackage[utf8]{inputenc} \usepackage{fontenc} \usepackage[ngerman]{babel} \usepackage{tikz} \usetikzlibrary{arrows.meta} \begin{document} \begin{frame} \begin{tikzpicture}[line cap=round, line join=round, x=0.5cm, y=0.5cm] \draw plot[raw gnuplot,id=tan,smooth] function{set samples 5000;set xrange [-3.1*pi:3.1*pi]; set yrange[-5:5]; plot tan(x)}; \end{tikzpicture} \end{frame} \end{document} Sobald ich das
Ich bin auf der Suche nach der Fehlermeldung hier gelandet. Ich hab die Variante mit Warum lässt sich der plot in einer einzelnen Datei übersetzten, nicht aber mit der Hier das logfile ab der Stelle, bei der der Fehler auftritt (Der Name des plots ist "figures/Praesentation-figure-41"): Open in Online-Editor
! Package tikz Error: Sorry, the system call 'pdflatex -shell-escape -halt-on-e rror -interaction=batchmode -jobname "figures/Praesentation-figure41" "\def\tik zexternalrealjob{Praesentation}\input{Praesentation}"' did NOT result in a usab le output file 'figures/Praesentation-figure41' (expected one of .pdf:.jpg:.jpe g:.png:). Please verify that you have enabled system calls. For pdflatex, this is 'pdflatex -shell-escape'. Sometimes it is also named 'write 18' or something like that. Or maybe the command simply failed? Error messages can be found in 'figures/Praesentation-figure41.log'. If you continue now, I'll try to typeset the picture. See the tikz package documentation for explanation. Type H <return> for immediate help. ... l.819 \end{frame} This error message was generated by an \errmessage command, so I can't give any explicit help. Pretend that you're Hercule Poirot: Examine all clues, and deduce the truth by order and method. Runaway definition? ->\pgfsyssoftpath@movetotoken {-134.08026pt}{0.0pt}\pgfsyssoftpath@curvetosuppo rtatoken \ETC. ! TeX capacity exceeded, sorry [main memory size=3000000]. \pgfsyssoftpath@thepath ...vetosupportatoken \ETC. l.819 \end{frame} If you really absolutely need more capacity, you can ask a wizard to enlarge me. Here is how much of TeX's memory you used: 37254 strings out of 493698 770434 string characters out of 3144418 3000001 words of memory out of 3000000 39746 multiletter control sequences out of 15000+200000 231113 words of font info for 266 fonts, out of 3000000 for 9000 1025 hyphenation exceptions out of 8191 56i,26n,65p,10380b,793s stack positions out of 5000i,500n,10000p,200000b,50000s ! ==> Fatal error occurred, no output PDF file produced! Hat jemand von euch eine Idee, woran das liegt? In obigem Link war auch noch eine anderer Tipp. Es heißt dort, dass man MikTeX mit der Option Open in Online-Editor
\tikzexternalize[prefix=figures/,system call={pdflatex \tikzexternalcheckshellescape --extra-mem-top=10000000 -halt-on-error -interaction=batchmode -jobname "\image" "\texsource"}] Allerdings hab ich an einer anderen Stelle gelesen, dass es nicht sinnvoll ist, mit dieser Speichererhöhung rumzuspielen. Mir ist auch unklar, wie weit ich den Wert erhöhen kann bzw. ob LaTeX nicht doch irgendwann wieder an die Grenze stößt. Und ich hab es so verstanden, dass dies nur mit MikTeX geht. Wie würde man diese Option z.B. bei TeXlive mitgeben? (Der Systemspeicher von Windows sagt übrigens ca. 4700 MB freier pysikalischer Speicher.) Am liebsten wäre mir, die Sache irgendwie ohne diese Option aber mit gefragt 01 Feb '15, 21:41 tom75
Ergebnis 5 von 6
show 1 more comments
|
In Deinem Fall würde ich einfach Open in Online-Editor
\documentclass[12pt]{beamer} \usepackage[utf8]{inputenc} \usepackage{fontenc} \usepackage[ngerman]{babel} \usepackage{tikz} \usetikzlibrary{arrows.meta} \usetikzlibrary{external} \tikzsetexternalprefix{figures/} \tikzexternalize \setlength\fboxsep{0pt} \begin{document} \tikzexternaldisable% deaktiviert das Externalisieren \begin{frame} \tikzexternalenable% aktiviert das Externalisieren neu: \fbox{\begin{tikzpicture}[line cap=round, line join=round, x=0.5cm, y=0.5cm] \begin{scope}% hält clippen lokal \clip(-3.1*pi,-5)rectangle(3.1*pi,5); \draw plot[raw gnuplot,id=tan,smooth] function{set samples 200;set xrange [-3.1*pi:3.1*pi]; set yrange[-10:10]; plot tan(x)}; \end{scope} \end{tikzpicture}} \end{frame} \begin{frame} alt: \fbox{\begin{tikzpicture}[line cap=round, line join=round, x=0.5cm, y=0.5cm] \draw plot[raw gnuplot,id=tan,smooth] function{set samples 5000;set xrange [-3.1*pi:3.1*pi]; set yrange[-5:5]; plot tan(x)}; \end{tikzpicture}} \end{frame} \end{document} beantwortet 02 Feb '15, 14:47 esdd @esdd Danke, mit der Lösung kann ich gut leben! :-) Eine Rückfrage: Warum schaltest du die Externalisierung vor dem Und trotzdem würde mich interessieren, was der Wert hinter
(03 Feb '15, 15:47)
tom75
@tom75 Das diente eigentlich nur der Demonstration, wie Du dafür sorgen kannst, dass nur die Zeichnungen in dem einen Frame externalisiert werden. Mit dem
(03 Feb '15, 15:54)
esdd
|
Das Folgende ist keine Lösung für Dein spezifisches Problem, aber liefert das gewünschte Ergebnis. Open in Online-Editor
\documentclass{article} \usepackage{pgfplots} \begin{document} \begin{tikzpicture} \begin{axis}[ no markers,samples=1000, domain=-3.1*pi:3.1*pi, restrict y to domain=-6:6, ymin=-5,ymax=5, enlargelimits=false, axis lines=middle, xtick={-9.4247,-6.28318,...,10}, xticklabels={$-3\pi$,$-2\pi$,$-\pi$,$0$,$\pi$,$2\pi$,$3\pi$}, ] \addplot {tan(deg(x))}; \end{axis} \end{tikzpicture} \end{document} beantwortet 02 Feb '15, 09:50 Henri |
Du kannst ja mal tracingstats=2 einfügen und die Entwicklung von main memory beobachten. Vielleicht ist es ja einfach kurz vor der letzten Folie gerade an der Grenze und dein Plot geht dann drüber. Es ist aber kein Problem, extra-mem-top zu benutzen, wenn man mal für eine Datei mehr main_memory braucht. Dafür ist die Option ja da.
Ich bekomme
Dimension too large
, egal wie viel Speicher ich LaTeX gebe.@Henri: Mit welchem Beispiel? Das MWE von tom75 funktioniert bei mir tadellos. Vielleicht ist bei dir ja eine echte Schleife, das Problem.
@UlrikeFischer
pdfTeX, Version 3.1415926-2.5-1.40.14 (TeX Live 2013/Debian)
. Ich habe desweiteren\usetikzlibrary{arrows.meta}
auskommentiert (ist eh irrelevant für's Beispiel).@Ulrike Fischer Muss ich
\tracingstats=2
in den LaTeX-Code einfügen?Was bedeutet die Zahl hinter extra-mem-top? Sind das Bytes? Ich hab da gestern mal ein paar Nullen mehr angehängt, es hatte keinerlei Auswirkungen auf des Systemspeicher, den man sich im Taskmanager von Windows anschauen kann. Was ist die Obergrenze für diesen Wert?
Mir ist noch nicht klar, warum die Datei einzeln läuft aber als external-Datei nicht. Das müsste doch dasselbe sein.
@Henri: Das ist kein memory-Speicher problem, sondern irgendwo wird eine Länge mal zu groß (z.B. parskip=800cm würde den Fehler auch zeigen). Mit einem aktuellen pgf passiert das nicht mehr.