
Ich verwende es, Tikz
um ein Flussdiagramm für eine Beamer
Präsentation zu erstellen. Ich habe es geschafft, Beamer
jedes Element im Flussdiagramm einzeln anzuzeigen, aber ich möchte einen Knoten anzeigen und dann ausblenden können. Gibt es eine Möglichkeit, dies zu tun?
Hier ist mein Code:
\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}
Ich möchte Knoten(Bild1)erscheinen und dann verschwinden, wenn Knoten(NormCCFs)erscheint.
Irgendwelche Abnehmer?
Antwort1
Sie können die Tatsache nutzen, dass \node
und \path
überlagerungsfähig sind, sodass Sie die Elemente auf der/den gewünschten Folie(n) anzeigen können:
\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}
Übrigens: Durch die Tatsache, dass TikZ-Befehle Overlay-fähig sind, oder durch die Verwendung von \onslide<>{...}
oder \only<...>{}
erhalten Sie (falls erforderlich) eine bessere Kontrolle als durch die Verwendung einfacher \pause
Befehle.
Hier ist der Code jetzt, aber unter Verwendung von \onslide
Spezifikationen; ich habe auch die alte \tikzstyle-Syntax durch die neue \tikzset-Syntax ersetzt:
\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}
Die Linie
\PassOptionsToPackage{demo}{graphicx}
ersetzt einfach die tatsächlichen Bilder durch schwarze Rechtecke.nichtVerwenden Sie diese Zeile in Ihrem eigentlichen Code.