Beamer Custom ToC funktioniert nicht wie erwartet

Beamer Custom ToC funktioniert nicht wie erwartet

Ich habe eine Frame-Tabelle für Beamer gehackt und bin auf eine seltsame Situation gestoßen, die ich nicht verstehe.

\documentclass{beamer}

\makeatletter
\newcommand\listofframes{\@starttoc{lbf}}
\makeatother

\setbeamertemplate{background}{
  \addcontentsline{lbf}{section}{\protect\insertframetitle}
}

\begin{document}

\begin{frame}[allowframebreaks]{Title1}
Some text1
\end{frame}

\begin{frame}[allowframebreaks]{Title2}
Some text2
\end{frame}

\setbeamertemplate{background}{}

\begin{frame}[allowframebreaks]{List}
\listofframes
\end{frame}

\end{document}

Die beiden Einträge in der Liste lauten „Liste 1“ und „Liste 1“, obwohl sie eigentlich „Titel 1“ und „Titel 2“ lauten sollten.

Wenn ich das entferne \protect, erhalte ich eine seltsame Fehlermeldung:

! Argument of \XC@col@rlet has an extra }.
<inserted text> 
                \par 
l.15 \end{frame}
                
I've run across a `}' that doesn't seem to match anything.
For example, `\def\a#1{...}' and `\a}' would produce
this error. If you simply proceed now, the `\par' that
I've just inserted will cause me to report a runaway
argument that might be the root of the problem. But if
your `}' was spurious, just type `2' and it will go away.

Wasläuft hier was schief?

Anmerkung 1:Es sieht so aus, als ob diese minimalen Verstoßbeispiele entscheidend von einer ganzen Reihe von Details abhängen. Wenn ich beispielsweise allowframebreaksin den ersten beiden Folien das entferne, ist alles in Ordnung (vorausgesetzt, ich entferne auch das \protect– wenn ich es drin lasse, erhalte ich die falschen Einträge).

Anmerkung 2:Ich verwende die Hintergrundvorlage, da auf allen Folgefolien nur diese Vorlage aufgerufen wird; ein Wechsel zum Rahmentitel ist keine Option.

verwandte Informationen