Beamer Custom ToC 未按预期工作

Beamer Custom ToC 未按预期工作

我破解了投影机的框架表并遇到了一个我无法理解的奇怪情况。

\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}

列表中的两个条目是“列表 1”和“列表 1”,而它们应该是“标题 1”和“标题 2”。

如果我删除,\protect我会收到一个奇怪的错误消息:

! 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.

什么这里出了什么问题?

注1:看起来,这些最小违规示例主要取决于相当多的细节。例如,如果我删除allowframebreaks前两张幻灯片中的,一切都会好起来(前提是我也删除了\protect- 如果我将其保留在内,我会得到错误的条目)。

笔记2:我使用背景模板,因为只有这个模板在所有延续幻灯片上被调用;移动到框架标题是不可能的。

相关内容