
tikZ で完全なグラフを描画したいです。最初にノード、次に最初のノードの線を他のノードに、次に 2 番目のノードの線を残りのノードに、というように描画します。これらのすべてのステップは foreach ループで動作し、各単一の描画は、beamer 関数 \visible<..> を使用してステップごとに表示されます。私のアイデアは、グローバル LaTeX カウンターを使用して、すべての 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}
答え1
スライドは複数回「実行」されるため、常にカウンタをもう 1 つのスライドが挿入される値まで増やします。クラスには、beamer
このような状況に対応するコマンドがあります。\resetcounteronoverlays
このコマンドを使用すると、問題が解決します。
\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}
しかし、私はいずれにせよこれを違った形で描くでしょう。
\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}