> ---
>
> *Diese Antwort löst nur ein Teilproblem.*
>
> Eine vollständige Antwort findet sich unter der Frage [Wie kann ich unerwünschten Abstand im tableofcontents in beamer beseitigen? (Teil 2)](http://texwelt.de/wissen/fragen/18413)
>
> ---
Es ist tatsächlich richtig, dass der Check gefehlt hat. Ich habe ihn eingebaut und die Stelle markiert.
\documentclass{beamer}
\usetheme{AnnArbor}
\makeatletter
\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%
\ifnum\beamer@tempcount>0
\edef\inserttocsectionnumber{\the\beamer@tempcount}%
\else
\def\inserttocsectionnumber{}%
\fi%
\def\inserttocsection{\hyperlink{Navigation#3}{#2}}%
\beamer@tocifnothide{\ifnum\c@section=#1\beamer@toc@cs\else\beamer@toc@os\fi}%
{
\ifbeamer@pausesections\pause\fi%
\usebeamertemplate{toc section itemsep}%
{%
\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%
}
\long\def\beamer@subsectionintoc#1#2#3#4#5#6{%
\ifnum\c@tocdepth>1%
\ifnum#5=\beamer@showpartnumber%
{%
\beamer@saveanother%
\gdef\beamer@todo{}%
\beamer@slideinframe=#1\relax%
\expandafter\only\beamer@tocsections{\gdef\beamer@todo{%
\ifbeamer@pausesubsections\pause\fi%
\beamer@tempcount=#6%
\advance\beamer@tempcount by\beamer@sectionadjust%
\edef\inserttocsectionnumber{\the\beamer@tempcount}%
\def\inserttocsubsectionnumber{#2}%
\def\inserttocsubsection{\hyperlink{Navigation#4}{#3}}%
\beamer@tocifnothide{\ifnum\c@section=#1\beamer@toc@css\else\beamer@toc@oss\fi}%
{%
\usebeamertemplate{toc subsection itemsep}%
\def\beamer@breakhere{\\}%
\beamer@tocact{\ifnum\c@section=#1\ifnum\c@subsection=#2\beamer@toc@css\else\beamer@toc@oss\fi\else\beamer@toc@ooss\fi}
{subsection in toc}%
}%
}}%
\beamer@restoreanother%
}
\beamer@todo%
\fi\fi%
}
\long\def\beamer@subsubsectionintoc#1#2#3#4#5#6#7{%
\ifnum\c@tocdepth>2%
\ifnum#6=\beamer@showpartnumber%
{
\beamer@saveanother%
\gdef\beamer@todo{}%
\beamer@slideinframe=#1\relax%
\expandafter\only\beamer@tocsections{\gdef\beamer@todo{%
\ifbeamer@pausesubsections\pause\fi%
\beamer@tempcount=#7%
\advance\beamer@tempcount by\beamer@sectionadjust%
\edef\inserttocsectionnumber{\the\beamer@tempcount}%
\def\inserttocsubsectionnumber{#2}%
\def\inserttocsubsubsectionnumber{#3}%
\def\inserttocsubsubsection{\hyperlink{Navigation#5}{#4}}%
\beamer@tocifnothide{\ifnum\c@section=#1\beamer@toc@csss\else\beamer@toc@osss\fi}%
{%
% <<<<<
\beamer@tocact{\ifnum\c@section=#1\ifnum\c@subsection=#2\ifnum\c@subsubsection=#3\beamer@toc@csss\else\beamer@toc@osss\fi\else\beamer@toc@oosss\fi\else\beamer@toc@ooosss\fi}
{toc subsubsection itemsep}%
% =====
%\usebeamertemplate{toc subsubsection itemsep}
% >>>>>
\def\beamer@breakhere{\\}%
\beamer@tocact{\ifnum\c@section=#1\ifnum\c@subsection=#2\ifnum\c@subsubsection=#3\beamer@toc@csss\else\beamer@toc@osss\fi\else\beamer@toc@oosss\fi\else\beamer@toc@ooosss\fi}
{subsubsection in toc}%
}%
}}%
\beamer@restoreanother%
}
\beamer@todo%
\fi\fi%
}
\makeatother
\setbeamertemplate{toc section itemsep}{\vskip1.5\baselineskip}
\setbeamertemplate{toc subsection itemsep}{\vskip1\baselineskip}
\setbeamertemplate{toc subsubsection itemsep}{\vskip0.5\baselineskip}
\begin{document}
\begin{frame}
\tableofcontents[hideallsubsections]
\end{frame}
\section{A}
\begin{frame}
\tableofcontents[hideothersubsections,sectionstyle=hide]
\end{frame}
\subsection{A1}
\begin{frame}
\tableofcontents[subsectionstyle=show/shaded/hide,sectionstyle=hide]
\end{frame}
\subsubsection{A1a}
\begin{frame}
\end{frame}
\subsubsection{A1b}
\begin{frame}
\end{frame}
\subsection{A2}
\begin{frame}
\end{frame}
\subsection{A3}
\begin{frame}
\end{frame}
\section{B}
\begin{frame}
\end{frame}
\end{document}
![alt text][1]
[1]: http://texwelt.de/wissen/upfiles/test_150.pnghttp://texwelt.de/wissen/upfiles/test_150.png