10

I have a pretty long presentation: a course comprising a couple of hundreds frames. Occasionally, I go over the presentation, notice a few corrections in distinct frames.

Fixing these requires a number of iterations to find the most pleasing placement of objects, texts, and figures. Needless to say, running LaTeX on the entire presentation is time consuming.

Instead, I mark the slides with label=current and use includeonlyframes{current} which renders only the current slides. However, I get the annoying

 LaTeX Warning: There were multiply-defined labels.

Is there a more civilized way of managing the workflow. It seems too cumbersome to mark each slide with a different label, and then enumerate the labels in the includeonlyframes command.

Yossi Gil
  • 15,951
  • 2
    For exactly this purpose I use the comment package to comment out parts I do not want to compile. See also http://tex.stackexchange.com/questions/17816/commenting-out-large-sections/62096#62096 – Daniel Jan 01 '14 at 20:30
  • 3
    I usually prepare a few frames in a separate file that has only the preamble in common with the main one; cross references are not a problem during the preparation of the presentation. When they're ready, I transfer them to the main file; the same idea can be used for fixing some of the already finished ones. – egreg Jan 01 '14 at 22:32
  • 1
    It is only a warning. I just ignore it: I know exactly what is causing the warning and I know that it does not matter at this point in my workflow. When I have things as I like, I remove the labels, comment the includeonlyframes and reprocess. Only at this point do I pay attention to warnings of this kind. Civilisation is overrated! – cfr Jan 01 '14 at 22:42
  • 2
    you could also look at the standalone bundle- a demonstration for beamer is given in http://tex.stackexchange.com/questions/73829/inserting-document-compiled-from-latex-code-inside-a-tex-file for example – cmhughes Jan 02 '14 at 02:59
  • Use %\input{frame1}, %\input{frame2}, ... and uncomment only those you are workin on. This way you have many files but you (a) can concentrate on the working frame (b) cannot damage the code of another frame accidentally (c) can reuse easily the frame in another presentations and (d) exclude-include according to the available time for your disssertation or the type of audience. – Fran May 15 '14 at 19:39
  • Too obvious, but if you are working in the 4th of 200 frames, the easiest is just place a temporal \end{document} after the 4th frame (equally obvious, this is of little help when you are working in the 195th frame). – Fran Sep 30 '14 at 21:55
  • I use same approach as @egreg. Use a separate file with same preamble. I also use a \input to share the same preamble on both files. So my minimum framework for long beamer presentation is the main.tex, temp.tex and preamble.tex. – Smarzaro Nov 19 '14 at 10:53
  • @egreg Your comment has the most upvotes, wanna write up an answer? – Johannes_B Dec 17 '14 at 16:58

1 Answers1

5

I usually prepare a few frames in a separate file that has only the preamble in common with the main one.

Missing labels for cross references are not a problem during the preparation of the presentation: they might cause some slight difference in the final printout, but the chances are very small. Actually I almost never use cross references in presentation, but only hyperlinks: I don't find something like “see [1]” or “see slide 24” useful for the attendance.

When the group of slides is ready, I transfer them to the main file; the same idea can be used for fixing some of the already finished ones.

In this way, compilation of the whole presentation is almost never needed except in the final production stages.

One could even avoid copying the preamble by having it in a third file as in the scheme below. In the final stage it may be more convenient to transfer the contents of preamble.tex into the main file so it's self-contained (except for graphics).

Main file

\documentclass[<options>]{beamer}

\input{preamble}

\begin{document}

<already prepared slides>

\end{document}

Galley file

\documentclass[<options>]{beamer}

\input{preamble}

\begin{document}

<slides in preparation>

\end{document}

preamble.tex file (scheme)

\usebeamertheme{Whatever}
\usefonttheme{professionalfonts}

...<whatever needed in the preamble>...
egreg
  • 1,121,712