
У меня есть график на рамке в beamer
, нарисованный с помощью tikz
и я хотел бы разобрать его по прошествии времени. Исходный график выглядит так:
\begin{frame}{Eksempel}
\begin{tikzpicture}[node distance=1.45cm, thick,
main node/.style={circle, draw, font=\sffamily\bfseries}]
\node[main node] (1) {1};
\node[main node] (3) [below left of=1] {3};
\node[main node] (4) [below right of=1] {4};
\node[main node] (2) [above right of=4] {2};
\node[main node] (6) [below right of=4] {6};
%\draw[->, visible on=<2->] (1) -- (2);
\path[->]
(1) edge (2)
(4) edge (2)
(6) edge (2)
(1) edge (3)
(4) edge (1)
(3) edge (4);
\end{tikzpicture}
\end{frame}
Я хочу, чтобы ребра исчезли, и после того, как ребра исчезнут, узлы, не имеющие больше ребер, станут зелеными. Например, на следующем слайде все ребра к узлу 2 должны исчезнуть, а на следующем — сам узел 2 должен исчезнуть.
Я пробовал такие вещи, как visible on
или onslide
, но все они выдают мне сообщения об ошибках. Также, можно было бы использовать \pause
, но это довольно странно, если я разбираю график вместо того, чтобы вставлять в него что-то.
решение1
Это может послужить отправной точкой.
(С помощьюhttps://tex.stackexchange.com/a/6155/263192)
\documentclass{beamer}
\usepackage{tikz}
\tikzset{onslide/.code args={<#1>#2}{% from https://tex.stackexchange.com/a/6155/263192
\only<#1>{\pgfkeysalso{#2}}
}}
\begin{document}
\begin{frame}{Eksempel}
\begin{tikzpicture}[
node distance=1.45cm, thick,
main node/.style={circle, draw, font=\sffamily\bfseries}
]
\node[main node] (1) {1};
\node[main node] (3) [below left of=1] {3};
\node[main node] (4) [below right of=1] {4};
\node<-3>[main node,onslide=<3>{green}] (2) [above right of=4] {2};
\node<-4>[main node] (6) [below right of=4] {6}; % <-4> forces an additional overlay in which node 2 disappears
\path<1>[->] (1) edge (2)
(4) edge (2)
(6) edge (2);
\path[->] (1) edge (3)
(4) edge (1)
(3) edge (4);
\end{tikzpicture}
\end{frame}
\end{document}