我想使用和\tikzexternalize
'命令和选项。 我使用三个文件:、和。可以是任何图形文件。包含以下代码:tikzscale
pgfplots
\addplot graphics
\clip=false
A.png
A.tikz
A.tex
A.png
A.tikz
\begin{tikzpicture}
\begin{axis}[
width=0.5\textwidth,
xmin=0,xmax=5,ymin=0,ymax=5,
clip=false,
]
\addplot graphics [xmin=0,xmax=5,ymin=0,ymax=5] {A.png};
%\addplot coordinates {(1,1)(2,3)(3,2)};
\node[anchor=south east] at (rel axis cs:-0.05,1) {(a)};
\end{axis}
\end{tikzpicture}
的内容A.tex
为:
\documentclass[crop,10pt,border=0]{standalone}
\usepackage[english]{babel}
\usepackage{pgfplots}
\usepackage{tikzscale}
\usepgfplotslibrary{groupplots}
\usetikzlibrary{external}
\tikzexternalize
\pgfplotsset{compat=1.9}
\begin{document}
\tikzsetnextfilename{Figure-A}
\setlength{\textwidth}{510pt}
This is some text.
\includegraphics[width=0.5\textwidth]{A.tikz}
% \input{A.tikz}
\end{document}
像这样编译文档,我收到错误并且未创建外部文件。我发现问题出在以下几行的组合上:
\tikzexternalize
\includegraphics[width=0.5\textwidth]{A.tikz}
clip=false
\addplot graphics [xmin=0,xmax=5,ymin=0,ymax=5] {A.png};
如果我省略其中任何一条命令,都不会出错,但显然我也不能使用相应的选项:
- 如果我省略\tikzexternalize
,则不会出错但也不会有外部文件,并且每次运行都会编译 tikz 代码。
- 如果我省略clip=false
,则不会出错,会创建一个外部文件,但我无法在轴外部绘制任何东西。
- 如果我省略\addplot graphics [xmin=0,xmax=5,ymin=0,ymax=5] {A.png};
例如而使用\addplot coordinates
,则不会出错,会创建一个外部文件但我无法使用外部图形
- 如果我省略\includegraphics[width=0.5\textwidth]{A.tikz}
并改用\input{A.tikz}
,它可以工作但结果缩放不正确。
所以我的问题是:有没有办法让这四个命令/选项一起工作?
答案1
axis
您可以使用进入环境every axis/.append style
,然后注释掉该clip=false
选项。我附上了一个示例和结果预览,如果它适用于所有这些组图,请尝试一下。
%! *latex mal-A.tex
% with shell escape on
\documentclass[crop,10pt,border=0]{standalone}
\usepackage[english]{babel}
\usepackage{pgfplots}
\usepackage{mwe}
\usepackage{tikzscale}
\usepackage{filecontents}
\usepgfplotslibrary{groupplots}
\usetikzlibrary{external}
\tikzexternalize
\pgfplotsset{compat=1.9}
\begin{document}
\def\malkeyfile{mal-A.tikz}
\begin{filecontents*}{\malkeyfile}
\begin{tikzpicture}
\begin{axis}[
width=0.5\textwidth,
xmin=0, xmax=5, ymin=0, ymax=5,
%clip=false, % Now, there is no need for this option anymore.
every axis/.append style={after end axis/.code={\node[anchor=south east] at (rel axis cs:-0.05,1) {(a)};}},
]
\addplot graphics [xmin=2.5, xmax=5, ymin=0, ymax=5] {example-image.png}; % This picture is a part of the mwe package.
\addplot coordinates { (1,1) (2,3) (3,2) (4.5,4) };
\end{axis}
\end{tikzpicture}
\end{filecontents*}
\tikzsetnextfilename{Figure-mal-A}
\setlength{\textwidth}{510pt}
This is some text.
\includegraphics[width=0.5\textwidth]{\malkeyfile}
\end{document}