(Beamer)使用 onslide/only 突出显示节点/边缘标签

(Beamer)使用 onslide/only 突出显示节点/边缘标签

因此,在我的 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 库positioningautomata

它可以很好地突出显示节点和边缘。但是,在下一张幻灯片中,我希望能够突出显示:

  • 各州的标签
  • 边缘的标签(最好不要在第二张幻灯片上突出显示它们)
  • (可选)初始箭头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}

在此处输入图片描述

相关内容