我无法生成由 Beamer 演示文稿的所有部分(由命令声明)组成的目录\part
。虽然可以轻松列出每个部分的部分,但 Beamer 用户指南中没有提示如何使用\tableofcontents
来生成部件列表。有人知道吗?
答案1
我省去了花哨的部分(即通过模板路由所有内容、用它制作超链接、在 中随意发挥\beamer@partintoc!
),零件名称仍然不会显示在普通的 中\tableofcontents
。哦,因为你只能有一个\AtBeginPart
,所以要小心不要覆盖这个。
\makeatletter
\AtBeginPart{%
\addtocontents{toc}{\protect\beamer@partintoc{\the\c@part}{\beamer@partnameshort}{\the\c@page}}%
}
%% number, shortname, page.
\providecommand\beamer@partintoc[3]{%
\ifnum\c@tocdepth=-1\relax
% requesting onlyparts.
\makebox[6em]{PART #1:} #2
\par
\fi
}
\define@key{beamertoc}{onlyparts}[]{%
\c@tocdepth=-1\relax
}
\makeatother%
\begin{document}
\begin{frame}
\tableofcontents[onlyparts]
\end{frame}
答案2
引用 beamer 文档第 98 页:
如果你要发表长篇演讲(比如讲座),你可能希望将演讲分成几个部分。每个部分都像是一个小型的“独立演讲”,有自己的目录、导航栏等。
所以我猜想在 beamer 中没有“内置”方法来创建跨越多个部分的目录。在我看来,你应该重新组织你的演示文稿,以便前面的部分变成章节,而前面的章节变成子章节。(至于前面的子章节,文档第 34 页指出“不要使用子子章节,它们是邪恶的”,但你甚至可以忽略这一点。)
答案3
由于 beamer 不直接支持目录中的部件,我只会使用环境itemize
来打印出部件列表。
如果您确实希望以舒适的\tableofcontents
方式进行复制,您可以使用 为其构建一个单独的 TOC 文件\addtocontents
(可以使用 完成\AtBeginPart{\addtocontents...}
)并对其进行处理,类似于\beamer@tableofcontents
beamerbasetoc.sty。但这需要一些编程,您可以决定是否值得为一个文档付出努力。除了现有的分段结构外,包含许多部分的广泛演示文稿可能并不常见,需要一个内容框架。