![如何让 tikzpictures 在同一页面上重叠?](https://linux22.com/image/384021/%E5%A6%82%E4%BD%95%E8%AE%A9%20tikzpictures%20%E5%9C%A8%E5%90%8C%E4%B8%80%E9%A1%B5%E9%9D%A2%E4%B8%8A%E9%87%8D%E5%8F%A0%EF%BC%9F.png)
我有两个复杂的 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}