如何让 tikzpictures 在同一页面上重叠?

如何让 tikzpictures 在同一页面上重叠?

我有两个复杂的 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}

相关内容