Tikz externalize 前缀参数与 -output-directory 结合使用时会产生不一致的行为

Tikz externalize 前缀参数与 -output-directory 结合使用时会产生不一致的行为

情况

我正在使用 TikZ externalize 库编译文档,并希望在输出文件夹 中创建输出/out/,但将 TikZ externalize 图形存储在子文件夹中/out/figures/。通过将参数传递给 pdfLatex 来/out/指定文件夹,并使用 指定文件夹。-output-directory=[path to main.tex]/out/out/figures/\tikzexternalize[prefix=out/figures/]

预期行为

所有外部化文件均在/out/figures/文件夹中创建。

实际行为

figure.md5文件在文件夹中创建/out/out/figures/,而所有其他外部化文件均在/out/figures/文件夹中创建。

平均能量损失

运行以下命令:

pdflatex -output-directory=[path to main]/out -shell-escape main.tex

其中main.tex包含:

\documentclass{article}
\usepackage{pgfplots}
\usetikzlibrary{external}
\tikzexternalize[prefix=out/figures/]

\usepackage[abspath]{currfile}
\getabspath{\jobname.log}

% Avoid having to create these folders manually
\IfFileExists{"\theabsdir out"}{}{\immediate\write18{mkdir "out"}}
\IfFileExists{"\theabsdir out/figures"}{}{\immediate\write18{mkdir "out/figures"}}
\IfFileExists{"\theabsdir out/out"}{}{\immediate\write18{mkdir "out/out"}}
\IfFileExists{"\theabsdir out/out/figures"}{}{\immediate\write18{mkdir "out/out/figures"}}

\begin{document}
\begin{figure}
    \tikzsetnextfilename{figure}
    \begin{tikzpicture}[domain=0:4]
        \draw[very thin,color=gray] (-0.1,-1.1) grid (3.9,3.9);
        \draw[->] (-0.2,0) -- (4.2,0) node[right] {$x$};
        \draw[->] (0,-1.2) -- (0,4.2) node[above] {$f(x)$};
        \draw[color=red] plot[id=x] function{x}
        node[right] {$f(x) =x$};
    \end{tikzpicture}
\end{figure}
\end{document}

有什么方法可以让 TikZ externalize 在同一个文件夹中创建所有外部化文件?为什么 tikz externalize 对前缀的解释不一致?

相关内容