我正在绘制一个节点,之后\pause
我想为该节点添加一个标签。到目前为止,我只是重新绘制了该节点,但我希望有更好的方法:
\tikzstyle{vertex}=[circle,fill=black!25,minimum size=20pt,inner sep=0pt]
\begin{figure}
\begin{tikzpicture}[scale=1.8, auto,swap]
\node[vertex] (v_1) at (1,2) {$v_1$};
\pause
\node[vertex,label={[color=blue]80:$12$}] (v_1) at (1,2) {$v_1$}; %here I have to give name, node text and position again...
\end{tikzpicture}
\end{figure}
答案1
有两种方法可以做到这一点。
方法 1
您可以使用beamer
的覆盖命令,例如\visible
\node[vertex,label={[color=blue]80:{{\visible<2>{$12$}}}}] (v_1) at (1,2) {$v_1$};
注意,{}
在\visible
。参见这里有解释。
方法 2
你可以定义一个键,比如说visible on
,按照这个答案,并在你的节点的标签中使用它:
\node[vertex,label={[color=blue,visible on=<2>]80:$12$}] (v_1) at (1,2) {$v_1$};
其中visible on
定义为
\tikzset{
invisible/.style={opacity=0},
visible on/.style={alt=#1{}{invisible}},
alt/.code args={<#1>#2#3}{%
\alt<#1>{\pgfkeysalso{#2}}{\pgfkeysalso{#3}} % \pgfkeysalso doesn't change the path
},
}
顺便说一句,定义 TikZ 样式时,最好使用\tikzset
而不是已弃用的\tikzstyle
。因此,你的样式vertex
可以定义为
\tikzset{vertex/.style={circle,fill=black!25,minimum size=20pt,inner sep=0pt}}
答案2
如果您想使用原生 TikZ/beamer
语法,请使用late options
。
代码
\documentclass{beamer}
\usepackage{tikz}
\begin{document}
\begin{frame}
\begin{tikzpicture}[scale=1.8, auto, swap, vertex/.style={circle, fill=black!25, minimum size=20pt, inner sep=0pt}]
\node[vertex] (v_1) at (1,2) {$v_1$};
\pause
\path [late options={name=v_1,label={[color=blue]80:$12$}}];
% or: \path (v_1) [late options={label={[color=blue]80:$12$}}];
\end{tikzpicture}
\end{frame}
\end{document}