
我想用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}
答案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}