Skip to main content


 by Don Eisenstein

QUICK DOWNLOAD of latest version if you are a current user:  BeamerLecture.tex   bashscripts

What is BeamerLecture?

BeamerLecture is a set of macros that builds upon the  LaTeX-Beamer Class for producing slides in LaTeX for teaching. One source file is used to produce 4 different versions of one's lecture slides.

Here is a simple Example.tex  file that when used with BeamerLecture produces 4 output files.

  • ExampleLecture.pdf:  Full in-class lecture with animated lists, etc.   
  • ExampleClass2up.pdf:  A two slides per page version to distribute to the class at the start of the lecture.   Some items may be hidden in this version of the slides.  Animation is suppressed.  
  • ExamplePost2up.pdf:   A two slides per page version to be made available to the class after the lecture.  All previously hidden items are now revealed.  Animation is also suppressed. 
  • ExampleNote.pdf:  Portrait view with lecture slide on top and your own notes on bottom.

Examine the Example.tex source file and the pdf output files above to get the basic idea of what BeamerLecture is all about and to explore some features in detail.

At the heart of BeamerLecture is the introduction of a hush environment.  So that \hush{The answer is 4} within your LaTeX file will be displayed in the Lecture output file, for use during your lecture.   But it will be suppressed in the Class2up handouts the students are provided at the start of class.  There is also a Note version that includes lecture notes for you to refer to during class, as well as a Post2up version that is designed to be provided to students AFTER the lecture, with all material exposed, for their review.  

Here are some examples of some of the basic macros in BeamerLecture.tex:

  • \hush{x} :  Suppress x in Class2up
  • \hushframe : Suppress the entire frame in Class2up
  • \alrt{x} :  Display x in the alert color of Beamer, default red
  • \alrtL{x} : Display x in the alert color of Beamer in large font
  • \struc{x}: Display x in the structure color of Beamer, default blue

I also provide a number of macros that build upon the itemize environment useful for lectures.   For example, iitemize reveals items consecutively on each slide while  ialert does so but highlights the current item in red.   The Lecture output ExampleLecture.pdf demonstrates these and other features.

How to use BeamerLecture

The macro file BeamerLecture.tex contains all the additions to the beamer class that you need.  You will find a CUSTOMIZE section that you will need to edit with your name and other personal data, etc.  You must have the LaTeX-Beamer Class installed, and you need the latest Version 3.06.  BeamerLecture.tex needs to be prepended to your slide source file. Take a look at BeamerLecture.tex.  Near the top you will see sections for each version, Lecture, Class, Post, Note.   For example the Lecture section has 5 or so lines that each begin with %LECTURE%.  These lines must now have %LECTURE% removed in order to create a Lecture version output.   Or similarly, remove the %CLASS% pieces of text to create a Class version, etc.   

There are two ways to accomplish this:

1) From the Unix Command Line:  MacOS X, Linux, etc...
The way I use BeamerLecture, and I think the simplest, is from the Unix Command line.  For example, with one command  I can create all four versions from the same source file.  This works for a Mac, Linux, Sun  etc.   A command such as "pdflecture infile" automatically prepends the BeamerLecture.tex file to infile.tex, removes the %LECTURE% pieces, compiles using pdflatex, and creates the output file infileLecture.pdf.  And "pdfall infile.tex" produces all 4 output files. Here are the bashscripts that I add to my bash shell startup script, .bashrc, and then can use at a bash terminal command line.   Some modifications will be needed to accommodate shells other than bash.  To get 2up output these scripts call the utility pdfnup to convert a landscape slide pdf into a 2up portrait pdf.  pdfnup is part of the pdfjam system of utilities.  You will also need to edit the bash scripts to reflect the path where you locate BeamerLecture.tex or have it located in your current working directory.

The bash scripts provide the following commands, with usage as follows given a source input file, "infile.tex"

  • pdflecture infile
  • pdfclass infile
  • pdfnote infile
  • pdfpost infile
  • pdfpost2up infile
  • pdfall infile  (produces all of the above)

2) Using with Windows or other LaTeX GUI system:
Without the command line, which I have not experimented much with, seems a bit more cumbersome.  Here you create four versions (or the ones you use) of BeamerLecture.tex, each of which has been manually edited.  So for example you might create a file BeamerLectureClass.tex that has all %CLASS% pieces removed.  Then simply put "\input{BeamerLectureClass}" at the top of your source file and compile using pdflatex as usual.  This may be the preferred method for those using Windows or those using Mac systems that are not comfortable with the terminal command line.  One issue here is that you must postprocess your pdf using some other utility if you desire 2up (two slides per page output).  I have not done this, so if anyone has a better solution that does not use the command line please let me know.


If you need help, or have any suggestions/comments, feel free to send me an e-mail.


My unix scripts use filenames beginning with  "yap" as temp files.  So do not name your source, "yap.tex".

My unix scripts leave some files such as yap.aux, yap.log etc.  These are required by LaTeX to build references and table of contents, etc.