[Tex/LaTex] Create a list of beamer slides

beamer

How can I create a list of all beamer slides (by their frame-title) like the table of contents in a regular latex document? I just need it as a bird's eye view of my presentation, thus it must not be anything fancy.

It should also be able to cope with the following slide that I have at the end of my presentation

\begin{frame}
    {\Huge
        \vspace {0.35\textwidth}
% Don't remove
        \begin{columns}[ccc]
            \begin{column}{0.3\textwidth}
            \end{column}
% Don't remove
            \begin{column}{0.3\textwidth}
                    \textbf{Thanks!}
            \end{column}
% Don't remove
            \begin{column}{0.3\textwidth}
            \end{column}
        \end{columns}
    }
\end{frame}

Best Answer

Howdy this is my solution:

   \documentclass{beamer}
\usepackage{etextools}
\makeatletter
%Here comes the Framelist
%
\newcommand{\printframelist}{ }
\newcommand{\@savefrml}{ }
\newcommand{\frameliston}{%
\let\oldframetitle\frametitle
\newcommand{\tgframelistfronthook}{$\cdot$}
\newcommand{\tgframelistbackhook}{\\ }
\newcommand\myaddto[1]{%
  \write\@auxout{\noexpand\@writefile{frml}{\noexpand ##1}}}
  \renewcommand{\printframelist}{\@starttoc{frml}}
\renewcommand{\frametitle}[1]{\oldframetitle{##1}%
\xifstrequal{##1}{\@savefrml}{}{
\myaddto{ \noexpand%
\tgframelistfronthook ##1 \noexpand\tgframelistbackhook}%
}
\global\def\@savefrml{##1}%
}
}


\makeatother
\frameliston
\begin{document}
\frame{\frametitle{FIRST}}
\frame{\frametitle{Second}}
\frame{\frametitle{Third}}
\begin{frame}
\printframelist
\end{frame}
% The following should turn the framlist off for one slide when\anotherft is used  
\let\anotherft\oldframetitle
\frame{\anotherft{FIRST A}}
\frame{\frametitle{Second A}}
\frame{\frametitle{Third A}}
\end{document}

This uses the very basic LaTeX mechanism on creating external files (like toc). extetools are used to compare strings and decide to print or not to print the title (for overlays). See in bitbucket.org/tobig/hohenheimbeamertheme/

Redefine \tgframelistbackhookand \tgframelistfronthook as you please.

EDIT: What you are showing in your example given above is that you put the whole columns stuff into the frametitle. And it breaks. Remember the frame environment is defined as

    \begin{frame}<⟨overlay specification⟩>[<⟨default overlay specification⟩>][⟨options⟩]{⟨title⟩}{⟨subtitle⟩}
 ⟨environment contents⟩
    \end{frame}

(see beamer documentation)

The first brakets after \begin{frame} will be interpreted as the title. This will work:

\begin{frame}
    \Huge
        \vspace {0.35\textwidth}
% Don't remove
        \begin{columns}
            \begin{column}{0.3\textwidth}
            \end{column}
% Don't remove
            \begin{column}{0.3\textwidth}
                    \textbf{Thanks!}
            \end{column}
% Don't remove
            \begin{column}{0.3\textwidth}
            \end{column}
        \end{columns}
\end{frame}
Related Question