你好,TeX/LaTeX/Beamer 的同事们,
有个问题我没法解决。我正在准备一堂 2 小时的课,所以我的课程内容很繁重。有 5 个部分,其中一些部分有几个小节。
我一开始已经有了以下的提纲:
大纲
1 第一节
2 第二部分 .. 5 第五部分。
但是,运行演示文稿时,每个部分和小节的开头都会出现密集的目录。所有部分 + 所有小节....太可怕了!
我想要的是,开始一个部分或一个子部分,投射一个只包含当前部分的干净视图,突出显示当前子部分并遮蔽其他部分(当前部分的子部分......)
可以这样做吗?
我提前非常感谢您!
最好的
物理就是爱!
答案1
beamer
为您提供了开箱即用的可能性,使用sectionstyle
、subsectionstyle
键进行\tableofcontents
。
如果你想在每个部分的开头有一个目录,只显示当前部分及其子部分,你只需要
currentsection,
sectionstyle=show/hide,
subsectionstyle=show/show/hide
因此,以下几行
\AtBeginSection[]
{
\begin{frame}<beamer>
\frametitle{Outline}
\tableofcontents[
currentsection,
sectionstyle=show/hide,
subsectionstyle=show/show/hide
]
\end{frame}
}
完全符合您的需要。完整示例:
\documentclass{beamer}
\AtBeginSection[]
{
\begin{frame}<beamer>
\frametitle{Outline}
\tableofcontents[
currentsection,
sectionstyle=show/hide,
subsectionstyle=show/show/hide
]
\end{frame}
}
\begin{document}
\section{Test Section One}
\begin{frame} test\end{frame}
\subsection{Test Subsection One One}
\begin{frame} test\end{frame}
\subsection{Test Subsection One Two}
\begin{frame} test\end{frame}
\subsection{Test Subsection One Three}
\begin{frame} test\end{frame}
\section{Test Section Two}
\begin{frame} test\end{frame}
\subsection{Test Subsection Two One}
\begin{frame} test\end{frame}
\subsection{Test Subsection Two Two}
\begin{frame} test\end{frame}
\subsection{Test Subsection Two Three}
\begin{frame} test\end{frame}
\section{Test Section Three}
\begin{frame} test\end{frame}
\subsection{Test Subsection Three One}
\begin{frame} test\end{frame}
\subsection{Test Subsection Three Two}
\begin{frame} test\end{frame}
\subsection{Test Subsection Three Three}
\begin{frame} test\end{frame}
\end{document}
第一部分的目录:
第二部分的目录:
第三部分的目录:
如果您希望在每个小节的开头都有一个目录,其中显示当前节和小节以及当前节的所有其他小节(阴影部分),则规范将更改为
currentsection,
sectionstyle=show/hide,
subsectionstyle=show/shaded/hide
ToC 将使用
\AtBeginSubsection[]
{
\begin{frame}<beamer>
\frametitle{Outline}
\tableofcontents[
currentsection,
sectionstyle=show/hide,
subsectionstyle=show/shaded/hide
]
\end{frame}
}
完整示例:
\documentclass{beamer}
\AtBeginSubsection[]
{
\begin{frame}<beamer>
\frametitle{Outline}
\tableofcontents[
currentsection,
sectionstyle=show/hide,
subsectionstyle=show/shaded/hide
]
\end{frame}
}
\begin{document}
\section{Test Section One}
\begin{frame} test\end{frame}
\subsection{Test Subsection One One}
\begin{frame} test\end{frame}
\subsection{Test Subsection One Two}
\begin{frame} test\end{frame}
\subsection{Test Subsection One Three}
\begin{frame} test\end{frame}
\section{Test Section Two}
\begin{frame} test\end{frame}
\subsection{Test Subsection Two One}
\begin{frame} test\end{frame}
\subsection{Test Subsection Two Two}
\begin{frame} test\end{frame}
\subsection{Test Subsection Two Three}
\begin{frame} test\end{frame}
\section{Test Section Three}
\begin{frame} test\end{frame}
\subsection{Test Subsection Three One}
\begin{frame} test\end{frame}
\subsection{Test Subsection Three Two}
\begin{frame} test\end{frame}
\subsection{Test Subsection Three Three}
\begin{frame} test\end{frame}
\end{document}
第一部分第二小节的目录图像:
第三部分第三小节的目录图像:
答案2
我认为这应该可以解决问题。看看这个:
\documentclass{beamer}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}
\usepackage{etoolbox}
\makeatletter
\patchcmd{\beamer@sectionintoc}{\vskip1.5em}{\vskip0.5em}{}{}
\makeatother
\title[Short Title]{My very long title that doesn't fix into the footer}
\author{Me}
\date{\today}
\beamertemplatenavigationsymbolsempty
\setbeamertemplate{footline}[frame number]
\usetheme{CambridgeUS}
\AtBeginSection[]
{
\begin{frame}
\frametitle{Outline}
\tableofcontents[currentsection, hideothersubsections]
\end{frame}
}
\begin{document}
\maketitle
\clearpage
\begin{frame}
\frametitle{Outline}
\tableofcontents[hideothersubsections]
\end{frame}
\section{Intro}
\begin{frame}
\frametitle{Welcome}
...
\end{frame}
\section{Topic 1}
\begin{frame}
\frametitle{Topic 1}
...
\end{frame}
\section{Topic 2}
\begin{frame}
\frametitle{Topic 2}
...
\end{frame}
\subsection{Red}
\begin{frame}
\frametitle{Red}
...
\end{frame}
\subsection{Green}
\begin{frame}
\frametitle{Green}
...
\end{frame}
\subsection{Blue}
\begin{frame}
\frametitle{Blue}
...
\end{frame}
\section{Topic 3}
\begin{frame}
\frametitle{Topic 3}
...
\end{frame}
\section{Topic 4}
\begin{frame}
\frametitle{Topic 4}
...
\end{frame}
\section{Topic 5}
\begin{frame}
\frametitle{Topic 5}
...
\end{frame}
\section{Topic 6}
\begin{frame}
\frametitle{Topic 6}
...
\end{frame}
\section{Topic 7}
\begin{frame}
\frametitle{Topic 7}
...
\end{frame}
\section{Topic 8}
\begin{frame}
\frametitle{Topic 8}
...
\end{frame}
\section{The end}
\begin{frame}
\frametitle{The end}
End of file :-)
\end{frame}
\end{document}
这些是演示幻灯片部分的示例图像。我希望这是所需要的......
答案3
如果您将文档分成几部分,其内容也将如下所示。
因此,重新定义\section
您不需要手动插入零件。
\let\oldsection\section
\renewcommand{\section}[1]{\part{}\oldsection{#1}}
使用
\AtBeginSection[]
{
\begin{frame}
\frametitle{Outline}
\tableofcontents[currentsection, hideothersubsections]
\end{frame}
}
结果将是这样的(注意主题 2):
完整代码(复制自@subham soni):
\documentclass{beamer}
\let\oldsection\section
\renewcommand{\section}[1]{\part{}\oldsection{#1}}
\title[Short Title]{My very long title that doesn't fix into the footer}
\author{Me}
\date{\today}
\beamertemplatenavigationsymbolsempty
\setbeamertemplate{footline}[frame number]
\usetheme{CambridgeUS}
\AtBeginSection[]
{
\begin{frame}
\frametitle{Outline}
\tableofcontents[currentsection, hideothersubsections]
\end{frame}
}
\begin{document}
\begin{frame}
\maketitle
\end{frame}
\section{Intro}
\begin{frame}
\frametitle{Welcome}
...
\end{frame}
\section{Topic 1}
\begin{frame}
\frametitle{Topic 1}
...
\end{frame}
\section{Topic 2}
\begin{frame}
\frametitle{Topic 2}
...
\end{frame}
\subsection{Red}
\begin{frame}
\frametitle{Red}
...
\end{frame}
\subsection{Green}
\begin{frame}
\frametitle{Green}
...
\end{frame}
\subsection{Blue}
\begin{frame}
\frametitle{Blue}
...
\end{frame}
\section{Topic 3}
\begin{frame}
\frametitle{Topic 3}
...
\end{frame}
\section{Topic 4}
\begin{frame}
\frametitle{Topic 4}
...
\end{frame}
\section{Topic 5}
\begin{frame}
\frametitle{Topic 5}
...
\end{frame}
\section{Topic 6}
\begin{frame}
\frametitle{Topic 6}
...
\end{frame}
\section{Topic 7}
\begin{frame}
\frametitle{Topic 7}
...
\end{frame}
\section{Topic 8}
\begin{frame}
\frametitle{Topic 8}
...
\end{frame}
\section{The end}
\begin{frame}
\frametitle{The end}
End of file :-)
\end{frame}
\end{document}