
Ich habe eine Abfolge von Tikz-Bildern, die alle ähnlich sind, aber leicht unterschiedliche Größen haben (es stehen Dinge hervor). Ich möchte sie aber alle am gleichen Punkt des Tikz-Bildes ausgerichtet haben.
Ich hätte gedacht, dass das Festlegen einer Grundlinie für alle diesen Koordinatenpunkt ausrichten würde, aber sie „wackeln“ immer noch
Hier ist ein MWE. Ich möchte, dass der offene Kreisknoten bei (0,0) für jede Überlagerung an derselben Stelle auf der Seite ist. Aber es scheint, als würde die Begrenzungsbox für jedes Tikz-Bild zentriert; die Größe der Box ändert sich aufgrund des großen grünen Knotens. Ich dachte, die baseline
Option hätte dies bewirkt, aber das tut sie nicht.
\documentclass{beamer}
\usepackage{tikz}
\begin{document}
\newcommand\grf[1]{
\begin{tikzpicture}%[baseline={(0,0)}]
\node[circle,draw] (0) at (0,0) {} ; % <-- this circle node should not move
\node[circle,fill] (1) at (+1,+1) {} ;
\node[circle,fill] (2) at (+1,-1) {} ;
\node[circle,fill] (3) at (-1,-1) {} ;
\node[circle,fill] (4) at (-1,+1) {} ;
\node[circle,fill,green,inner sep=1em] at (#1) {} ;
\end{tikzpicture}
}
\begin{frame}
\only<1>{\grf{1}}%
\only<2>{\grf{2}}%
\only<3>{\grf{3}}%
\only<4>{\grf{4}}%
\end{frame}
\end{document}
Antwort1
Durch das Festlegen der Grundlinie werden Sprünge im Allgemeinen nicht vermieden, da sich der Begrenzungsrahmen immer noch ändern kann. Eine sehr schnelle Lösung besteht darin, den zusätzlichen Knoten durch Hinzufügen des Schlüssels aus dem Begrenzungsrahmen auszuschließen overlay
.
\documentclass{beamer}
\usepackage{tikz}
\begin{document}
\newcommand\grf[1]{
\begin{tikzpicture}%[baseline={(0,0)}]
\node[circle,draw] (0) at (0,0) {} ; % <-- this circle node should not move
\node[circle,fill] (1) at (+1,+1) {} ;
\node[circle,fill] (2) at (+1,-1) {} ;
\node[circle,fill] (3) at (-1,-1) {} ;
\node[circle,fill] (4) at (-1,+1) {} ;
\node[circle,fill,green,inner sep=1em,overlay] at (#1) {} ;
\end{tikzpicture}
}
\begin{frame}
\only<1>{\grf{1}}%
\only<2>{\grf{2}}%
\only<3>{\grf{3}}%
\only<4>{\grf{4}}%
\end{frame}
\end{document}
Im Allgemeinen ist das TikDie Z-Bibliothek overlay-beamer-styles
bietet viele Möglichkeiten, Sprünge zu vermeiden. Hier könnte man verwenden
\documentclass{beamer}
\usepackage{tikz}
\usetikzlibrary{overlay-beamer-styles}
\begin{document}
\begin{frame}
\begin{tikzpicture}%[baseline={(0,0)}]
\node[circle,draw] (0) at (0,0) {} ; % <-- this circle node should not move
\node[circle,fill] (1) at (+1,+1) {} ;
\node[circle,fill] (2) at (+1,-1) {} ;
\node[circle,fill] (3) at (-1,-1) {} ;
\node[circle,fill] (4) at (-1,+1) {} ;
\path foreach \X in {1,...,4}
{node[circle,fill,green,inner sep=1em,visible on=<\X>] at (\X) {} };
\end{tikzpicture}
\end{frame}
\end{document}