TikZ foreach-loop 中帶有 Beamer 的 LaTeX 計數器

TikZ foreach-loop 中帶有 Beamer 的 LaTeX 計數器

我想用tikZ畫一個完整的圖。首先是節點,然後是第一個節點到其他節點的線,然後是第二個節點到其餘節點的線,依此類推。所有這些步驟都適用於 foreach 循環,並且每個單獨的繪圖都應使用投影機函數 \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

您總是將計數器增加到一個值,以便再插入一張投影片,因為投影片會被「執行」多次。類別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}

在此輸入影像描述

相關內容