# Tikz and Beamer: How to fix coordinate system to be the same on each slide?

Is it possible to make the coordinate system to be fixed on several slides in a beamer presentation? So that each point with the same coordinates in different tikzpicture environments on different slides is in exactly the same position in the resulting PDF?

Example:

\documentclass{beamer}
\usepackage{tikz}

\begin{document}
\begin{frame}
\begin{tikzpicture}
\draw (0,0) circle (1cm);
\end{tikzpicture}
\end{frame}

\begin{frame}
\begin{tikzpicture}
\draw (0,0) circle (1cm);
\draw (2,2) circle (2cm);
\end{tikzpicture}
\end{frame}

\end{document}


How to modify this example, such that on both slides the circle at position (0,0) overlays?

• This is hard to answer without an example illustrating what you mean exactly. At any rate, you can always place your TikZ picture relative to anchors of the (current page) coordinate. – Herr K. Dec 9 '13 at 19:48
• possible duplicate of How can I fix jumping TikZ pictures in beamer? – Peter LeFanu Lumsdaine Dec 9 '13 at 19:53
• Peter LeFanu Lumsdaine: I don't think so, as I have different frame-ennvironments. So I cannot see how to make use of the answers of the denoted post. – Thomas W. Dec 9 '13 at 20:17
• You need to make sure that the tikzpicture occupies the same space (at least) vertically. This is achieved either by putting it in a box, or adding phantom elements in your tikzpicture to match them (in this case, adding something to the first tikzpicture). – Werner Dec 9 '13 at 20:23

you can set the overlay and remember picture option to the tikzpicture:

\documentclass{beamer}
\usepackage{tikz}

\begin{document}
\begin{frame}
\begin{tikzpicture}[overlay,remember picture]
\draw (0,0) circle (1cm);
\end{tikzpicture}
\end{frame}

\begin{frame}
\begin{tikzpicture}[overlay,remember picture]
\draw (0,0) circle (1cm);
\draw (2,2) circle (2cm);
\end{tikzpicture}
\end{frame}

\end{document}


With these options you have also access to the current page anchor, which allows for cool stuff like:

\documentclass{beamer}
\usepackage{tikz}

\begin{document}
\begin{frame}
\begin{tikzpicture}[overlay,remember picture,every node/.style={draw,minimum size=2.5cm,circle}]
\node [anchor=east] at (current page.east){};
\node [anchor=west] at (current page.west){};
\node [anchor=north] at (current page.north){};
\node [anchor=south] at (current page.south){};
\end{tikzpicture}
\end{frame}

\begin{frame}
\begin{tikzpicture}[overlay,remember picture,every node/.style={draw,minimum size=2.5cm,circle}]
\node [anchor=east] at (current page.east){};
\node [anchor=west] at (current page.west){};
\node [anchor=north] at (current page.north){};
\node [anchor=south] at (current page.south){};
\node at (current page.center){};
\end{tikzpicture}
\end{frame}


You can also fix the position using the textpos package and textblock* environment. This allows you to fix anything to a fixed coordinate position of the slide.

Do not that this works as an overlay and will therefore not interact typesetting-wise with stuff outside in inserted textblock.

A small working example:

\documentclass{beamer}
\usepackage[absolute,overlay]{textpos}
\usepackage{tikz}

\begin{document}
\begin{frame}{Frame Title}

\begin{textblock*}{.0\textwidth}(13mm,77mm)

\begin{tikzpicture}
\node (x) {Here's a node};
\end{tikzpicture}

\end{textblock*}

\end{frame}
\end{document}