将新的 TikZ 节点放置在其他节点后面

将新的 TikZ 节点放置在其他节点后面

我希望新的 TikZ 节点出现在前一个节点后面。例如在 Beamer 演示文稿中突出显示部分代码。

我可以这样做,如果我把\node 新的节点并赋予它一个硬编码的覆盖号,但我宁愿保留<+>覆盖规范。

当然,我们也欢迎任何关于更好方法的建议!

我想要实现的一个例子:

\documentclass{beamer}
\usepackage{tikz,fancyvrb}
\usetikzlibrary{shapes,positioning}

\begin{document}
\begin{frame}[fragile]
  \begin{tikzpicture}
    \draw<2->[fill=blue!50] (-0.5\linewidth,-1em) rectangle (0.5\linewidth,1em);

    \node {
      \begin{minipage}{\linewidth}
\begin{Verbatim}
Please note this line!
\end{Verbatim}
      \end{minipage}
    };

  \end{tikzpicture}
\end{frame}
\end{document}

编辑:使用图层的示例

\documentclass{beamer}
\usepackage{tikz,fancyvrb}
\usetikzlibrary{shapes,positioning,backgrounds}

\begin{document}

\begin{frame}[fragile]

  \begin{tikzpicture}

    \node<+-> at (0,0){
      \begin{minipage}{\linewidth}
        \VerbatimInput{queries/example.xquery}
      \end{minipage}
    };

    \begin{pgfonlayer}{background}
      \draw<+->[fill=blue!50] (-0.5\linewidth,-1em) rectangle (0.5\linewidth,1em);
    \end{pgfonlayer}

  \end{tikzpicture}

\end{frame}


\end{document}

答案1

我知道有两种方法:

  1. 使用 PGF 层

  2. 在增量覆盖规范中使用偏移量。

以下是两者的示例。

\documentclass{beamer}
\usepackage{tikz,fancyvrb}
\usetikzlibrary{shapes,positioning}

\begin{document}

\begin{frame}[fragile]{using pgflayers}
  \pgfdeclarelayer{box}
  \pgfdeclarelayer{text}
  \pgfsetlayers{box,text}
  \begin{tikzpicture}
    \useasboundingbox (-0.5\linewidth,-1em) rectangle (0.5\linewidth,1em);
    \begin{pgfonlayer}{text}
    \node<+->{
      \begin{minipage}{\linewidth}
%\begin{Verbatim}
Please note this line!
%\end{Verbatim}
      \end{minipage}
    };
    \end{pgfonlayer}
    \begin{pgfonlayer}{box}
    \draw<+->[fill=blue!50] (-0.5\linewidth,-1em) rectangle (0.5\linewidth,1em);
    \end{pgfonlayer}
  \end{tikzpicture}
\end{frame}


\begin{frame}[fragile]{using offsets}
  \begin{tikzpicture}
    \useasboundingbox (-0.5\linewidth,-1em) rectangle (0.5\linewidth,1em);
    \draw<.(2)->[fill=blue!50] (-0.5\linewidth,-1em) rectangle (0.5\linewidth,1em);
    \node<+->{
      \begin{minipage}{\linewidth}
%\begin{Verbatim}
Please note this line!
%\end{Verbatim}
      \end{minipage}
    };
  \end{tikzpicture}
\end{frame}

\end{document}

我无法让Verbatim环境正常运行;你真的需要它吗?

相关内容