投影仪中目录项之间的分隔空间

投影仪中目录项之间的分隔空间

在中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
}

我已经采用了您的最初示例,不需要任何额外的包。

相关内容