# Is there a nice solution to get a “presenter mode” for Latex presentations?

I really like the way Keynote and MS Office (and also OpenOffice&similar) support a presentation mode that displays the current slide, the next (and maybe previous) slide, the elapsed and current time, and also any notes attached to the slides on one screen and the presentation itself on the beamer/second screen.

It enables me to give good, professional presentations without having to know everything by heart (I suck at that).

I found a project which does something similar, but I am looking for alternatives, especially OS-independent would be great. Not having to create 3 different PDFs is a boon.

Any hints?

-
Beamer can place nodes at the second screen if your PDF viewer and OS, I think, supports that. Displaying the time might be possible using a javascript powered text field. See Having a LaTeX PDF display the date the document was printed, not compiled to get you started. – Martin Scharrer Jun 28 '11 at 10:00
There is no Windows alternative mentioned in the answers. Is there none? – BandGap Oct 11 '13 at 12:25
@BandGap maybe freakazoid.teamblind.de/2011/03/30/… is what you're looking for? – John Feb 6 '14 at 21:13
I think the best solution is a printout with notes and a watch. – Z.H. Jun 1 '15 at 1:55
Thanks Z.H. - but that's not what I asked for. I have a specific style of presentation in mind, and messing around with a sheet of paper does not fit that. – brandstaetter Jun 1 '15 at 7:15

I think pympress comes somewhat close to what you want; it does not show the notes though. As it is written in python, I'd assume that you can run it on any platform -- I know it works under Linux.

If you want to add support for notes, I'd try to use

\documentclass{beamer}
\usepackage{pgfpages}
\setbeamertemplate{note page}[plain]
\setbeameroption{show notes on second screen=right}

\begin{document}
\begin{frame}{test}
hello
\note{say "hello" now}
\end{frame}
\end{document}


and then modify pympress to render only the left or the right half of the pdf in the different windows.

-
That looks interesting, I'll take a look and test it with windows too. Thanks! – brandstaetter Jun 29 '11 at 10:11
There is no new developement for this program. Still working though. – BandGap Oct 11 '13 at 12:24
This now works by default (at least with the git version today, not the stable one), and you can switch between behaviours by typing 'n' – Cimbali Jan 19 '15 at 19:45

Another Mac-specific (well, not really OS-independent) solution is implemented by the Skim PDF viewer, which provides an option to display a second PDF file inside another Window page-synchronously with the first one. This comes quite handy to show beamer notes on a second screen (regardless of its dimensions and layout).

One prerequisite for this to work is, however, that your notes.pdf actually has the same number of pages than slides.pdf. With beamer this can be somewhat tricky to achieve, as beamer ships out a notes page only for slides that actually do have notes and only once for frames that use allowframebreaks. I had asked about a solution to this problem in this question, the answer given by Ulrich Schwarz solves it nicely.

-
Thanks, didn't know that about Skim. Okay, so now I have a solution on my Mac at least, great! – brandstaetter Jun 29 '11 at 7:53

If you like the presenter display in Keynote, you can use the free tool PDF to Keynote to convert your PDF slides to Keynote format, and then use Keynote to give the presentation.

-
Cool little app, Thanks! – brandstaetter Jun 30 '11 at 7:04

Impressive gives you at least the elapsed time, and a progress bar which indicates how much time you have left. These are also visible to the audience.

-
Thanks! Not quite what I was looking for (that solution would take away too much of my seemingly awesome ;) presentation skills), but nice to know. – brandstaetter Jun 28 '11 at 11:14

on the mac, you can go with osx-presentation. (full disclaimer: i am the author).

from the website:

Présentation.app main feature is its presenter view on the main display that shows the current and next slides, and its main view on the secondary display (if present) that shows the current slide. It also has some more or less original features:

• a clock that displays the current time or a (countdown) timer;
• the content of PDF notes are displayed below the current slide;
• external links can be followed, and the main view then toggles to a full screen web view or a video view if the links leads to a video on the local file system;
• the app is in fact a python script that can be used from the command line.
-
Can you please improve your answer by showing how it works? – ienissei Nov 30 '14 at 12:48

As mentionned in elsewhere, I believe that the pdfpc solution is much better than pympress, mainly because it can display notes, but also video and much more. It seems to be better maintained as well.

However, it is a fork of the project mentionned in the original question (pdf-presenter-console, now mostly dead) which means it is pretty Linux-specific (it depends on GTK) for now, although it could probably be ported to Mac and Windows eventually. To be fair, pympress is also linux-specific.

-

On a Mac you can use Splitshow.

A tool for the dual-head presentation of PDF slides on Mac OS X, most likely using a laptop and a projector. The project arose out of the need to correctly project slides created with LaTeX's beamer class.

This project has been imported from the original, discotinued Google Code project (http://splitshow.googlecode.com). The aim is to create an up-to-date version of the SplitShow program with the same features and to extend it later on.

-
Looks like a nice project, too bad it's dead. – brandstaetter Jun 29 '11 at 7:54
It has been revived on github, and it is the only project I 've found to be working for OSX. The latest alpha version works fine on Yosemite, and it seems the guy is porting it for El Capitan. – Paschalis Dec 22 '15 at 9:32

For Linux I found dspdfviewer to be useful.

This is a simple viewer for latex-beamer presentations that are built with the show notes on second screen option of latex-beamer.

It will take your PDF file, split it in a left and right half and render the two halves individually to the screens.

-
Welcome to TeX.SX! You may have a look on our starter guide. – Peter Jansson May 25 '13 at 18:20
Since impressive stopped working correctly for me, this is the best solution available, even better than impressive. – YuppieNetworking Nov 22 '13 at 14:57

On GNU/Linux, at least, Slider might be a good option. (I've no idea if it would work on e.g. a Mac.)

-

For OSX, look at osx-adobe-beamer. It wraps Adobe Reader so it shows the notes and slides on different pages.

It has the following features

• video/animation
• notes for current slide
• on notes, shows current slide
• timer (i.e., "15 minutes remaining")
• next slide

\usepackage[slides]{osx-adobe-beamer}
% or


and copy the resulting PDF so you can display both at once. Open them both in Adobe Reader and run the command

python /path/to/present.py


And you're all set! If this application fails on you during a presentation, you can still survive because it only maps your keymaps to both Adobe Reader windows.

(disclaimer: I am the developer -- a quick weekend hack!)

-

I use Windows with many animations in my PDFs, and only Adobe Acrobat (Reader) seems to be able to play them. I've been using AutoHotKey to remap my keyboard buttons to control my two Adobe windows simultaneously. It's a bit of a hack job, and there's no timer, but it works. I use the standard beamer notes pages, but you could be more fancy to show upcoming previews.

Here's my AHK script. It assumes that the focus is on the notes pdf window. [Up]/[Down] controls the notes (window mode on screen one), and [Left]/[Right] controls the presentation (full screen on screen two). [Space] advances both simultaneously by one page. It blocks [Space] in other programs whilst the script's running, but it prevents infinite loops. The script is easily changed to access all open PDFs at once (use 'Adobe' instead of 'Presentation_*.pdf'), but I find it to be more stable if each file is named explicitly.

Up::
IfWinActive, Presentation_Notes.pdf ;
{
Send {PgUp}
}
Else
{
IfWinActive, Presentation_Presentation ;
{
CoordMode, Mouse, Screen
WinGet, active_id, ID, A
WinGet, id, list, Presentation_Notes.pdf,, Program Manager
Loop, %id%
{
this_id := id%A_Index%
WinActivate, ahk_id %this_id%
Send {PgUp}
}
WinActivate, ahk_id %active_id%
}
Else
{
Send {Up}
}
}
return

Down::
IfWinActive, Presentation_Notes.pdf ;
{
Send {PgDn}
}
Else
{
IfWinActive, Presentation_Presentation.pdf ;
{
CoordMode, Mouse, Screen
WinGet, active_id, ID, A
WinGet, id, list, Presentation_Notes.pdf,, Program Manager
Loop, %id%
{
this_id := id%A_Index%
WinActivate, ahk_id %this_id%
Send {PgDn}
}
WinActivate, ahk_id %active_id%
}
Else
{
Send {Down}
}
}
return

Right::
SetTitleMatchMode, 2
IfWinActive, Presentation_Notes.pdf ;
{
CoordMode, Mouse, Screen
WinGet, active_id, ID, A
WinGet, id, list, Presentation_Presentation.pdf,, Program Manager
Loop, %id%
{
this_id := id%A_Index%
WinActivate, ahk_id %this_id%
Send {PgDn}
}
WinActivate, ahk_id %active_id%
}
Else
{
Send {Right}
}
return

Left::
SetTitleMatchMode, 2
IfWinActive, Presentation_Notes.pdf ;
{
CoordMode, Mouse, Screen
WinGet, active_id, ID, A
WinGet, id, list, Presentation_Presentation.pdf,, Program Manager
Loop, %id%
{
this_id := id%A_Index%
WinActivate, ahk_id %this_id%
Send {PgUp}
}
WinActivate, ahk_id %active_id%
}
Else
{
Send {Left}
}
return

Space::
SetTitleMatchMode, 2
IfWinActive, Presentation_Notes.pdf ;
{
CoordMode, Mouse, Screen
WinGet, active_id, ID, A
WinGet, id, list, Presentation_Presentation.pdf,, Program Manager
Loop, %id%
{
this_id := id%A_Index%
WinActivate, ahk_id %this_id%
Send {PgDn}
}
WinActivate, ahk_id %active_id%
Send {PgDn}
}
return

-

On GNU/Linux (KDE), also qpdfpresenterconsole available on SourceForge and GitHub (last update till this edit: 2012-03-24).