我破解了投影机的框架表并遇到了一个我无法理解的奇怪情况。
\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:我使用背景模板,因为只有这个模板在所有延续幻灯片上被调用;移动到框架标题是不可能的。