The ratio of markup to content in a beamer presentation is fairly high relative to a standard LaTeX document. What strategies do you use for speeding up the task of typing and editing beamer presentations?
-
8This will not be popular on this board but consider not using LaTeX for presentations. In my opinion, it’s not a well-suited tool, especially when you heed the advice of experts such as Garr Reynolds when preparing your presentations.– Konrad RudolphCommented Aug 7, 2010 at 14:36
-
1I agree! For me, the issue is less with the typing and more with readability - I find the large amount of markup distracting. I'm actually busy making something which will convert from a wiki-type syntax to Beamer (see home.cs.siue.edu/~rkrauss/python_website for an example of this sort of thing, using a different markup language). It's probably not going to be a very robust system, but I'm expecting it to be useful for me.– Neil OlverCommented Aug 7, 2010 at 14:50
-
4OK, everyone's entitled to their opinion, but personally I generally prefer LaTeX/Beamer to traditional presentation software like Power Point.– David ZCommented Aug 7, 2010 at 16:36
-
1@Konrad: I agree! Even the Beamer manual quotes Lance Fortnow: Powerpoint users give better talks (than Beamer users), because Powerpoint makes it harder to insert equations. :-) With Beamer it's too tempting to just take your LaTeX-typeset paper and chop it into slides, which makes for the worst kind of talk. (Yet we still use Beamer because Powerpoint is so unbearable, though.)– ShreevatsaRCommented Aug 7, 2010 at 18:29
-
5@ShreevatsaR: That's the sort of comment that makes me despair of conferences! The computer should do what I want it to, not the other way around. Of course, I should have a good idea of what I want and what would make a good presentation. But I'd rather a system where I could go to talks that were good because the person had thought about what should go in to it as opposed to a talk that wasn't absolutely awful because the software was set up to black out after 50 minutes.– Andrew StaceyCommented Aug 17, 2010 at 9:56
6 Answers
These are some of the things I do
Have semantic markup for typing equations. It probably depends on your field, or the target audience, but on some of my slides about half of the content is equations. Defining macros that explain the meaning rather than the syntax of my math formulas helps to keep the source readable and often also concise. (And this is not only true for slides but for any kind of document!)
Use the
itemize
and "block environments" for pretty much all the text I need. You don't really need any bloat of markup for these.Don't abuse overlays. Probably most of the code and "hacks" you find in the sources of a beamer presentation are because of this. I tend to use overlays only sporadically, perhaps twice, definitely not more than five times in the whole presentation. Some advice I once overheard about making slides: "Don't play striptease with your audience."
Code for TikZ figures go outside in their own
picture.tex
which is then\input
-ed at the appropriate place.And define macros. For the ocasional times when I need to do some "hack" that will be needed in many places all over the presentation (for example once I wanted to have some particular formulas display with some color and framed by a box) I would define, of course, a macro just once to do the dirty work, and then use the macro everywhere I need in the slides.
Emacs Org-Mode makes it possible to write Beamer presentations with almost no LaTeX markup. You make a normal Org outline, then use the Beamer export for Org to create a tex file with the markup you want. Of course, if you want to do more than the basics you'll eventually have to use some LaTeX, but even then Org makes it much easier.
Here's an orgmode/Beamer tutorial and here's another Org/Beamer tutorial.
The above should give a taste of how it works. Reading about Orgmode may make it appear confusing and complicated, but it's one of those things that's much simpler (and amazing) once you start using it.
I would suggest checking this out even if you're an Emacs-hater. I don't care much for Emacs, much prefer Vim, but Orgmode really transforms Emacs into a killer application for certain uses. Besides having a great export to Beamer, Orgmode also can export an article-type outline into LaTeX, complete with sections and more, while having virtually no LaTeX markup in your original file. You can choose "Export to LaTeX and view PDF" in a single step. Very slick.
-
I like the idea of using Org mode or some form of Wiki-like syntax, at least while brainstorming and planning the presentation. Commented Aug 8, 2010 at 4:35
You've got some good answers already. Here's my 2c.
As the question says, the markup to content ratio is way higher is a beamer presentation than a "regular" document, and that cannot be avoided. Attending to the difference is the medium (page vs. screen) makes it inevitable that many choices that are better left to a TeX engine for printed content must be made by the user for the screen.
That said, the more markup, the more likely you've got a presentation using bells, whistles, and gongs in place of content. Much use of markup past frames and lists is definitely a smell for me that I need to focus on the content, not on the wizz bang of its display. Having sat through a few (a few, but enough) presentations from the land of Power Point, it seems obvious to be that a glitter or wipe slide transition doesn't stand a chance of hiding the ugly fact that the content is poor. The more "cuteness" on the screen, the harder it is to focus on the content, and, typically, the less content there is to focus upon.
So, if you are finding your beamer presentation onerous to code, your audience is likely to find it onerous to sit through. Be minimal and be clear.
One option is to use markdown with pandoc and a latex header. I document this approach here and have an example in a github repository here.
See also John MacFarlane's documentation on pandoc's support for beamer slide production.
Speed up typing using an editor with auto-completion and templates for environments.
Perhaps additionally use a utility like AutoHotkey. This is a free and Open Source hotkey utility for Windows. Just define a key combination for
frame environments
itemize environments, perhaps with already some empty items inside
enumerate environments
various block environments, columns, math, ...
Extend the auto-completion of the editor by typical beamer commands and environments, especially long words like
beamerboxesrounded
etc.If you expect you'll create several similar similar presentations, create a folder or project containing a presentation template containing preamble and dummy frames.
Put settings of your preamble into a file and reuse it. You could "install" that file in your TEXMFHOME directory, available for all your presentations. If you decide to change your style, all previously created presentations could benefit.
-
3I think all suggestions are pretty sensible, except for the last one. I've learned the hard way not to modify files on which many existing documents already depend, specially for beamer slides where the actual look of the document is kind of important. In other words: "If you decide to change your style, all previously created presentations could" break. Commented Aug 7, 2010 at 11:53
-
1That's true. I just mentioned the possibility to switch to a different style once for a dozen presentations without need to edit each one. It's another proposal following the goal to speed up. But as you said, if at all then it should be done carefully. One could use options or version no. for easily taking over new styles or keeping the former one.– Stefan Kottwitz ♦Commented Aug 7, 2010 at 12:35
-
1I loved AutoHotKey back when I used Windows, but it’s worth mentioning there’s a similar app for linux called AutoKey; there are both qt and gtk based versions. Most likely however, a good text editor or LaTeX IDE will offer similar functionality.– frabjousCommented Aug 7, 2010 at 13:05
I use otl2latex.py which converts Vim Outliner documents into TeX files ready for compiling. You can find it here.