使用 \tikzset{external/mode=graphics if exist} 时,Tikz externalize 不会编译 pdf

使用 \tikzset{external/mode=graphics if exist} 时,Tikz externalize 不会编译 pdf

你好,

我设置了一个最小的多文件示例来查看该\tikzexternalize命令的工作原理。文件结构如下所示

|-main.tex
|-sec/
|--sec1.tex
|--sec2/tex
|-Graphs/
|--TikZ/
|---Sec1/
|----circle.tikz
|---Sec2/
|----square.tikz

包括main.tex

\documentclass{article}

\usepackage{tikz}
\usetikzlibrary{external}
\tikzexternalize
\tikzset{external/mode=graphics if exists}

\makeatletter
    \newcommand{\inputtikz}[1]{%
        \tikzsetnextfilename{#1}%
        \input{\tikzexternal@filenameprefix#1.tikz}%
    }%
\makeatother
\author{Author}
\title{Test}

\begin{document}
\maketitle

\tikzsetexternalprefix{./Graphs/TikZ/Chap1/}
\input{sec/sec1.tex}


\tikzsetexternalprefix{./Graphs/TikZ/Chap2/}
\input{sec/sec2.tex}
\end{document}

sec1.tex

\section{First Section}
\begin{figure}[h!]
    \centering
    \inputtikz{circle}
    \caption{}
\end{figure}

sec2.tex

\section{Second Section}
\begin{figure}[h!]
    \centering
    \inputtikz{square}
    \caption{}
\end{figure}

circle.tikz

\begin{tikzpicture}
    \draw (0,0) circle (2cm);
\end{tikzpicture}

square.tikz

\begin{tikzpicture}
    \draw (0,0) rectangle (2,2);
\end{tikzpicture}

文档编译得很好,但如果\tikzset{external/mode=graphics if exists}启用了,则 tikz 图形不会编译到 .pdf 文件中。如果我评论了,则 tikz 图形会\tikzset...像应该的那样编译,但 pdf 文件不会包含在文档中。

我正在测试这个,因为我正在写论文,我有很多.tikz文件和情节,编译需要一段时间。

我尝试不使用新命令或以不同的 tikz 命令顺序编译文档,但结果是一样的。我正在使用latexmk带有 vimtex 插件的 Vim。

有什么解决办法吗?

提前致谢!

相关内容