# LaTeX article to Prezi-style zooming dia -presention?

Prezi is a proprietary software here.

I found beamer, powerdot, HA -prosper, prosper, slides and seminar. Which one or something similar should I use to create something like Prezi-style zooming dia -presentation?

• I doubt that this is at all possible. – Caramdir Mar 31 '12 at 16:55
• I do think it is possible in theory. But I doubt if it has been done before. It would require an overkill of Ti<em>k</em>Z, hyperref and PDF-animations. So in practice, it might be faster to write your own Prezi clone. Actually, if this is going to be possible, in an easy way, it will probably be ConTeXt. – jmc Mar 31 '12 at 17:16
• @diabonas Would you make your comment into an answer? – egreg May 6 '12 at 12:11
• @egreg Sure, done :-) – diabonas May 7 '12 at 14:59
• A similar open-source tool (in JavaScript) to prezi is impress.js: github.com/impress/impress.js (and I see that somebody mentioned dizzy.js, also a JavaScript tool for an in-browser presentation). – Jakub Narębski Jul 5 '16 at 8:39

It should be possible to reproduce the canvas that holds the presentation content, e. g. with PGF/TikZ. However, I don't see any chance to implement the all-essential pan and zoom features: The output formats of LaTeX, PDF and DVI, are simply not built for such tasks. You'd need an external tool to implement these features, which doesn't exist to my knowledge and would take a considerable amount of time to develop (after all, there are very few alternative programs to produce presentations like the ones created with Prezi at all).

A glimmer of hope could be dizzy.js: It's a small library that allows you to create Prezi-like presentations with your browser using JavaScript and SVG. As TikZ is able to produce SVG output, you could try creating your presentation with TikZ, export it to SVG and use the resulting file as an input for dizzy.js. However, this isn't straightforward, as dizzy.js heavily relies on SVG groups and conflicts with the files produced by TikZ.

• Been thinking about this too… The problem is to find a PDF viewer with smooth panning and zooming. Acrobat doesn't do that. What might be possible to implement is using (an extension of) beamer, pgf, etc. to produce a big PDF document, and then to use (an extension of) PDF.js to display it and do the smooth panning and zooming, inside a web browser. – mabartibin Mar 25 '15 at 13:09

You should try impress.js

It’s a presentation tool inspired by the idea behind prezi.com and based on the power of CSS3 transforms and transitions in modern browsers.

You could put images, itemize environments etc. into zoom boxes, which you distribute on the page of a single-page document. A \zoombox macro is defined here: https://tex.stackexchange.com/a/12293.

Another rather humble approach could be a slide with Thumbnails that are linked to the full-size slides. An embedded "back" button allows jumping back to the thumbnail slide.

Use pdflatex --shell-escape (twice, at least) to compile the code. It is necessary to make a copy of the current PDF for producing the thumbnails first, just before it gets overwritten again. In case of Windows, the copy command needs to be enabled at the beginning of the file:

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\def\copyCmd{cp} %unix, osx
%\def\copyCmd{echo f | xcopy} %windows
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%copy existing PDF
\IfFileExists{\jobname.pdf}{
\immediate\write18{\copyCmd\space \jobname.pdf \jobname-thumbs.pdf}
}

%generate thumbnails of slides
\def\numOfSlides{0}
\RequirePackage{xsavebox,graphicx,multido,calc,atbegshi}
\IfFileExists{\jobname-thumbs.pdf}{%
\pdfximage{\jobname-thumbs.pdf}% get number of slides
\edef\numOfSlides{\the\pdflastximagepages}%
\multido{\i=1+1}{\numOfSlides}{%
\xsavebox{thumb-\i}{\includegraphics[page=\i]{\jobname-thumbs}}
}
}{}

% insert link destinations and "back" button
\AtBeginShipout{%
\AtBeginShipoutUpperLeftForeground{%
\hypertarget{slide-\thepage}{}%
}%
}

\let\frameOrig\frame %draws frame around its content
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\documentclass{beamer}
\usepackage{fontawesome}

\title{Almost Like Prezi}
\author{John Doe}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{document}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\frame{\titlepage}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% slide with clickable thumbnails
\AtBeginShipoutNext{%
\AtBeginShipoutUpperLeftForeground{\hypertarget{thumbnails}{}}%
}
\begin{frame}{Thumbnails}
\lineskip=0.8ex
\multido{\i=1+1}{\numOfSlides}{%
}
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% create dummmy slides
\multido{\i=1+1}{20}{
\begin{frame}{Slide \i}
\resizebox{\linewidth}{!}{\Huge\fbox{\makebox[\widthof{Slide 00}][c]{Slide\hfill\i}}}
\end{frame}
}

\begin{frame}
\resizebox{\linewidth}{!}{\Huge\fbox{Thank you!}}
\end{frame}

\end{document}


There is also lecturer package for cre­ating slides for on-screen pre­sen­ta­tions based on PDF fea­tures; it requires sufficiently capable PDF viewer (see for example its visual demo in Adobe Reader). I don't think it implements the "big canvas" UI by default, but it might be possible; it certainly implements very nice slide transitions.

Found via comment by @Ignasi on "How to create non linear presentation using beamer or prosper" question.