«

»

KeyJNote

Now that I’m starting to think seriously about getting classes ready for the Fall, I had to consider whether I would incorporate my new LaTeX machinery into my teaching materials as well. This was originally the plan, but I have a lot of existing PowerPoint presentations, and I was a bit torn between moving to Keynote or moving to something LaTeX-based.

Generally, LaTeX presentations are prepared with something like beamer, which results in a PDF file. Then, you can page through the PDF file with any PDF reader.

However, it does lose some of the magic that you can get from Keynote, and even PowerPoint. Transitions are perhaps silly and distracting, but I haven’t completely sworn off of them.

There are some things you can do in Keynote that are simply impossible to do in anything PDF based, like path-based animation of elements. However, it is possible to embed a movie into a beamer-produced document, so at least some of that can be emulated. And I probably don’t want every minute of every lecture to be animated. (There’s an interesting blog post providing a way to style a beamer presentation like a Keynote presentation, and it also contains some information about embedding movies). See also the beamer documentation itself.

Supposing that I worked with beamer, it does have the ability to put transition instructions into PDF files, which Acrobat Reader should in principle be able to read and follow. Preview doesn’t seem to do much with them, and in fact, Preview doesn’t seem to work all that well for presentations anyway. Skim actually works pretty well, and you can set it up to use any of a set of Core Animation transitions (so pretty much whatever you can get from Keynote), but the downside is that it only allows you to set a single transition for the entire presentation. Acrobat actually has pretty crappy transitions from my initial tests of beamer output, I would rather just page through things with no transitions in Preview.

I was about to give up on this entirely and contemplate living without transitions, when I came across KeyJNote. This seems like exactly what I want. It is a PDF viewer designed for presenting, and allows specification of transitions on a slide-by-slide basis) as well as some other kind of neat things. It uses OpenGL (not Core Animation — it’s not a Mac program, but rather a Python program), but it looks like it will do nicely. It’s a bit slow to start up, but after that everything looks pretty smooth.

Update: KeyJNote has been discontinued under that name for legal reasons, see KeyJNote will be renamed. I’ll post again when I discover what its new home will be.

Installing it is kind of an adventure. I may not have picked the simplest route. However, let me put some of my notes here. So, you get KeyJNote first. It required Python. Leopard has Python. Great.

But it also requires a bunch of other things that are not all available by default. I used a combination of MacPorts and Fink and Python’s own EasyInstall installer to install. It needs PyOpenGL. I thought that Fink had this, it does have something called opengl-py25. I installed that, but after much compilation, it didn’t help. Perhaps it wasn’t in the search path, I don’t know. What did succeed for me was: easy_install PyOpenGL. It recommends xpdf. Sure, ok. I installed that with Fink (fink install xpdf), which triggered a pretty lengthy compilation process. It requires PyGame, which I installed with easy_install pygame, because when I tried it with Fink, many packages were installed, but it ultimately failed to install pyobj-py25 for no reason I can understand. No matter, EasyInstall was much quicker. It requires PIL, which, as far as I could tell, could not be installed either with EasyInstall or with Fink. So, I downloaded the tarball from their site, unpacked it, entered the directory, and invoked sudo python setup.py install. Great. Now KeyJNote will run, but it can’t use embedded hyperlinks (which beamer provides for navigation) without pdftk. Fine, ok, I’ll install that. MacPorts has it, so a quick sudo port install pdftk and I was on my way. For a very long time. Because it insisted on installing the entire gcc42 GNU compiler collection in order to compile it. Really, this took half a day to run. And it seems like kind of a waste, couldn’t my existing XCode install have handled this??

At the end of the day, though, I do have KeyJNote running, and I have high hopes for it.

To invoke it, just keyjnote.py file.pdf in the Terminal (though there are a lot of command line options that can be specified, I haven’t really looked into them yet). It will think and think and think some more (but during this process it is rendering things so that it will be ready to zip through them during the presentation itself), and then the presentation starts.

There is no freaking way I’m installing KDE just to use this, but there is a GUI for working with KeyJNote called (appropriately) KeyJNoteGUI. If you’re already Linuxized and have KDE installed, it might be useful.

Something I think I will use is gettransitions, which can extract information from LaTeX comments to build the .info files that KeyJNote uses to determine which transitions to use between slides.

I’ll post again once I’ve mastered this, but I was happy enough to see that this exists (and had to jump through enough hoops to get it installed) that it seemed worth posting about the beginning steps.

Also, since I will be doing presentations with my MacBook anyway, I intend to give iRed Lite a try, which claims to be able to use the remote control they come with to do more general things (like work with a presentation, for example, though it can do a lot more).

Maybe one last thing to mention is that it might still be worth considering just using Keynote as it was meant to be used, but inserting trees or other LaTeX entities with something like LaTeXiT (though I have not tried to use this for trees).