我有两个复杂的 TikZ 绘图需要重叠(显示在同一页面上)。我无法将它们放在一个中tikzpicture
,因为scale
需要对它们应用不同的参数。最小示例:
\documentclass[border=10pt]{standalone}
\usepackage{tikz}
\usetikzlibrary{positioning,fit}
\begin{document}
\begin{tikzpicture}[inner sep=0pt, outer sep=0pt, scale=2]
\node (image) {\includegraphics{example-image}};
\fill [white]
(0,1) circle [radius=1];
\end{tikzpicture}
\begin{tikzpicture}[overlay, remember picture, scale=1]
\fill [red]
(0,0) circle [radius=1];
\end{tikzpicture}
\end{document}
这是我得到的:
这是我真正需要的:
该overlay
选项似乎没有按预期工作。(current page.center)
第二个选项tikzpicture
也不起作用。我做错了什么?
答案1
如果您有第一张图片的参考,则可以叠加两个不同的 tikzpicure。在这种情况下,由于您image
的第一张图片中已经有一个节点,只需remember picture
向其添加选项,该image
节点将在其外部可用。因此,您可以在第二张图片中将其用作参考tikzpicture
。
\documentclass[border=10pt]{standalone}
\usepackage{tikz}
\usetikzlibrary{positioning,fit}
\begin{document}
\begin{tikzpicture}[inner sep=0pt, outer sep=0pt, scale=2, remember picture]
\node (image) {\includegraphics{example-image}};
\fill [white]
(0,1) circle [radius=1];
\end{tikzpicture}
\begin{tikzpicture}[overlay, remember picture, scale=1]
\fill [red]
(image) circle [radius=1];
\end{tikzpicture}
\end{document}
答案2
您可以使用单个tikzpicture
并将您想要扩展的所有内容放入scope
环境中。
\documentclass[border=10pt]{standalone}
\usepackage{tikz}
\usetikzlibrary{positioning,fit}
\begin{document}
\begin{tikzpicture}[inner sep=0pt, outer sep=0pt]
\begin{scope}[scale=2]
\node (image) {\includegraphics{example-image}};
\fill [white] (0,1) circle [radius=1];
\end{scope}
\fill [red] (0,0) circle [radius=1];
\end{tikzpicture}
\end{document}