tikzeexternalize 和 includegraphics 包含一个独立的文件

tikzeexternalize 和 includegraphics 包含一个独立的文件

因为我必须包含很多图,所以我想将我的 tikz 图形外部化。但也因为我喜欢standalone在创建 tikz 图形时使用它,所以我想将两者结合起来。但我在编译时出现错误。

如果我删除该tikzexternalize库,一切都会正常工作。如果我将其更改\includegraphics为,\input它也会正常工作,但结果并不完全相同(并且灵活性较低)。

我不知道如何解决这个问题,如果可能的话我愿意保留这个组合standaloneincludegraphics因为它给了我很大的灵活性。

梅威瑟:

情节.tex:

\documentclass[]{standalone}

\usepackage{tikz}                       
\usepackage{pgfplots}                  
    \pgfplotsset{compat=newest}     

\begin{document}
\begin{tikzpicture}
    \begin{axis}[ xlabel={$x$}, ylabel={$y$}]           
        \addplot+[domain=0:0.8, samples=75, mark=None]
            {x*0.6*4.725};
    \end{axis}
\end{tikzpicture}
\end{document}

测试.tex:

\documentclass{article}

\usepackage{graphicx}
\usepackage{standalone}             
\usepackage{tikz}                   
\usetikzlibrary{external}       
    \tikzexternalize
%   \tikzset{external/system call={
%               pdflatex \tikzexternalcheckshellescape
%               -halt-on-error -interaction=batchmode -jobname "\image" "\texsource";
%           }}
%\tikzexternalize[shell escape=-enable-write18]
\usepackage{pgfplots}           
\pgfplotsset{compat=newest}     


\begin{document}

        \tikzset{external/remake next=true}
        \begin{figure}
            \pgfplotsset{width=0.5\linewidth,}
            \includegraphics[width=0.9\linewidth]{plot.tex}
            \caption{test}
        \end{figure}

\end{document}

我也尝试过更改编译选项,但无法消除错误。任何帮助或想法都很好。

答案1

由于您已将包包含standalone在主文件中,因此您可以使用\includestandalone。它采用与相同的选项\includegraphics以及一些附加选项。这里最重要的是选项mode,它将设置生成图的方式。例如,mode=buildnew将构建一个外部 PDF,但前提是 tex 文件比 PDF 更新。并且mode=tex将包含文件,即不生成单独的 PDF。使用后者,您可以\pgfplotset在主文件中使用它来更改图。使用前者这是不可能的,但它节省了编译时间。还有更多模式,可能会引起您的兴趣(请参阅standalone手册第 25 页)。

主文件:

\documentclass{article}
\usepackage{standalone}             

\usepackage{pgfplots}                  
    \pgfplotsset{compat=newest}     

\begin{document}
    \begin{figure}
        \includestandalone[mode=buildnew,width=0.9\linewidth]{plot}
        \caption{test}
    \end{figure}

    \begin{figure}
        \pgfplotsset{width=0.5\linewidth,}
        \includestandalone[mode=tex,width=0.9\linewidth]{plot2}
        \caption{another test}
    \end{figure}
\end{document}

情节.tex:

\documentclass[]{standalone}
\usepackage{tikz}                       
\usepackage{pgfplots}                  
    \pgfplotsset{compat=newest}     

\begin{document}
\begin{tikzpicture}
    \begin{axis}[ xlabel={$x$}, ylabel={$y$}]           
        \addplot+[domain=0:0.8, samples=75, mark=None]
            {x*0.6*4.725};
    \end{axis}
\end{tikzpicture}
\end{document}

plot2.tex

\documentclass[]{standalone}
\usepackage{tikz}                       
\usepackage{pgfplots}                  
    \pgfplotsset{compat=newest}     

\begin{document}
\begin{tikzpicture}
    \begin{axis}[ xlabel={$x$}, ylabel={$y$}]           
        \addplot+[domain=0:0.8, samples=75, mark=None]
            {x^2};
    \end{axis}
\end{tikzpicture}
\end{document}

结果,请注意刻度标签的不同大小:

在此处输入图片描述

相关内容