[Tex/LaTex] Beamer: Removing headline and its space on a single frame (for plan), but keeping the footline

beamerheader-footerspacingtable of contents

There is now 4 hours that I'm Googling to found a solution to my problem but it's still impossible!

Here is the situation: I have some frames in a presentation using the Warsaw theme, on the first one I wanted to remove both headline and footline so I use the \begin{frame}[plain], but I want to, for the next frame, keep the footline but only hide the headline.

I tried the following:

{
\setbeamertemplate{headline}{} %or \setbeamertemplate{headline}[default]
\begin{frame}{Sommaire}
    \tableofcontents
\end{frame}
}

But, although the content of the headline is removed, it keeps the space blank (as it is used, but not available for my content). So, there is a white space below my frame title… (Table of Contents).

I don't want to have the plan of my presentation in the header here as it is a frame showing the plan …

Is there anyone here who could help me?

Best Answer

Ok, after more investigation (in the beamer sources :)), I have found the solution. For those who will search like me in the future, here it is in a simple small example :

{ % to delimit a block (we only want to remove the header for this frame)
\makeatletter % to change template
    \setbeamertemplate{headline}[default] % not mandatory, but I though it was better to set it blank
    \def\beamer@entrycode{\vspace*{-\headheight}} % here is the part we are interested in :)
\makeatother
\begin{frame}{Table of contents} % and our simple frame
    \tableofcontents
\end{frame}
}

It is also possible to define an environment to be able to use it more easily. To do so, use this part of code before the \begin{document} :

\makeatletter
    \newenvironment{withoutheadline}{
        \setbeamertemplate{headline}[default]
        \def\beamer@entrycode{\vspace*{-\headheight}}
    }{}
\makeatother

And for your frame :

\begin{withoutheadline}
    \begin{frame}{Table of contents} % and our simple frame
        \tableofcontents
    \end{frame}
\end{withoutheadline}

Hope this will help :)

Enjoy!