
Quiero dibujar un gráfico completo con tikZ. Primero los nodos, luego las líneas del primer nodo a los demás, luego las líneas del segundo nodo a los restantes y así sucesivamente. Todos estos pasos funcionan con bucles foreach y cada dibujo debe aparecer paso a paso con la función de proyector \visible<..>. Mi idea era utilizar un contador LaTeX global para contar todos los pasos en todos los bucles foreach.
\documentclass[10pt,ngerman]{beamer}
\usepackage{tikz}
\newcounter{steps}
\begin{document}
\begin{frame}{Complete Graph}
\begin{tikzpicture}[
kreis/.style={circle, draw, minimum size=1.5cm},
]
\foreach [count=\i] \letter in {A,...,F}{%
% \stepcounter{steps}
\visible<\thesteps->{%
\node [kreis] (\letter) at (\i*60+30:2.5) {\huge{\letter}};
}
}
\end{tikzpicture}
\end{frame}
\end{document}
El MWE se compila, pero cuando elimino el comentario, texmaker se ejecuta en un bucle sin fin. ¿Por qué?
Respuesta1
Siempre aumenta el contador a un valor en el que se inserta una diapositiva más porque la diapositiva se "ejecuta" varias veces. La beamer
clase tiene un comando para tales situaciones \resetcounteronoverlays
. El uso de este comando soluciona su problema.
\documentclass[10pt,ngerman]{beamer}
\usepackage{tikz}
\newcounter{steps}
\resetcounteronoverlays{steps}
\begin{document}
\begin{frame}{Complete Graph}
\begin{tikzpicture}[
kreis/.style={circle, draw, minimum size=1.5cm},
]
\foreach [count=\i] \letter in {A,...,F}{%
\stepcounter{steps}
\visible<\thesteps->{%
\node [kreis] (\letter) at (\i*60+30:2.5) {\huge{\letter}};
}
}
\end{tikzpicture}
\end{frame}
\end{document}
Sin embargo, yo dibujaría esto de otra manera.
\documentclass[10pt,ngerman]{beamer}
\usepackage{tikz}
\usetikzlibrary{overlay-beamer-styles}
\begin{document}
\begin{frame}{Complete Graph}
\begin{tikzpicture}[
kreis/.style={circle, draw, minimum size=1.5cm},
]
\foreach [count=\i] \letter in {A,...,F}{%
{%
\node[visible on=<\i->] [kreis] (\letter) at (\i*60+30:2.5) {\huge{\letter}};
}
}
\end{tikzpicture}
\end{frame}
\end{document}