使用 Beamer 在 TikZ foreach 循环中对 LaTeX 进行计数器

使用 Beamer 在 TikZ foreach 循环中对 LaTeX 进行计数器

我想用 tikZ 绘制一个完整的图形。首先是节点,然后是第一个节点到其他节点的线,然后是第二个节点到剩余节点的线,依此类推。所有这些步骤都适用于 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

您总是将计数器增加到插入多张幻灯片的值,因为幻灯片被“执行”了好几次。该类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}

在此处输入图片描述

相关内容