![减少 Beamer TOC 小节条目的间距](https://linux22.com/image/359886/%E5%87%8F%E5%B0%91%20Beamer%20TOC%20%E5%B0%8F%E8%8A%82%E6%9D%A1%E7%9B%AE%E7%9A%84%E9%97%B4%E8%B7%9D%20.png)
在减少目录间距(投影仪)答案是使用带有代码的 etoolbox
\patchcmd{\beamer@sectionintoc}{\vskip1.5em}{\vskip0.5em}{}{}.
这对我来说可以减少 Beamer TOC 中部分条目之间的空间,但对子部分条目之间的空间无效。修补 \beamer@subsectionintoc 是可行的方法吗?我试过了
\patchcmd{\beamer@subsectionintoc}{\vskip1.5em}{\vskip0.5em}{}{},
但这不起作用。
以下是 MWE samcarter 请求的:
\documentclass{beamer}
\usepackage[T1]{fontenc}
\setcounter{secnumdepth}{3}
\setcounter{tocdepth}{3}
\setlength{\parskip}{\smallskipamount}
\setlength{\parindent}{0pt}
\usepackage{amsmath}
\usepackage{mathspec}
\setmainfont{Times New Roman}
\setmathsfont(Digits,Latin)[Numbers={Lining,Proportional}]{Times New Roman}
\usetheme{CambridgeUS}
\usefonttheme{serif}
\setbeamerfont{quote}{shape=\upshape,family=\rmfamily}
\setbeamertemplate{itemize item}{\scriptsize\raise1.25pt\hbox{\donotcoloroutermaths$\blacktriangleright$}}
\setbeamertemplate{itemize subitem}{\tiny\raise1.5pt\hbox{\donotcoloroutermaths$\blacktriangleright$}}
\setbeamertemplate{itemize subsubitem}{\tiny\raise1.5pt\hbox{\donotcoloroutermaths$\blacktriangleright$}}
\setbeamertemplate{enumerate item}{\insertenumlabel.}
\setbeamertemplate{enumerate subitem}{\insertenumlabel.\insertsubenumlabel}
\setbeamertemplate{enumerate subsubitem}{\insertenumlabel.\insertsubenumlabel.\insertsubsubenumlabel}
\setbeamertemplate{enumerate mini template}{\insertenumlabel}
\AtBeginSection[]{\frame<beamer>{ \tableofcontents[currentsection,hideallsubsections]}}
\AtBeginSubsection[] {\frame<beamer>{ \tableofcontents[currentsection,currentsubsection] }}
\beamerdefaultoverlayspecification{<+->}
\usepackage{etoolbox}
\makeatletter
\patchcmd{\beamer@sectionintoc}{\vskip1.5em}{\vskip0.5em}{}{}
\patchcmd{\beamer@subsectionintoc}{\vskip1.5em}{\vskip0.5em}{}{}
\makeatother
\usepackage[style=philosophy-classic,natbib=true,backend=biber,shorthandintro=false]{biblatex}
\begin{document}
\title{A Title}
\author{An. Author}
\institute{Universitas Nulla}
\date{}
\maketitle
\begin{frame}{Outline}
\tableofcontents{}
\end{frame}
\section{A}
\subsection{A1}
\subsection{A2}
\subsection{A3}
\section{B}
\section{C}
\section{D}
\section{E}
\section{F}
\subsection{F1}
\subsection{F2}
\subsection{F3}
\section{G}
\section{H}
\end{document}
注释掉\setlength{\parskip}{\smallskipamount}
似乎会产生正确的结果。