将背景应用于 TikZ 范围

将背景应用于 TikZ 范围

我在创建环境背景时遇到了问题scope这是我用于幻灯片的部分代码beamer

\documentclass{beamer}
\usepackage{tikz}
\usetikzlibrary{arrows,positioning,calc,backgrounds}

\begin{document}
\begin{frame}[plain]    

\begin{tikzpicture}[scale=2, overlay, remember picture]
\coordinate[shift={(4.5cm,-3.5cm)}] (Anchor) at (current page.north west);

\only<2>{\begin{scope}[shift={(Anchor)},/tikz/background rectangle/.style={
        fill=yellow,
        draw=black
    },show background rectangle]
\draw[thin,->] (0,0) node (origin) [below] {$0$} -- (0,1) node (yaxis) [above] {$y$};
\draw[thin,->] (-1,0) node (xaxisL) {} -- (1,0) node (xaxisR) [right] {$x$};
\end{scope} }
\end{tikzpicture}
\end{frame}
\end{document}

编辑澄清:由于背景问题覆盖规范处于活动状态,即\begin{tikzpicture}[overlay, show background...],这就是为什么我想看看是否有一种简单的方法可以将背景放在环境中scope。不幸的是,没有,scope似乎必须在其中绘制自己的背景。

答案1

最后,我pgfonlayer为每个 都添加了自定义背景scope。这样就不再需要依赖 TikZbackground库,因此允许overlay选项正常工作。

\begin{tikzpicture}[scale=2,remember picture,overlay]
\coordinate[shift={(4cm,-3.5cm)}] (Anchor) at (current page.north west);

\only<1>{
\begin{scope}[shift={(Anchor)}] 
\draw[thin,->] (0,0) node (origin) [below] {$0$} -- (0,1) node (yaxis) [above] {$y$};
\draw[thin,->] (-1,0) node (xaxisL) {} -- (1,0) node (xaxisR) [right] {$x$};

\begin{pgfonlayer}{background} 
 \draw[fill=red] (-1.1,1.3) rectangle (1.3,-0.3);
\end{pgfonlayer}
\end{scope}}
%Scope 2... etc
\end{tikzpicture}

相关内容