我的演示文稿目录相当长。Beamer 不会压缩目录条目之间的垂直间距,而是将最后一项放在输出底部!有没有办法控制这个间距?
我努力了
\begin{spacing}{0.9}
\tableofcontents
\end{spacing}
与setspace
包装一起,但我不认为这与 Beamer 兼容。
答案1
我不知道它为什么会起作用,但是如果你把它放在环境\tableofcontents
中minipage
,行之间的空间就会减少:
\begin{frame}
\frametitle{Outline}
\begin{minipage}{\textwidth}
\tableofcontents
\end{minipage}
\end{frame}
答案2
在写这个答案之前,我已经测试了 beamer,并且可以将 18 个部分(不包括子部分)插入到具有默认主题的框架中。所以我不确定上一个beamer
版本是否已经缩小了目录。无论如何,几年前我通过更改目录定义解决了这个问题。我所做的是从中提取下一行beamer/base/beamerbasetoc.sty
\def\sectionintoc{}
\def\beamer@sectionintoc#1#2#3#4#5{%
\ifnum\c@tocdepth>0%
\ifnum#4=\beamer@showpartnumber%
{
\beamer@saveanother%
\gdef\beamer@todo{}%
\beamer@slideinframe=#1\relax%
\expandafter\only\beamer@tocsections{\gdef\beamer@todo{%
\beamer@tempcount=#5\relax%
\advance\beamer@tempcount by\beamer@sectionadjust%
\edef\inserttocsectionnumber{\the\beamer@tempcount}%
\def\inserttocsection{\hyperlink{Navigation#3}{#2}}%
\beamer@tocifnothide{\ifnum\c@section=#1\beamer@toc@cs\else\beamer@toc@os\fi}%
{
\ifbeamer@pausesections\pause\fi%
\ifx\beamer@toc@ooss\beamer@hidetext
\vskip1.5em
\else
\vfill
\fi
{%
\hbox{\vbox{%
\def\beamer@breakhere{\\}%
\beamer@tocact{\ifnum\c@section=#1\beamer@toc@cs\else\beamer@toc@os\fi} {section in toc}}}%
\par%
}%
}%
}
}%
\beamer@restoreanother%
}
\beamer@todo%
\fi\fi%
}
并粘贴到我的主要演示文稿文件中\begin{document}
(不要忘记\makeatletter
和\makeatother
),然后更改\vskip1.5em
为\vskip0.5em
。就这样。
答案3
在 Beamer 3.10 版本中,目录使用时没有正确调整隐藏其他子部分。 还,挤不适用目录。收缩可以工作,但是字体太小并且字体之间的间距太大。
我发现的最佳解决方案是在相应的模板中定义尺寸,并在 \tableofcontents 之前指定较小的尺寸:
\defbeamertemplate*{section in toc}{my theme}
{\leavevmode\leftskip=0.5em\large{\usebeamercolor[fg]{titlelike}\inserttocsectionnumber.} \inserttocsection\par}
\defbeamertemplate*{subsection in toc}{my theme}
{\leavevmode\leftskip=2em\normalsize{\usebeamercolor[fg]{titlelike}\inserttocsectionnumber.\inserttocsubsectionnumber.} \inserttocsubsection\par}
\defbeamertemplate*{subsubsection in toc}{my theme}
{\leavevmode\leftskip=3.5em\normalsize\usebeamerfont{subsection in toc}\usebeamerfont{subsubsection in toc}\inserttocsubsubsection\par}
\begin{frame}{Outline}
\scriptsize
\tableofcontents[currentsection,hideothersubsections]
\end{frame}
答案4
在里面投影机手册,查看框架选项shrink
和squeeze
。
的解释shrink
有点长,所以我不会在这里粘贴它,但基本上,它会缩小框架上的文本,以便它实际上适合框架。该squeeze
选项会使文本中的所有垂直空间尽可能地挤压在一起。目前,这只会导致枚举或分项中的垂直空间减少到零。
我不确定它是否适用于 TOC,但你可以尝试一下。