Anzeige:
Ergebnis 1 bis 4 von 4

Thema: Beamer: TOC zweispaltig

  1. #1
    Registrierter Benutzer
    Registriert seit
    30.01.2006
    Beiträge
    405

    Question Beamer: TOC zweispaltig

    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
    Code:
    \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}
    MacTeX, BibDesk, Sublime Text 2

  2. #2
    Registrierter Benutzer
    Registriert seit
    09.07.2004
    Beiträge
    2.365
    Im anderen Zusammenhang hat mir folgender Code geholfen.

    Code:
    \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

  3. #3
    Registrierter Benutzer
    Registriert seit
    30.01.2006
    Beiträge
    405
    Besten Dank, edico! Kannst du aber bitte noch ein paar Worte zur Erläuterung verlieren?

    Gruß
    Christian
    MacTeX, BibDesk, Sublime Text 2

  4. #4
    Registrierter Benutzer
    Registriert seit
    09.07.2004
    Beiträge
    2.365
    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:

    Code:
    \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@toc@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\else\beamer@toc@os\fi}{section
    in toc}}}%
              \par%
             }%
           }%
         }
       }%
       \beamer@restoreanother%
       }
       \beamer@todo%
       \fi\fi%
    }
    \makeatother
    
    \AtBeginSection{\only{\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

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •