我希望新的 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
我知道有两种方法:
使用 PGF 层
在增量覆盖规范中使用偏移量。
以下是两者的示例。
\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
环境正常运行;你真的需要它吗?