我对 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}