2

Problem statement

Beamer's 'article mode' is a wonderful vehicle for generating different documents - such as slides for presentation and handouts using LaTeX's standard 'article' class - from the same .tex source.

However, both such generated documents contain the same PDF bookmarks (i.e., the table of contents that the PDF reader shows), even though not all (sub)sections might be populated in either document. For example, some sections might not have any frames associated with them in the slides.

I am looking for a way to automatically exclude the headings of 'empty' (sub)sections from a document's PDF bookmarks.

Minimal working example (MWE)

The following MWE should be fairly self-explanatory.

  1. Put the three files below (main.tex, article.tex, beamer.tex) into the same directory.
  2. Compile the slides with a double-run of pdflatex:

    pdflatex beamer
    pdflatex beamer
    
  3. Compile the handout with a double-run of pdflatex:

    pdflatex article
    pdflatex article
    
  4. Compare the content and PDF bokmarks of article.pdf and beamer.pdf in your PDF reader.

main.tex

\mode*

\section{This heading appears in the PDF bookmarks of article.pdf and beamer.pdf,%
even though the section is empty in beamer.pdf}

This sentence goes into article, but not presentation mode.

\section{This heading appears in the PDF bookmarks of article.pdf and beamer.pdf,%
as it should}

\begin{frame}{Foo}{}
 This sentence goes into both, article and presentation mode.
\end{frame}

\mode<all>

article.tex

\documentclass{article}

\usepackage{beamerarticle}
\usepackage{hyperref}%     Required for PDF bookmarks

\begin{document}

\input{main.tex}

\end{document}

beamer.tex

\documentclass[ignorenonframetext]{beamer}

%\usepackage{bookmark}
% NOTE: Using this package instead of the internal PDF bookmark
% algorithm of the 'hyperref' package (which beamer uses automatically)
% does /not/ solve the problem.

\begin{document}

\mode<all>
\input{main.tex}
\mode*

\end{document}

Workarounds I have considered, but which don't work for me

Manually specifying the mode(s) of section headings

I believe that in Beamer's article mode, one can specify which mode(s) a section heading applies to, e.g. via

\section<presentation>{My heading}

However, due to the size of the project in question, this is not an acceptable solution for my situation. I am looking for an automated way of excluding headings of empty sections from the PDF bookmarks.

The 'bookmark' package does not solve the issue

The Beamer documentation recommends \usepackage{bookmark} over hyperref's internal PDF bookmark algorithm. I've tried this, but it does not solve the problem, as can be confirmed by uncommenting the respective line in beamer.tex above and recompiling.

3

0

Browse other questions tagged .