pgfplots externe pdf wird nicht erzeugt

Alles rund um das System für Windows.


Johannes M.
Forum-Newbie
Forum-Newbie
Beiträge: 3
Registriert: Do 16. Feb 2017, 11:02

pgfplots externe pdf wird nicht erzeugt

Beitrag von Johannes M. »

Hallo,

ich habe ein Problem mit der Erstellung externer pgfplots.
Hier ist ein Minimalbeispiel dazu.
 %Test.tex
\documentclass [
	ngerman,
	]{scrreprt}
	
\usepackage{ngerman}
\usepackage[ngerman]{babel}

\usepackage[ansinew]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{ae} % "schöneres" ß
\usepackage{eurosym}
\usepackage{lmodern}
	
\usepackage{pgfplots}
\pgfplotsset{compat=1.5}

\usepgfplotslibrary{external}
\tikzexternalize[shell escape=-enable-write18]

\begin{document}

\begin{figure}[htp]
	\begin{tikzpicture}
		\begin{axis}[
		title=\textbf{Frequenzspektrum von 10 Hz bis 7 GHz},
		xlabel={f [GHz]},
		ylabel={P [dBm]},
		width=\textwidth,
		]
		
		\addplot [blue, no markers] table{Spiralantenne_Stoersignale.txt};
		
		\end{axis}
	\end{tikzpicture}

\caption[Frequenzspektrum einer Breitbandantenne]{Frequenzspektrum der aufgenommenen Signale einer Breitbandantenne zwischen 10 Hz – 7 GHz}
\label{fig:Spec_Antenna}
\end{figure}

\begin{figure}[htp]
	\begin{tikzpicture}
		\begin{axis}[
		title=\textbf{Übertragungsfunktion einer Bandsperre mit 1,8 GHz},
		xlabel={f [GHz]},
		ylabel={P [dBm]},
		width=\textwidth,
			%xmin=0, xmax=7,
			%ymin=0, ymax=-100,
		]
		\addplot [blue, no markers] table{GF_1_8GHz_8GHz.txt};
		\end{axis}
	\end{tikzpicture}

\caption[Übertragungsfunktion einer Bandsperre mit Grenzfrequenz 1,8 GHz]{Übertragungsfunktion einer Bandsperre mit Grenzfrequenz 1,8 GHz}
\label{fig:Filter_1_8}
\end{figure}

\end{document}
Ich verwende Miktex 2.9 mit Texnic Center

Der erste externe Plot wird problemlos erstellt der zweite nicht.
Es erscheint die Fehlermeldung:

! Package tikz Error: Sorry, the system call 'pdflatex -enable-write18 -halt-on-error -interaction=batchmode -jobname "Test-figure1" "\def\tikzexternalrealjob{Test}"' did NOT result in a usable output file 'Test-figure1' (expected one of .pdf:.jpg:.jpeg:.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 'Test-figure1.log'. If you continue now, I'll try to typeset the picture.

In der PDF mit dem gesamten Dokument ist der plot allerdings enthalten

Ich freue mich, wenn mir jemand helfen kann.

Grüße
Johannes

Johannes M.
Forum-Newbie
Forum-Newbie
Beiträge: 3
Registriert: Do 16. Feb 2017, 11:02

Beitrag von Johannes M. »

Sorry, ich habe heute Mittag in der Eile die Textdateien vergessen, die ich in dem Programm einlesen will. Ich füge sie mal noch hinzu, dass ihr das ganze auch testen könnt.
Dateianhänge
Spiralantenne_Stoersignale.txt
(17.33 KiB) 459-mal heruntergeladen
GF_1_8GHz_8GHz.txt
(344.65 KiB) 485-mal heruntergeladen

Gast

Beitrag von Gast »

Was ist denn mit Test-figure1.log. Darauf wird ja in der Fehlermeldung aus gutem Grund verwiesen. Wenn es die nicht gibt, hast du übrigens das Aktivieren von -shell-escape versäumt. Auch darauf wird in der Fehlermeldung aus gutem Grund hingewiesen.

Ansonsten gibt es die Schnellsuche nach "external" oder "externalize" Auskunft über diverse Gründe, warum das schief gehen kann.

Nein, ich habe keine 100er-KByte an Daten runtergeladen. Von mini kann man da nicht mehr reden.

Benutzeravatar
u_fischer
Forum-Meister
Forum-Meister
Beiträge: 4266
Registriert: Do 22. Nov 2012, 11:09
Kontaktdaten:

Beitrag von u_fischer »

16000 Datenpunkte sind ja schon eine Menge. Versuche es mit
\tikzset{external/system call={pdflatex
        \tikzexternalcheckshellescape -halt-on-error -interaction=batchmode --extra-mem-top=3000000
        -jobname "\image" "\texsource"}}

(Relevant ist extra-mem-top=3000000 um dem externen Lauf mehr Speicher zu geben).

Gast

Beitrag von Gast »

Warum nicht gleich lualatex verwenden? Das kümmert sich selbst um den benötigten Speicher und wird für pgfplots ohnehin empfohlen.

Ist compat=1.5 wirklich eine gute Wahl? Aktuell ist AFAIK pgfplots 1.14. In den Jahren seit 1.5 sind einige Verbesserungen entstanden.

Das Paket ae ist total veraltet. Das hat auch wenig mit einem schöneren ß zu tun. Wenn man danach lmodern lädt, ist es ohnehin überflüssig.

Die Pakete ngerman und babel sollte man nicht kombinieren. Also \usepackage{ngerman} am besten entfernen.

Kein aktueller LaTeX-Editor verwendet in der Voreinstellung mehr ansinew als Eingabecodierung. Die sind eigentlich alle auf utf8 vorkonfiguriert (und das ist auch gut so).

Ich vermute mal, dass die ganzen Kritikpunkte aus einer total veralteten LaTeX-Vorlage stammen. Solche erweisen sich für Anfänger oftmals als Bumerang: Erst scheinen eine gewisse Mühe durch sie davon zu fliegen. Irgendwann kommt die Arbeit aber mit großem Schwung zurück, knallt einem gegen den Kopf und hinterlässt üble Kopfschmerzen.

Johannes M.
Forum-Newbie
Forum-Newbie
Beiträge: 3
Registriert: Do 16. Feb 2017, 11:02

Beitrag von Johannes M. »

Vielen Dank für die vielen Ratschläge

Folgendes hat letztendlich funktioniert:
u_fischer hat geschrieben:
\tikzset{external/system call={pdflatex
        \tikzexternalcheckshellescape -halt-on-error -interaction=batchmode --extra-mem-top=3000000
        -jobname "\image" "\texsource"}}
(Relevant ist extra-mem-top=3000000 um dem externen Lauf mehr Speicher zu geben).
Wenn jemand mal das selbe Problem haben sollte, es ist wichtig den Befehl in das Dokument zu setzen. Hat bei mir eine Weile gedauert das raus zu finden, da ich nirgends einen Hinweis finden konnte, wo der Befehl zu setzen ist.

Vielen Dank für die Hilfe

Antworten