TikZ & Extern: Figur ohne ersichtlichen Grund neu erstellt

TikZ & Extern: Figur ohne ersichtlichen Grund neu erstellt

Ich habe ein Problem, bei dem trotz Verwendung der tikz/externalBibliothek nur eine von mehreren Figuren neu erstellt wird. Ich habe ein MWE erstellt, das mit nur zwei Figuren den gleichen Effekt zeigt.

Unten ist meine Hauptdatei, die mit kompiliert wurde pdflatex -shell-escape file.

\documentclass{article}

\usepackage{tikz,pgfplots,tikzscale}
\usetikzlibrary{external}
\tikzexternalize[prefix=figures/]
\pgfplotsset{compat=newest}
\graphicspath{ {./figures/}{./figures-tikz/} }

\newcommand{\figFilename}{}

\begin{document}
  \begin{figure}[t!]
    \renewcommand{\figFilename}{scalability-plot-all-sbb-2-optima}
    \centering
    \tikzpicturedependsonfile{\figFilename.tikz}
    \tikzsetnextfilename{\figFilename}
    \includegraphics[width=\textwidth,axisratio=1]{\figFilename.tikz}
    \caption{Scalability plot for dDE, MPC, dDE$^-$ and a hill climber on the Scalable-Building-Block problem.}
    \label{fig:\figFilename}
  \end{figure}

  \begin{figure}[t!]
    \renewcommand{\figFilename}{scalability-plot-all-sbb-2-optima-log-y}
    \centering
    \tikzpicturedependsonfile{\figFilename.tikz}
    \tikzsetnextfilename{\figFilename}
    \includegraphics[width=\textwidth,axisratio=1]{\figFilename.tikz}
    \caption{Same as in Figure~\ref{fig:scalability-plot-all-sbb-2-optima}, but y axis is in logscale.}
    \label{fig:\figFilename}
  \end{figure}
\end{document}

Die erste Abbildung wird jedes Mal neu erstellt, wenn ich ausführe pdflatex. Ich habe versucht, die Reihenfolge der beiden zu ändern, aber es macht keinen Unterschied --- die Abbildung mit dem Dateinamen scalability-plot-all-sbb-2-optimaist diejenige, die immer neu erstellt wird, obwohl die andere Abbildung identisch ist, aber stattdessen ein hat semilogyaxis. Die TikZDateien für beide sind lediglich fünf addplotBefehle, die Daten aus fünf verschiedenen .dat-Dateien laden. Alles hier anzuzeigen würde viel Platz beanspruchen, also hier einVerknüpfungauf die gesamte Verzeichnisstruktur, einschließlich der Dateien .tex, .tikzund .dat.

Ich habe festgestellt, dass die Figur nicht neu erstellt wird, wenn ich nur ein Addplot behalte. Ich habe mich gefragt, ob das ein Fehler ist, ob LaTeXmeine Verzeichnisstruktur für Verwirrung sorgt oder ob es einfach ein Fehler meinerseits ist.

Antwort1

Mit meinen sehr begrenzten LaTeX-Kenntnissen beschloss ich, die Protokolldatei ( file.log) zu untersuchen, um herauszufinden, was schiefgelaufen war. Mir fiel auf, dass direkt nach dem Konvertierungsbefehl, der zur Neugenerierung des Bildes führt, ein Fehler dieser Art auftrat:

Overfull \hbox (17.03157pt too wide) in paragraph at lines 1--76
 [][] 
 []

Dies führte mich zu der Annahme, dass tikzscaledas Bild nicht auf die genaue Größe skaliert werden konnte, die ich angefordert hatte, und dies führte zu einer Diskrepanz zwischen tikzscaleder Größe des Bildes, die ich für richtig hielt, und der tatsächlichen Größe.Genau genommenwar. Also habe ich die Anweisungen befolgt, die in aufgeführt sindDasAntwort: Entfernen Sie die Leerzeichen um die x- und y-Beschriftungen (versuchen Sie im Grunde zu helfen tikzscale).

Das Problem ist nun behoben. Die Overfull \hboxWarnung erscheint nicht mehr und das Bild wird nicht jedes Mal neu generiert. Ich weiß allerdings nicht, ob dies das erwartete Verhalten ist oder ob es sich um einen Fehler handelt.

verwandte Informationen