使用 \tikzexternalize 时如何将“参数”从一个图形传递到另一个图形

使用 \tikzexternalize 时如何将“参数”从一个图形传递到另一个图形

在下面的第一个图中( \tikzexternalize 被禁用),右侧的图表是使用“calc”库绘制平行线的可能性绘制的。

我需要将此示意图放在一个独立的图形中(第二个图形)。如果禁用 \tikzexternalize,则此方法有效(这可能不正常,Tikz 似乎将坐标保存在内存中)。

另一方面,一旦激活 \tikzexternalize,就不会生成第二个图形。

一个外部图形向另一个外部图形传递参数有什么解决办法?

在此处输入图片描述

% !TeX program =Xelatex+shell-escape
% !TeX encoding = utf8
\documentclass[12pt]{article}
\usepackage{tikz}
\usetikzlibrary{external,calc,intersections}
%\tikzexternalize
 
\begin{document}
\tikzsetnextfilename{testExterne} % Nom du fichier de sortie de la figure

\begin{tikzpicture}
\draw[dashed,blue,name path=Rg] (0,0)coordinate(P)node[inner sep=0,label=P]{$\times$}  --++(5cm,0);
\draw[-latex,ultra thick,blue] (P) --++(2cm,0) node[above]{$ {R_{g \to d}}$};

\draw[dashed,blue,name path=BC] (1,-3.5)coordinate(B) node[inner sep=0,label=B]{$\times$} --++(2,2.5)coordinate(C) node[inner sep=0,label=C]{$\times$}  coordinate[pos=1.4](ff) -- (ff);
\path [name intersections={of=Rg and BC,by=E}];

\draw[dashed] (2,-5)coordinate(D)node[inner sep=0,label=D]{$\times$} -- (E)node[inner sep=0,label=E]{$\times$} ;

\begin{scope}[shift={(5cm,-6cm)}]
 \draw[-latex,ultra thick,red] (0,0) coordinate(a1)--++(2cm,0)coordinate(a2) node[below]{$ {R_{g \to d}}$};
 
 \draw[name path=a1,dashed] (a1) -- ++($(C)-(B)$)coordinate[pos=2.5](ff) --(ff);

 \draw[name path=a2,dashed] (a2) -- ++($(E)-(D)$)coordinate[pos=1.5](ff) --(ff);
 \path [name intersections={of=a1 and a2,by=a3}];
 
 \draw[-latex,thick] (a2) -- (a3);
 \draw[-latex,thick] (a3) -- (a1);
\end{scope}

\end{tikzpicture}

\begin{tikzpicture}
 \draw[-latex,ultra thick,red] (0,0) coordinate(a1)--++(2cm,0)coordinate(a2) node[below]{$ {R_{g \to d}}$};
 
 \draw[name path=a1,dashed] (a1) -- ++($(C)-(B)$)coordinate[pos=2.5](ff) --(ff);

 \draw[name path=a2,dashed] (a2) -- ++($(E)-(D)$)coordinate[pos=1.5](ff) --(ff);
 \path [name intersections={of=a1 and a2,by=a3}];
 
 \draw[-latex,thick] (a2) -- (a3);
 \draw[-latex,thick] (a3) -- (a1);
\end{tikzpicture}

\end{document}

相关内容