我想知道如何在同一框架上首先显示全部阴影的目录,然后通过叠加逐渐显示(取消阴影)其中的每一行。
到目前为止我有这个:
\begin{frame}{Outline}
\tableofcontents[pausesections,pausesubsections,subsectionstyle=shaded]
\end{frame}
它在开始时显示第一部分并隐藏其余目录,然后逐步显示阴影的子部分和不带阴影的部分。
谢谢!
答案1
这个建议只有在目录适合一个框架的情况下才有效。这个想法是先绘制一个“褪色”的目录,然后在其上放置第二个目录,并依次将其隐藏起来。
\documentclass{beamer}
\usepackage{tikz}
\begin{document}
\begin{frame}{Outline}
\begin{overlayarea}{\textwidth}{0.85\textheight}
\begin{tikzpicture}
\node at (0,0) {\begin{minipage}{\textwidth}
\setbeamertemplate{section in toc shaded}[default][50]
\tableofcontents[sectionstyle=shaded,subsectionstyle=shaded]
\end{minipage}};
\node at (0,0) {\begin{minipage}{\textwidth}
\tableofcontents[pausesections,pausesubsections]
\end{minipage}};
\end{tikzpicture}
\end{overlayarea}
\end{frame}
\section{A section}
\subsection{A subsection}
\begin{frame}
\frametitle{A frame}
\begin{overlayarea}{\textwidth}{0.85\textheight}
\end{overlayarea}
\end{frame}
\subsection{Another subsection}
\begin{frame}
\frametitle{Another frame}
\begin{overlayarea}{\textwidth}{0.85\textheight}
\end{overlayarea}
\end{frame}
\section{Another section}
\subsection{Yet another subsection}
\begin{frame}
\frametitle{Yet another frame}
\begin{overlayarea}{\textwidth}{0.85\textheight}
\end{overlayarea}
\end{frame}
\end{document}
答案2
我有一个解决方案,尽管它需要包含一些包。
我们将使用 一次创建一行目录parts
,因为\tableofcontents[part=1]
将为文档的某些指定部分创建目录。这将允许我们使用覆盖规范功能beamer
可一次取消一条线条的阴影。
为了按节和小节分隔行,我们首先使用包中的命令\part{}
在\section
和\subsection
命令前添加一个空调用:\pretocmd
etoolbox
\pretocmd{\section}{\part{}}{}{}{}
\pretocmd{\subsection}{\part{}}{}{}{}
接下来,我们使用包中的命令计算parts
文档中创建的数量:totvalue
totcount
\regtotcounter{part} % <- preamble
...
\totvalue{part} % <- the total number
最后,我们使用包\foreach
中的命令tikz
循环遍历所有内容parts
,并仅打印此元素的目录,并附带\uncover
规范:
\begin{frame}{Outline}
\setbeamercovered{transparent}
\foreach\i in {1,...,\totvalue{part}}%
{\uncover<\i->{\tableofcontents[part=\i,subsectionstyle=shaded]}}
\end{frame}
就我个人而言,我认为双重阴影subsections
太难看清,但你可以尝试一下。
整个平均能量损失:
\documentclass{beamer}
\usepackage{etoolbox}
\usepackage{tikz}
\usepackage{totcount}
\regtotcounter{part}
\pretocmd{\section}{\part{}}{}{}{}
\pretocmd{\subsection}{\part{}}{}{}{}
\begin{document}
\begin{frame}{Outline}
\setbeamercovered{transparent}
\foreach\i in {1,...,\totvalue{part}}%
{\uncover<\i->{\tableofcontents[part=\i,subsectionstyle=shaded]}}
\end{frame}
\section{Sec 1}
\subsection{Sec 1.1}
\subsection{Sec 1.2}
\section{Sec 2}
\subsection{Sec 1.1}
\subsection{Sec 1.2}
\begin{frame}
dummy
\end{frame}
\end{document}
答案3
你可以将所有阴影目录移到一个单独的框架中,并减少帧数以使它们看起来像一个框架:
\documentclass{beamer}
\begin{document}
{
\setbeamercovered{transparent}
\begin{frame}{Outline}
\tableofcontents[
currentsection
]
\end{frame}
\addtocounter{framenumber}{-1}
\begin{frame}{Outline}
\tableofcontents[
pausesections,
pausesubsections,
]
\end{frame}
}
\section{sec1}
\subsection{sub1}
\begin{frame}
content...
\end{frame}
\subsection{sub2}
\begin{frame}
content...
\end{frame}
\section{sec2}
\begin{frame}
content...
\end{frame}
\end{document}