PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Beamer: TOC zweispaltig



trinix
29-12-2010, 20:25
Hallo,

in einem beamer Dokument setze ich mit multicol ein zweispaltiges TOC inkl. subsections.

Vergebe ich aber die toc-Option hideallsubsections, werden die betreffende Teile zwar ausgeblendet, zudem entstehen aber auch Lücken im toc und es nimmt dadurch zu viele Platz ein.

Das angegeben MB zeigt den Effekt.

Wie wäre es möglich, ein zweispaltiges TOC (ggf. habt ihr auch bessere Lösungen als multicol) zu erzeugen, dass trotz der Option hideallsubsections genauso "dicht" angeordnet bleibt wie ohne die Option?

MB


\documentclass[t=true,compress=true]{beamer}
\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{multicol}
\usepackage{setspace}

\begin{document}

\begin{frame}{Gliederung}
\begin{multicols}{2}
\tableofcontents[%
% hideallsubsections%
]
\end{multicols}
\end{frame}

\section{Erstens}
\begin{frame}{Erstens}
bla
\end{frame}

\section{Zweitens}
\subsection{Zweitens Eins}
\begin{frame}{Zweitens}
bla
\end{frame}
\subsection{Zweitens Zwei}
\begin{frame}{Zweitens}
bla
\end{frame}

\section{Drittens}
\subsection{Drittens Eins}
\begin{frame}{Drittens}
bla
\end{frame}

\section{Viertens}
\begin{frame}{Viertens}
bla
\end{frame}

\end{document}

edico
30-12-2010, 12:31
Im anderen Zusammenhang hat mir folgender Code geholfen.



\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%
\edef\inserttocsectionnumber{\the\beamer@tempcount }%
\def\inserttocsection{\hyperlink{Navigation#3}{#2} }%
\beamer@tocact{\ifnum\c@section=#1\beamer@toc@cs%
\else%
\beamer@toc@os\fi}{section in toc}}}%
\par%
\beamer@restoreanother%
}
\beamer@todo%
\fi\fi%
}
\makeatother


edico

trinix
30-12-2010, 12:39
Besten Dank, edico! Kannst du aber bitte noch ein paar Worte zur Erläuterung verlieren?

Gruß
Christian

edico
30-12-2010, 17:35
Beamer lädt eine Vielzahl styles, u.a. beamerbasetoc.sty, das `Table of Contents Format' bestimmt.
Ab Zeile 82ff wird auch der Abstand in `section' definiert.

Ich habe nichts anderes gemacht, als den Code zusammengestrichen und insbesondere den vskip1.5em command rausgemommen. Voila!


Anwendung fand bei mir eine `Variante', die neben der Gliederung sog. `Lokate Übersichten' einband. Das sah dann so aus:



\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%
\edef\inserttocsectionnumber{\the\beamer@tempcount }%
\def\inserttocsection{\hyperlink{Navigation#3}{#2} }%

\beamer@tocifnothide{\ifnum\c@section=#1\beamer@to c@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\e lse\beamer@toc@os\fi}{section
in toc}}}%
\par%
}%
}%
}
}%
\beamer@restoreanother%
}
\beamer@todo%
\fi\fi%
}
\makeatother

\AtBeginSection{\only<beamer>{\frame{\frametitle{Lokale Übersicht}
\tableofcontents[sectionstyle=show/hide,subsectionstyle=show/show/hide
]}}}


Wenn du dieses snippet stattdessen einbindest, erhälst du je section eine Übersicht ... kann ja mal (insbesondere bei tiefer strukturierten Vorträgen) förderlich für den Gesamtüber(durch)blick des Zuhörers sein.

edico