TikZ & 外部: 理由もなく再作成された図

TikZ & 外部: 理由もなく再作成された図

ライブラリを使用しているにもかかわらず、複数の図のうち 1 つだけが再作成されるという問題が発生していますtikz/external。2 つの図だけで同じ効果を示す MWE を作成しました。

以下は でコンパイルされたメイン ファイルです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}

最初の図は を実行するたびに再作成されますpdflatex。2 つの図の順序を変更してみましたが、違いはありませんでした。ファイル名が の図はscalability-plot-all-sbb-2-optima常に再作成されますが、もう 1 つの図は で、同じですが になっていますsemilogyaxisTikZ両方のファイルは、5 つの異なる .dat ファイルからデータを読み込む 5 つのaddplotコマンドにすぎません。ここですべてを示すと、かなりのスペースが必要になるため、次の図を次に示します。リンク.tex.tikzおよびファイルを含むディレクトリ構造全体に適用されます.dat

addplot を 1 つだけ保持すると、図が再作成されないことがわかりました。これはバグなのか、LaTeXディレクトリ構造によって混乱しているのか、それとも単に私のミスなのか疑問に思っています。

答え1

私は LaTeX に関する知識が非常に限られているため、ログ ファイル ( file.log) を調べて何が問題なのかを特定してみることにしました。画像を再生成する convert コマンドの直後に、次のようなエラーがあることに気付きました。

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

tikzscaleこれにより、私が要求した正確なサイズに画像を拡大縮小することができず、tikzscale画像のサイズが想定していたものと実際のサイズとの間に不一致が生じていると考えました。実はでした。そこで私がしたのは、これx ラベルと y ラベルの周りの空白を削除するには、回答してください (基本的には、ヘルプを試みてくださいtikzscale)。

問題は修正されました。Overfull \hbox警告は表示されなくなり、画像も毎回再生成されなくなりました。ただし、これが想定された動作なのか、バグなのかはわかりません。

関連情報