Beamer:显示所有之前的 \tableofcontents 项目,并将未来的项目变灰。另外:从目录中删除子部分,然后修复项目之间的距离

Beamer:显示所有之前的 \tableofcontents 项目,并将未来的项目变灰。另外:从目录中删除子部分,然后修复项目之间的距离

我想在 Beamer 中呈现一个目录,显示先前的项目,并将未来的项目灰显。但我无法让它完全工作。这是一个 MWA:

\documentclass{beamer}
\usetheme{Luebeck}
\setbeamercovered{transparent}
\usepackage{totcount} % Get the last number of a counter
\regtotcounter{section}
\newcounter{mytmp}
\begin{document}
\section{Section 1}
\frame{\tableofcontents}
\section{Section 2}
\subsection{2.1}
\frame{\tableofcontents[hideallsubsections]}
\section{Section 3}
\setcounter{mytmp}{\thesection}
\stepcounter{mytmp}
\frame{%
    \tableofcontents[sections={1-\thesection},hideallsubsections]
    \tableofcontents[sections={\themytmp-\totvalue{section}},currentsection]
}
\section{Section 4}
\frame{}
\section{Section 5}
\frame{}
\section{Section 6}
\frame{}
\section{Section 7}
\frame{}
\section{Section 8}
\frame{}
\subsection{8.1}
\frame{}
\subsection{8.2}
\frame{}
\section{Section 9}
\frame{}
\end{document}

输出如下:

  1. 标准目录。 第 1 节中的 ToC 输出

  2. 使用该选项的 Toc hideallsubsections。为什么项目之间的距离增加了?如何修复? 第 2 节中的 ToC 输出

  3. 目录几乎显示了我想要完成的任务。为什么 3 和 4 之间的距离这么窄?如何修复?再一次,hideallsubsections可见列表中的 弄乱了项目之间的距离。如果所有这些都可以修复,是否有可能创建更好的解决方案,其中\setcounter{mytmp}{\thesection}\stepcounter{mytmp}不需要每次都写入,即创建一个\mytableofcontents解决所有问题的新命令? 第 3 节中 ToC 的输出

我也尝试过在\tableofcontents命令周围加上\setbeamercovered{still covered={\opaqueness<1->{15}},again covered={\opaqueness<1->{100}}}\setbeamercovered{still covered={\opaqueness<1->{15}},again covered={\opaqueness<1->{15}}},可惜没有成功。不过,这适用于逐项列表!

答案1

我认为以下源代码可以给出您想要的结果:

\documentclass{beamer}
\usetheme{Luebeck}
\setbeamercovered{transparent}
\usepackage{totcount} % Get the last number of a counter
\regtotcounter{section}
\usepackage{etoolbox}
\makeatletter
\patchcmd{\beamer@sectionintoc}{\vskip1.5em}{\vskip0.5em}{}{}
\makeatother
\AtBeginSection{%
\frame{%
  \tableofcontents[sections={1-\thesection},hideallsubsections]%
  \unskip\vskip0.5em
  \tableofcontents[sections={\the\numexpr\thesection+1\relax-\totvalue{section}},currentsection,hideallsubsections]
}}
\begin{document}
\frame{\tableofcontents[hideallsubsections]}
\section{Section 1}
\section{Section 2}
\subsection{2.1}
\section{Section 3}
\section{Section 4}
\section{Section 5}
\section{Section 6}
\section{Section 7}
\section{Section 8}
\subsection{8.1}
\subsection{8.2}
\section{Section 9}
\end{document}

我用来\numexpr做计算,用来etoolbox修补beamer代码。

在此处输入图片描述

相关内容