[Tex/LaTex] Beamer reflections with pgf/tikz

beamertikz-pgf

I want some nice reflections in my slides. Something like the ones seen in Jobs Keynotes.

Suppose you have multiple elements in the tikz picture and you want to reflect the whole thing with fading.

How can I achieve this using pgf/tikz?

Best Answer

I don't think that TikZ has support for copying contents. So the best idea I have is creating a command for the contents and then using that twice—the second time with appropriate transformations and fading applied. Here is a proof of concept:

\documentclass{article}
\pdfpageattr{/Group <</S /Transparency /I true /CS /DeviceRGB>>} 
\usepackage{tikz}
\usetikzlibrary{positioning,fadings}


\begin{document}
\newcommand\tikzcontents{
    \fill[red] (-1,-2) rectangle (1,0.5);
    \node (a) {first line};
    \node[below=of a] (b) {second line}; 
}

\begin{tikzpicture}
    \tikzcontents
    \begin{scope}[yshift=-4.5cm,yscale=-1,transform canvas,transform shape]
        \path[scope fading=south] (-1,-4) rectangle (1,0.5);
        \tikzcontents
    \end{scope}
\end{tikzpicture}
\end{document}

proof of concept

Be aware that not all pdf viewers have support for fadings. For example, Evince won't display them properly. The \pdfpageattr line is to work around a bug in Acrobat Reader (see “Using opacity in TikZ causes strange rendering in Acrobat”).