使用 TiKZ-graphdrawing 与 beamer 的覆盖规范

使用 TiKZ-graphdrawing 与 beamer 的覆盖规范

我想逐步开发在 Beamer 演示期间创建的图表。以下是 MWE:

\documentclass{beamer}

\usepackage{tikz}

\usetikzlibrary{graphs, graphdrawing}
\usegdlibrary{layered}

\begin{document}
\begin{frame}
    \begin{tikzpicture}
        \graph[layered layout]
        {%
            "1" -- {"2", "3"},

            {"2", "3"}  -- "4",
            % \only<2->{{"2", "3"}  -- "4",}
            {"2", "3"} -- "5",
            % \only<3->{{"2", "3"} -- "5",}

            {"4", "5"} -- "6",
            % \only<4->{{"4", "5"} -- "6",}

        };
    \end{tikzpicture}
\end{frame}
\end{document}

注释行表明了我的意图,但它们导致了错误。

非常感谢您的帮助。

答案1

您可以使用该overlay-beamer-styles库:

% !TeX TS-program = lualatex

\documentclass{beamer}

\usepackage{tikz}

\usetikzlibrary{graphs, graphdrawing}
\usegdlibrary{layered}
\usetikzlibrary{overlay-beamer-styles}

\begin{document}

\begin{frame}
    \begin{tikzpicture}
        \graph[layered layout]
        {%
            "1" -- {"2", "3"},

            {"2", "3"} -- [draw on=<2->] "\alt<2->{4}{\phantom{4}}",
            
            {"2", "3"} -- [draw on=<3->] "\alt<3->{5}{\phantom{5}}",
            
            {"\alt<2->{4}{\phantom{4}}", "\alt<3->{5}{\phantom{5}}"} -- [draw on=<4->] "\alt<4->{6}{\phantom{6}}",

        };
    \end{tikzpicture}
\end{frame}
\end{document}

在此处输入图片描述

答案2

samcarter 已经介绍了使用该库的好想法overlay-beamer-styles

他们使用\alt宏的另一种方法是使用visible on此库提供的选项。它本质上将选项opacity和设置text opacity为零,这意味着您不会得到任何布局偏移,甚至可以保留节点名称。您需要将此选项同时应用于边和节点。

\documentclass{beamer}
\usepackage{tikz}
\usetikzlibrary{graphs, graphdrawing}
\usegdlibrary{layered}
\usetikzlibrary{overlay-beamer-styles}

\begin{document}
\begin{frame}
    \begin{tikzpicture}
        \graph[layered layout]
        {%
            "1" -- {"2", "3"},
            
            {"2", "3"} -- [visible on=<2->] "4" [visible on=<2->],

            {"2", "3"} -- [visible on=<3->] "5" [visible on=<3->],

            {"4", "5"} -- [visible on=<4->] "6" [visible on=<4->],
        };
    \end{tikzpicture}
\end{frame}

\end{document}

在此处输入图片描述

相关内容