Скрыть узел Tikz в Beamer

Скрыть узел Tikz в Beamer

Я использую Tikzдля создания блок-схемы для Beamerпрезентации. Мне удалось Beamerраскрыть каждый элемент блок-схемы по одному, но я хотел бы иметь возможность показать один узел, а затем скрыть его. Есть ли способ сделать это?

Вот мой код:

    \begin{frame}{The Detection Method}
    \tikzstyle{LargeBlock} = [rectangle, draw, fill=blue!20, text width=10em, text badly centered, rounded corners]
    \tikzstyle{decision} = [diamond, draw, fill=red!20, text badly centered,text width=1.2cm]
    \tikzstyle{block} = [rectangle, draw, fill=blue!20, text width=5em, text badly centered, rounded corners, minimum height=1em]
    \tikzstyle{ImgBlock} = [rectangle, draw]
    \tikzstyle{line} = [draw, -latex']
    \tikzstyle{cloud} = [draw, ellipse,fill=red!20, minimum height=1em]
    \tikzstyle{EmptyAnchor} = [ellipse,minimum height=1em]
    \begin{tikzpicture}[node distance = 1cm, auto]
        \pause{}
        % Step 1
        \node [LargeBlock, anchor=north]                            (init)          {Simulated Planet + Star CCFs};\pause{}
        % Step 2
        \node [decision, right=1 cm of init]                        (build)         {$\sum CCFs$};
        \path [line] (init)         --                              (build);        \pause{}
        % Step 3
        \node [block,   below=0.5 cm of build]                      (template)      {Star Template};
        \path [line] (build)        --                              (template);     \pause{}
        % Step 4
        \node [decision, below=0.5 cm of init]                      (normalise)     {$\frac{CCFs}{Template}$};
        \path [line] (init)         --                              (normalise);
        \path [line] (template)     --                              (normalise);    \pause{} 
        % Step 
        \node [EmptyAnchor, below=1.5 cm of normalise]              (empty0)        {};
        \node [EmptyAnchor, right=2.5 cm of empty0]                 (empty3)        {};
        \node [ImgBlock, right=5 cm of empty0]                      (img1)          {{\pgftext{\includegraphics[width=4.5cm,page=6]{./figures/Jupiter_3days_EELT.pdf}}}};  
        \path [line,dashed] (normalise)     |-                              (empty3);       \pause{}
        % Step 5
        \path [line] (init)         --                              (build);    
        \node [LargeBlock, below=0.5 cm of normalise]               (NormCCFs)      {Normalized CCFs};
        \path [line] (normalise)    --                              (NormCCFs);     \pause{}
        % Step 6
        \node [decision, below=0.5 cm of NormCCFs]                  (stack)         {$stack$ $CCFs$};    
        \node [EmptyAnchor, below=0.5 cm of NormCCFs]               (empty1)        {};
        \path [line] (NormCCFs)     --  node[color=red]{Correct Planet RV}      (stack);        \pause{}
        % Step 7
        \node [EmptyAnchor, right=2 cm of stack]                    (empty2)        {};
        \node [ImgBlock, right=5 cm of empty1]                      (stop)          {{\pgftext{\includegraphics[width=4.5cm,page=8]{./figures/Jupiter_3days_EELT.pdf}}}};
        \path [line,dashed] (stack)     --                                  (empty2);
    \end{tikzpicture}
\end{frame}

Я хочу узел(img1)появляться и затем исчезать, когда узел(NormCCF)появляется.

Есть желающие?

решение1

Вы можете использовать тот факт, что \nodeи \pathподдерживают наложение, чтобы можно было отображать элементы на нужном(ых) слайде(ах):

\PassOptionsToPackage{demo}{graphicx}
\documentclass{beamer}
\usepackage{tikz}
\usetikzlibrary{shapes.geometric,positioning,arrows}

\begin{document}

   \begin{frame}{The Detection Method}
    \tikzstyle{LargeBlock} = [rectangle, draw, fill=blue!20, text width=10em, text badly centered, rounded corners]
    \tikzstyle{decision} = [diamond, draw, fill=red!20, text badly centered,text width=1.2cm]
    \tikzstyle{block} = [rectangle, draw, fill=blue!20, text width=5em, text badly centered, rounded corners, minimum height=1em]
    \tikzstyle{ImgBlock} = [rectangle, draw]
    \tikzstyle{line} = [draw, -latex']
    \tikzstyle{cloud} = [draw, ellipse,fill=red!20, minimum height=1em]
    \tikzstyle{EmptyAnchor} = [ellipse,minimum height=1em]
    \begin{tikzpicture}[node distance = 1cm, auto]
        \pause{}
        % Step 1
        \node [LargeBlock, anchor=north]                            (init)          {Simulated Planet + Star CCFs};\pause{}
        % Step 2
        \node [decision, right=1 cm of init]                        (build)         {$\sum CCFs$};
        \path [line] (init)         --                              (build);        \pause{}
        % Step 3
        \node [block,   below=0.5 cm of build]                      (template)      {Star Template};
        \path [line] (build)        --                              (template);     \pause{}
        % Step 4
        \node [decision, below=0.5 cm of init]                      (normalise)     {$\frac{CCFs}{Template}$};
        \path [line] (init)         --                              (normalise);
        \path [line] (template)     --                              (normalise);    \pause{} 
        % Step 
        \node [EmptyAnchor, below=1.5 cm of normalise]              (empty0)        {};
        \node [EmptyAnchor, right=2.5 cm of empty0]                 (empty3)        {};
        \node<6> [ImgBlock, right=5 cm of empty0]                      (img1)          {{\pgftext{\includegraphics[width=4.5cm,page=6]{./figures/Jupiter_3days_EELT.pdf}}}};  
        \path<6> [line,dashed] (normalise)     |-                              (empty3);       \pause{}
        % Step 5
        \path [line] (init)         --                              (build);    
        \node [LargeBlock, below=0.5 cm of normalise]               (NormCCFs)      {Normalized CCFs};
        \path [line] (normalise)    --                              (NormCCFs);     \pause{}
        % Step 6
        \node [decision, below=0.5 cm of NormCCFs]                  (stack)         {$stack$ $CCFs$};    
        \node [EmptyAnchor, below=0.5 cm of NormCCFs]               (empty1)        {};
        \path [line] (NormCCFs)     --  node[color=red]{Correct Planet RV}      (stack);        \pause{}
        % Step 7
        \node [EmptyAnchor, right=2 cm of stack]                    (empty2)        {};
        \node [ImgBlock, right=5 cm of empty1]                      (stop)          {{\pgftext{\includegraphics[width=4.5cm,page=8]{./figures/Jupiter_3days_EELT.pdf}}}};
        \path [line,dashed] (stack)     --                                  (empty2);
    \end{tikzpicture}
\end{frame}

\end{document}

введите описание изображения здесь

Кстати, используя тот факт, что команды TikZ поддерживают наложение, или используя \onslide<>{...}или , \only<...>{}вы можете получить лучший контроль (при необходимости), чем при использовании простых \pauseкоманд.

Вот код сейчас, но с использованием \onslideспецификаций; я также заменил старый синтаксис \tikzstyle на новый синтаксис \tikzset:

\PassOptionsToPackage{demo}{graphicx}
\documentclass{beamer}
\usepackage{tikz}
\usetikzlibrary{shapes.geometric,positioning,arrows}

\begin{document}

   \begin{frame}{The Detection Method}
\tikzset{
LargeBlock/.style={rectangle, draw, fill=blue!20, text width=10em, text badly centered, rounded corners},
decision/.style = {diamond, draw, fill=red!20, text badly centered,text width=1.2cm},
block/.style = {rectangle, draw, fill=blue!20, text width=5em, text badly centered, rounded corners, minimum height=1em},
ImgBlock/.style = {rectangle, draw},
line/.style = {draw, -latex'},
cloud/.style = {draw, ellipse,fill=red!20, minimum height=1em},
EmptyAnchor/.style = {ellipse,minimum height=1em}
}
    \begin{tikzpicture}[node distance = 1cm, auto]
        % Step 1
        \node [LargeBlock, anchor=north]                            (init)          {Simulated Planet + Star CCFs};\pause{}
        % Step 2
\onslide<+->{\node [decision, right=1 cm of init]                        (build)         {$\sum CCFs$};
        \path [line] (init)         --                              (build);  
}
        % Step 3
\onslide<+->{\node [block,   below=0.5 cm of build]                      (template)      {Star Template};
        \path [line] (build)        --                              (template);
}
        % Step 4
\onslide<+->{\node [decision, below=0.5 cm of init]                      (normalise)     {$\frac{CCFs}{Template}$};
        \path [line] (init)         --                              (normalise);
        \path [line] (template)     --                              (normalise);
}
\onslide<+->{\node [EmptyAnchor, below=1.5 cm of normalise]              (empty0)        {};
        \node [EmptyAnchor, right=2.5 cm of empty0]                 (empty3)        {};
}
\onslide<+>{\node [ImgBlock, right=5 cm of empty0]                      (img1)          {{\pgftext{\includegraphics[width=4.5cm,page=6]{./figures/Jupiter_3days_EELT.pdf}}}};  
        \path [line,dashed] (normalise)     |-                              (empty3);
}
        % Step 5
\onslide<+->{\path [line] (init)         --                              (build);    
        \node [LargeBlock, below=0.5 cm of normalise]               (NormCCFs)      {Normalized CCFs};
        \path [line] (normalise)    --                              (NormCCFs);
}
        % Step 6
\onslide<+->{\node [decision, below=0.5 cm of NormCCFs]                  (stack)         {$stack$ $CCFs$};    
        \node [EmptyAnchor, below=0.5 cm of NormCCFs]               (empty1)        {};
        \path [line] (NormCCFs)     --  node[color=red]{Correct Planet RV}      (stack);
}
        % Step 7
\onslide<+->{\node [EmptyAnchor, right=2 cm of stack]                    (empty2)        {};
        \node [ImgBlock, right=5 cm of empty1]                      (stop)          {{\pgftext{\includegraphics[width=4.5cm,page=8]{./figures/Jupiter_3days_EELT.pdf}}}};
        \path [line,dashed] (stack)     --                                  (empty2);
}
    \end{tikzpicture}
\end{frame}

\end{document}

Линия

\PassOptionsToPackage{demo}{graphicx}

просто заменяет реальные изображения черными прямоугольниками.нетиспользуйте эту строку в вашем реальном коде.

Связанный контент