Beamer を使用した TikZ foreach ループ内の LaTeX カウンター

Beamer を使用した TikZ foreach ループ内の LaTeX カウンター

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}

MWE はコンパイルされますが、コメントを削除すると、texmaker が無限ループで実行されます。なぜでしょうか? ここに画像の説明を入力してください

答え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}

ここに画像の説明を入力してください

関連情報