在中beamer
,我猜测,项目之间的分隔空间tableofcontents
是可拉伸的:
您可以将其设置为一个固定值吗?例如,等于环境中使用的值itemize
。
部分答案:
\begin{minipage}{\textwidth}
\linespread{1.4}
\tableofcontents
\end{minipage}
有人可以修补此命令etoolbox
并使其仅在键入时执行吗\tableofcontents
?谢谢!
这是一个MWE
(带default
主题):
\documentclass{beamer}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage[english]{babel}
\usepackage{lipsum}
\title{Whatever Title Works}
\author{Remus M. Prunescu$^1$}
\institute{\tiny$^{1}$ Automation and Control Group, Department of Electrical Engineering, Technical University of Denmark (DTU)}
\begin{document}
\frame{
\maketitle
}
\frame{
\frametitle{Outline}
\begin{minipage}{\textwidth}
\linespread{1.4}
\tableofcontents
\end{minipage}
}
\section{Introduction}
\frame{
\frametitle{Random}
\lipsum[1]
}
\section{Project Description}
\frame{
\frametitle{Random}
\lipsum[2]
}
\end{document}
答案1
以下是在 中执行此操作的正确方法beamer
:内部命令\beamer@sectionintoc
(在 中定义beamerbasetoc.sty
)\vfill
在 ToC 中的每个部分条目后插入;修补命令以抑制\vfill
并使用垂直跳过\itemsep
(列表中项目之间的分隔)或任何其他适合您需要的长度:
\documentclass{beamer}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage[english]{babel}
\usepackage{etoolbox}
\usepackage{lipsum}
\makeatletter
\patchcmd{\beamer@sectionintoc}
{\vfill}
{\vskip\itemsep}
{}
{}
\makeatother
\title{Whatever Title Works}
\author{Remus M. Prunescu$^1$}
\institute{\tiny$^{1}$ Automation and Control Group, Department of Electrical Engineering, Technical University of Denmark (DTU)}
\begin{document}
\frame{
\frametitle{Outline}
\tableofcontents
}
\section{Introduction}
\frame{
\frametitle{Random}
\lipsum[1]
}
\section{Project Description}
\frame{
\frametitle{Random}
\lipsum[2]
}
\end{document}
答案2
这是一种修补的方法\tableofcontents
,可以将其内容嵌入到里面minipage
:
\pretocmd{\tableofcontents}{\begin{minipage}{\textwidth}}{}{}
\apptocmd{\tableofcontents}{\end{minipage}}{}{}
然后MWE
变成:
\documentclass{beamer}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage[english]{babel}
\usepackage{lipsum}
\usepackage{etoolbox}
\title{Whatever Title Works}
\author{Remus M. Prunescu$^1$}
\institute{\tiny$^{1}$ Automation and Control Group, Department of Electrical Engineering, Technical University of Denmark (DTU)}
\pretocmd{\tableofcontents}{\begin{minipage}{\textwidth}}{}{}
\apptocmd{\tableofcontents}{\end{minipage}}{}{}
\begin{document}
\frame{
\maketitle
}
\frame{
\frametitle{Outline}
\tableofcontents
}
\section{Introduction}
\frame{
\frametitle{Random}
\lipsum[1]
}
\section{Project Description}
\frame{
\frametitle{Random}
\lipsum[2]
}
\end{document}
答案3
您可以对第一帧使用以下解决方法,然后使用第二个参数来\fontsize
调整行之间的空间:
\frame{
\frametitle{Outline}
\bgroup
\vskip1\baselineskip
\fontsize{10}{18}\selectfont
\tableofcontents
\vskip0pt plus 1filll
\egroup
}
我已经采用了您的最初示例,不需要任何额外的包。