因为我必须包含很多图,所以我想将我的 tikz 图形外部化。但也因为我喜欢standalone
在创建 tikz 图形时使用它,所以我想将两者结合起来。但我在编译时出现错误。
如果我删除该tikzexternalize
库,一切都会正常工作。如果我将其更改\includegraphics
为,\input
它也会正常工作,但结果并不完全相同(并且灵活性较低)。
我不知道如何解决这个问题,如果可能的话我愿意保留这个组合standalone
,includegraphics
因为它给了我很大的灵活性。
梅威瑟:
情节.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}
结果,请注意刻度标签的不同大小: