Ich hab folgende Grundstruktur einer beamer Präsentation vorgegeben:

Open in Online-Editor
\documentclass[12pt]{beamer}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}

\begin{document}

\section{Thema A}

\begin{frame}
  \frametitle{Gesamtübersicht zum Thema A}
  \tableofcontents
\end{frame}

\subsection{Unterthema 1}
\begin{frame}
  \frametitle{Übersicht zu Unterthema 1}
  \tableofcontents[subsectionstyle=show/shaded]
\end{frame}
\begin{frame}
  \frametitle{Inhalt1}
  Inhalt1
\end{frame}
\begin{frame}
  \frametitle{Inhalt2}
  Inhalt2
\end{frame}

\subsection{Unterthema 2}
\begin{frame}
  \frametitle{Übersicht zu Unterthema 2}
  \tableofcontents[subsectionstyle=show/shaded]
\end{frame}
\begin{frame}
  \frametitle{Inhalt1}
  Inhalt1
\end{frame}
\begin{frame}
  \frametitle{Inhalt2}
  Inhalt2
\end{frame}

\subsection{Unterthema 3}
\begin{frame}
  \frametitle{Übersicht zu Unterthema 3}
  \tableofcontents[subsectionstyle=show/shaded]
\end{frame}
\begin{frame}
  \frametitle{Inhalt1}
  Inhalt1
\end{frame}
\begin{frame}
  \frametitle{Inhalt2}
  Inhalt2
\end{frame}

\end{document}

In den Übersichtsseiten zu den einzelnen Unterthemen 1,2 und 3 ist im Inhaltsverzeichnis jeweils das aktuelle Unterthema sichtbar, die anderen sind schattiert.

Nun soll zusätzlich hinter dem aktuellen Unterthema in der \tableofcontents weitere Information eingefügt werden, z.B. so:

Unterthema 1 [ausgegraut]

Unterthema 2 : siehe Buch S. 95ff

Unterthema 3 [ausgegraut]

Der Text, hier z.B. hinter Unterthema 2, soll änderbar sein. Ich dachte an ein Makro in der Art \additionalinfo, dass ich vor \tableofcontents schreibe und die jeweilige Information übergebe oder sie Sache leer lasse, wenn ich nichts zusätzliches brauche.

Ich weiß nicht, ob und wie man sowas realisieren kann, ich stell es mir mit obigem Codebeispiel in etwa so vor: (Achtung, ist nicht übersetzbar!)

Open in Online-Editor
\documentclass[12pt]{beamer}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}

\begin{document}

\section{Thema A}

\begin{frame}
  \frametitle{Gesamtübersicht zum Thema A}
  \tableofcontents
\end{frame}

\subsection{Unterthema 1}
\begin{frame}
  \frametitle{Übersicht zu Unterthema 1}
  \additionalinfo{siehe Buch S. 8 und Paper XYZ}
  \tableofcontents[subsectionstyle=show/shaded]
\end{frame}
\begin{frame}
  \frametitle{Inhalt1}
  Inhalt1
\end{frame}
\begin{frame}
  \frametitle{Inhalt2}
  Inhalt2
\end{frame}

\subsection{Unterthema 2}
\begin{frame}
  \frametitle{Übersicht zu Unterthema 2}
  \additionalinfo{siehe Buch S. 95ff}
  \tableofcontents[subsectionstyle=show/shaded]
\end{frame}
\begin{frame}
  \frametitle{Inhalt1}
  Inhalt1
\end{frame}
\begin{frame}
  \frametitle{Inhalt2}
  Inhalt2
\end{frame}

\subsection{Unterthema 3}
\begin{frame}
  \frametitle{Übersicht zu Unterthema 3}
  \additionalinfo{} % hier gibt es z.B. nichts weiter hinzuzufügen
  \tableofcontents[subsectionstyle=show/shaded]
\end{frame}
\begin{frame}
  \frametitle{Inhalt1}
  Inhalt1
\end{frame}
\begin{frame}
  \frametitle{Inhalt2}
  Inhalt2
\end{frame}

\end{document}

Lässt sich sowas machen?

gefragt 05 Mär '15, 17:46

tom75's gravatar image

tom75
2.2k187884
Akzeptiert-Rate: 57%

bearbeitet 05 Mär '15, 17:47


Lässt sich schon machen. Halbautomatisch ginge es beispielsweise so:

Open in Online-Editor
\documentclass[12pt]{beamer}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}

\makeatletter
\newcommand*{\currentadditionalinfo}{%
  \additionainfoof{\thesection.\thesubsection}%
}
\DeclareRobustCommand*{\additionainfoof}[1]{%
  \expandafter\ifx\csname additionalinfo@#1\endcsname\relax\else
    \expandafter\ifx\csname additionalinfo@#1\endcsname\@empty\else
      : \@nameuse{additionalinfo@#1}%
  \fi\fi
}
\newcommand*{\additionalinfo}[1]{%
  \@namedef{additionalinfo@\thesection.\thesubsection}{#1}%
}
\makeatother

\begin{document}

\section{Thema A}

\begin{frame}
  \frametitle{Gesamtübersicht zum Thema A}
  \tableofcontents
\end{frame}

\subsection{Unterthema 1\currentadditionalinfo}
\begin{frame}
  \frametitle{Übersicht zu Unterthema 1}
  \additionalinfo{siehe Buch S. 8 und Paper XYZ}
  \tableofcontents[subsectionstyle=show/shaded]
\end{frame}
\begin{frame}
  \frametitle{Inhalt1}
  Inhalt1
\end{frame}
\begin{frame}
  \frametitle{Inhalt2}
  Inhalt2
\end{frame}

\subsection{Unterthema 2\currentadditionalinfo}
\begin{frame}
  \frametitle{Übersicht zu Unterthema 2}
  \additionalinfo{siehe Buch S. 95ff}
  \tableofcontents[subsectionstyle=show/shaded]
\end{frame}
\begin{frame}
  \frametitle{Inhalt1}
  Inhalt1
\end{frame}
\begin{frame}
  \frametitle{Inhalt2}
  Inhalt2
\end{frame}

\subsection{Unterthema 3\currentadditionalinfo}
\begin{frame}
  \frametitle{Übersicht zu Unterthema 3}
  \additionalinfo{} % hier gibt es z.B. nichts weiter hinzuzufügen
  \tableofcontents[subsectionstyle=show/shaded]
\end{frame}
\begin{frame}
  \frametitle{Inhalt1}
  Inhalt1
\end{frame}
\begin{frame}
  \frametitle{Inhalt2}
  Inhalt2
\end{frame}

\end{document}

Zugegeben, man muss dazu auch die \subsection-Befehle ändern. Dafür muss man hier weder \beamer@subsectionintoc noch \tableofcontents (oder dessen Unterbefehle) patchen.

Will man unbedingt eine Lösung ohne Änderung der \subsection-Befehle, dann beispielsweise so:

Open in Online-Editor
\documentclass[12pt]{beamer}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage{refcount}% Wenn man die auskommentierte Zeile mit \getrefnumber verwenden will.

\makeatletter
\newcommand*{\additionalinfoof}[1]{%
  \expandafter\ifx\csname additionalinfo@#1\endcsname\relax\else
    \expandafter\ifx\csname additionalinfo@#1\endcsname\@empty\else
      : \@nameuse{additionalinfo@#1}%
  \fi\fi
}
\newcommand*{\additionalinfo}[2][\thesection.\thesubsection]{%
  \@namedef{additionalinfo@#1}{#2}%
}
\makeatother

\usepackage{xpatch}
\makeatletter
\xpatchcmd\beamer@subsectionintoc{#3}{#3\additionalinfoof{#1.#2}}{}{\FailED}
\makeatother

\begin{document}

\section{Thema A}

\begin{frame}
  \frametitle{Gesamtübersicht zum Thema A}
  \tableofcontents
\end{frame}

\subsection{Unterthema 1}\label{ut1}
\begin{frame}
  \frametitle{Übersicht zu Unterthema 1}
  \additionalinfo{siehe Buch S. 8 und Paper XYZ}
  \tableofcontents[subsectionstyle=show/shaded]
\end{frame}
\begin{frame}
  \frametitle{Inhalt1}
  Inhalt1
\end{frame}
\begin{frame}
  \frametitle{Inhalt2}
  Inhalt2
\end{frame}

\subsection{Unterthema 2}
\begin{frame}
  \frametitle{Übersicht zu Unterthema 2}
  \additionalinfo{siehe Buch S. 95ff}
  \tableofcontents[subsectionstyle=show/shaded]
\end{frame}
\begin{frame}
  \frametitle{Inhalt1}
  Inhalt1
\end{frame}
\begin{frame}
  \frametitle{Inhalt2}
  Inhalt2
\end{frame}

\subsection{Unterthema 3}
\begin{frame}
  \frametitle{Übersicht zu Unterthema 3}
  \additionalinfo{} % hier gibt es z.B. nichts weiter hinzuzufügen (kann man auch einfach weglassen)
  %\additionalinfo[1.2]{Blumenkohl}% für andere als das aktuelle Unterthema
  %\additionalinfo[\thesection.\getrefnumber{ut1}]{Hui!}% oder mit mehr Automatismus
  \tableofcontents[subsectionstyle=show/shaded]
\end{frame}
\begin{frame}
  \frametitle{Inhalt1}
  Inhalt1
\end{frame}
\begin{frame}
  \frametitle{Inhalt2}
  Inhalt2
\end{frame}

\end{document}

Bei der Lösung habe ich außerdem \additionalinfo mit einem optionalen Argument versehen, so dass man ggf. auch andere Einträge als den des aktuellen Unterverzeichnisses mit Zusatzinfos versehen kann.

Permanenter link

beantwortet 07 Mär '15, 13:46

saputello's gravatar image

saputello
11.1k154365
Akzeptiert-Rate: 51%

bearbeitet 08 Mär '15, 12:23

Das sieht gut aus, danke! Mir ist nur die Sache mit dem zusätlichen optionalen Argument nicht klar, wie man das verwendet.

(08 Mär '15, 09:08) tom75
1

@tom75: Ganz einfach wie in den auskommentierten Zeilen.

(08 Mär '15, 12:03) saputello

Ah ok, das gefällt mir sehr!

(08 Mär '15, 12:09) tom75

Achso: Die \additionalinfo-Definition mit dem optionalen Argument könnte man natürlich auch bei der ersten Lösung verwenden. Die hatte ich nur absichtlich möglichst einfach gehalten.

\@namedef und \@nameuse sind natürlich in der LaTeX-Kern-Dokumentation (source2e.pdf) zu finden.

(08 Mär '15, 12:21) saputello
Deine Antwort
Vorschau umschalten

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

Per RSS:

Antworten

Antworten und Kommentare

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs fügen Sie einfach zwei Leerzeichen an die Stelle an der die neue Linie sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Frage-Themen:

×138
×12

gestellte Frage: 05 Mär '15, 17:46

Frage wurde gesehen: 15,556 Mal

zuletzt geändert: 08 Mär '15, 12:26