tikz 库“overlay-beamer-styles”是否支持多种填充颜色?

tikz 库“overlay-beamer-styles”是否支持多种填充颜色?

下面的图像展示了第 2 帧中出现的一个空心圆圈。然后圆圈的颜色在蓝色和红色之间切换。

在此处输入图片描述

此演示文稿是使用以下代码制作的。

\documentclass{beamer}

\usepackage{tikz}
\usetikzlibrary{overlay-beamer-styles}

\begin{document}

\begin{frame}{Frame \thepage}

  \[
    \begin{tikzpicture}

      \draw[
      , ultra thick
      , visible on=<{2,3,5}>
      , fill=blue
      , fill on=<{3,5}>
      ] circle (2cm);

      \draw[
      , ultra thick
      , visible on=<{4, 6}>
      , fill=red
      , fill on=<{4, 6}>
      ] circle (2cm);

    \end{tikzpicture}
  \]

\end{frame}

\end{document}

这里,蓝色圆圈与红色圆圈是分开定义的。我很好奇是否可以通过将所有内容合并为一个\draw命令来简化此代码。我试过这样做

  \draw[
  , ultra thick
  , visible on=<{2-}>
  , fill=blue
  , fill on=<{3,5}>
  , fill=red
  , fill on=<{4, 6}>
  ] circle (2cm);

但这忽略了所有蓝色圆圈:

在此处输入图片描述

我还能做什么吗?

答案1

alt是的,使用密钥(源自的beamer命令)可以实现这一点\alt

\documentclass{beamer}

\usepackage{tikz}
\usetikzlibrary{overlay-beamer-styles}

\begin{document}

\begin{frame}{Frame \thepage}

  \[
    \begin{tikzpicture}

      \draw[
      , ultra thick
      , visible on=<{2-6}>
      ,alt=<{3,5}>{fill=blue}{fill=red,fill on=<{4, 6}>}
      ] circle[radius=2cm];

    \end{tikzpicture}
  \]

\end{frame}

\end{document}

在此处输入图片描述

答案2

一种方法是使用preactionpostaction选项:

\documentclass{beamer}
\usepackage{tikz}
\usetikzlibrary{overlay-beamer-styles}

\begin{document}
\begin{frame}{Frame \thepage}

    \[
\begin{tikzpicture}[ultra thick]
  \draw[preaction={fill=blue, visible on=<{3,5}>},
        visible on=<2->,
        postaction={fill=red, visible on=<{4,6}>}
       ] circle (2cm);
\end{tikzpicture}
    \]
\end{frame}

\end{document}

相关内容