因此,在我的 Beamer 幻灯片中,我使用这在不同的幻灯片上突出显示 tikz 图形的各个部分。
\documentclass{beamer}
\usepackage{tikz}
\usetikzlibrary{positioning,automata}
\tikzset{onslide/.code args={<#1>#2}{%
\only<#1>{\pgfkeysalso{#2}}
}}
\tikzstyle{highlight}=[red,ultra thick]
\begin{document}
\begin{frame}
\begin{figure}
\centering
\begin{tikzpicture}[->]
\node[state, onslide={<1>{highlight}}, initial by arrow, initial text={}, initial where=above, label={above left:\(\varnothing\)}] (1) {\(s_1\)};
\node[state, onslide=<1>{highlight}, label={above left:\(\{a\}\)}] (2) [right= of 1] {\(s_2\)};
\draw[onslide={<2>{highlight}}] (1) edge node [above] {0.3} (2);
\end{tikzpicture}
\end{figure}
\end{frame}
\end{document}
笔记:我正在使用 tikz 库positioning
和automata
。
它可以很好地突出显示节点和边缘。但是,在下一张幻灯片中,我希望能够突出显示:
- 各州的标签
- 边缘的标签(最好不要在第二张幻灯片上突出显示它们)
- (可选)初始箭头
s_1
我尝试插入onslide=...
到label={...}
各州,但出现以下错误:
! Package PGF Math Error: Unknown function `onslide' (in 'onslide').
答案1
我不完全确定您想要突出显示哪些元素,但如果您只想更改字体颜色S_1
等,请使用\textcolor<overlay>{color}{text}
。例如,\textcolor<2>{green}{\(\varnothing\)}
将第二张幻灯片上的颜色更改为绿色。
\documentclass{beamer}
\usepackage{tikz}
\usetikzlibrary{positioning,automata}
\tikzset{onslide/.code args={<#1>#2}{%
\only<#1>{\pgfkeysalso{#2}}
}}
\tikzset{highlight/.style={red,ultra thick}}
\begin{document}
\begin{frame}
\begin{figure}
\centering
\begin{tikzpicture}[->]
\node[state, onslide={<1>{highlight}}, initial by arrow, initial text={}, initial where=above, label={above left:\textcolor<2>{green}{\(\varnothing\)}}] (1) {\(s_1\)};
\node[state, onslide=<1>{highlight}, label={above left:\(\{a\}\)}] (2) [right= of 1] {\(s_2\)};
\draw[onslide={<2>{highlight}}] (1) edge node [above] {0.3} (2);
\end{tikzpicture}
\end{figure}
\end{frame}
\end{document}