在 Beamer 演示文稿中修改 AtBeginSection

在 Beamer 演示文稿中修改 AtBeginSection

我对 TeX 还很陌生,因为我以前只用非常基本的命令来编码。但为了提高 beamer 的性能,我找到了一种方法,可以在每个章节的开头显示当前章节的标题和该章节的摘要。

我创建了以下代码:

\AtBeginSection{
  \begin{frame}
  \vfill
  \centering
  \begin{beamercolorbox}[sep=8pt,center,shadow=true,rounded=true]{title}
    \usebeamerfont{title}\insertsectionhead\par%
  \end{beamercolorbox}
  \vfill  
  \tableofcontents[currentsection]
  \end{frame}
}

到目前为止,它对我来说效果很好,但我有几个问题:

  • 具体是如何\vfill工作的?我尝试移除它们,但差别相当微妙……
  • 这是什么\par?删除它不会改变任何东西...
  • 我怎样才能只显示当前部分的子部分?由于我的投影仪有点长,我实际上无法将所有部分和子部分放在一帧上,但从中删除所有子部分会让它看起来很尴尬……
  • 有没有什么 LaTeX 课程可以推荐给我?

提前感谢任何帮助/提示!

由于我不是母语人士,我可能犯了一些错误。请原谅我... :|

答案1

  • \vfill 究竟是如何工作的?我尝试删除它们,但差别相当微妙......

vfill 是一个空间,它会根据页面上的空间大小而扩展。如果您已经无法将整个目录放入页面上,我认为可以安全地假设页面已经相当满,因此不会有太多未占用的空间。这意味着 vfill 没有太多空间可以扩展,因此您看不到很大的效果。此外,假设您使用的是默认的中心定位框架,beamer 会自动在框架的顶部和底部添加一个 vfil,因此您可能从 vfill 看到的任何效果都会分布在至少 3 个位置之间,这使得它更不明显。

  • \par 是什么?删除它不会改变任何东西...

\par是开始新段落的宏。您也可以留空一行。您需要在章节标题的末尾添加它,否则多行章节标题的行距可能会错误

我怎样才能只显示当前部分的子部分?由于我的投影仪有点长,我实际上无法将所有部分和子部分放在一帧上,但从中删除所有子部分会让它看起来很尴尬……

您可以使用 仅显示当前章节的目录\tableofcontents[sections=\thesection]。由于您已经在上方显示了当前章节标题,因此您可以使用 将其从目录中删除\setbeamertemplate{section in toc}{}

有没有什么 LaTeX 课程可以推荐给我?

如果你想学习 beamer,可以看看beamer 用户指南,它在开始时有一个相当详尽的教程

\documentclass{beamer}

\AtBeginSection{
\begingroup
  \setbeamertemplate{section in toc}{}
  \begin{frame}
  \vfill
%  \centering
  \begin{beamercolorbox}[sep=8pt,center,shadow=true,rounded=true]{title}
    \usebeamerfont{title}\insertsectionhead\par%
  \end{beamercolorbox}
  \vfill  
  \tableofcontents[sections=\thesection]
  \end{frame}
\endgroup
}


\begin{document}
    
\section{sec1}
\subsection{sub1}
\begin{frame}
    abc
\end{frame} 

\subsection{sub2}
\begin{frame}
    abc
\end{frame} 

\section{sec2}
\subsection{sub21}
\begin{frame}
    abc
\end{frame} 
    
\end{document}

相关内容