Beamer 中 \part 命令中的 \tableofcontents

Beamer 中 \part 命令中的 \tableofcontents

我无法生成由 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@tableofcontentsbeamerbasetoc.sty。但这需要一些编程,您可以决定是否值得为一个文档付出努力。除了现有的分段结构外,包含许多部分的广泛演示文稿可能并不常见,需要一个内容框架。

相关内容