
Ich versuche, in meinem Beamer-Inhaltsverzeichnis jeden Abschnitt mit der entsprechenden Abschnittsnummer durch römische Großbuchstaben (I, II, ...) darzustellen. Das folgende MWE funktioniert im Großen und Ganzen, aber man sieht, dass die römischen Zahlen und damit auch die Abschnittstitel nicht ausgerichtet sind. Stattdessen sind die römischen Zahlen linksbündig ausgerichtet und der Abstand zwischen Abschnittsnummer und Titel ist fest, sodass Abschnitte je nach Breite der römischen Zahl nach rechts verschoben werden.
[Während der Erstellung dieses MWE wollte ich dem zweiten Abschnitt die Nummer 25 geben, um das Problem besser zu veranschaulichen, da XXV viel breiter ist als I (im Vergleich zu II). Obwohl der Abschnittszähler auf 24 gesetzt ist und thesection
der Frame-Titel korrekt auf 25 gesetzt ist, inserttocsectionnumber
erzeugt der Befehl im Inhaltsverzeichnis nur ein 2
statt 25
. Es wäre gut, wenn es auch für dieses Problem eine Lösung gäbe, d. h. das Inhaltsverzeichnis zu zwingen, tatsächliche Abschnittsnummern zu verwenden, anstatt das, was seine eigene Anzahl zu sein scheint.]
\documentclass[t, sansserif, onlymath, 10pt]{beamer}%\mode<handout>
\makeatletter
\defbeamertemplate{section in toc}{sections numbered roman}{%
\@Roman\inserttocsectionnumber.\ %
\inserttocsection\par}
\renewcommand*{\numberline}[1]{%
\hb@xt@\@tempdima{\hfil#1 }%
}
\makeatother
\begin{document}
\setbeamertemplate{section in toc}[sections numbered roman]
\setbeamerfont{section in toc}{size=\normalsize, family = \sffamily}
\setbeamerfont{section in toc}{shape = \normalfont}
\begin{frame}
\frametitle{Overview}
\tableofcontents[currentsection]
\end{frame}
\section{section one}
\begin{frame}
\frametitle{xxx1 \thesection}
\end{frame}
\setcounter{section}{24}
\section{section two/twenty-five}
\begin{frame}
\frametitle{xxx2 \thesection}
\end{frame}
\setbeamercovered{transparent}
\begin{frame}
\frametitle{{Agenda}}
\begin{enumerate}[I.]
\item <1|handout: 1> { Overview} \\
\vspace{0.9cm}
\item <0|handout: 1> {sec1}\\
\vspace{0.9cm}
\item <0|handout: 1> {sec 2: }\\
\end{enumerate}
\end{frame}
\end{document}
Das Einfügen der letzten Folie ergibt ungefähr das Ergebnis, das ich haben möchte (tatsächlich ist das mein Ziel, aber ich brauche Automatisierung). Sie können sehen, dass mit dem Paket „enumerate“ die „Aufzählungen“ rechtsbündig ausgerichtet sind, ebenso wie die Abschnittstitel.
In der Dokumentpräambel wird der Code
\defbeamertemplate{section in toc}{sections numbered roman}{%
\@Roman\inserttocsectionnumber.\ %
\inserttocsection\par}
dient dazu, römische Ziffern zu verwenden und Abschnittsnummern vor Abschnittsüberschriften einzufügen, und
\renewcommand*{\numberline}[1]{%
\hb@xt@\@tempdima{\hfil#1 }%
}
versucht, die Nummer rechtsbündig auszurichten, mit einem Befehl ausZahlen im Inhaltsverzeichnis rechtsbündig ausrichten , aber dabei geht es eher um die Ausrichtung zwischen Abschnitten und Unterabschnitten im Verhältnis zueinander, und der oben gekürzte Code funktioniert hier nicht.
Antwort1
Schnelle Problemumgehung:
Platzieren Sie die römische Zahl in einem Feld mit fester Breite
\documentclass[t, sansserif, onlymath, 10pt]{beamer}%\mode<handout>
\makeatletter
\defbeamertemplate{section in toc}{sections numbered roman}{%
\makebox[0.8cm]{\hfill\@Roman\inserttocsectionnumber.}\space%
\inserttocsection\par
}
\makeatother
\begin{document}
\setbeamertemplate{section in toc}[sections numbered roman]
\begin{frame}
\frametitle{Overview}
\tableofcontents
\end{frame}
\section{section one}
\begin{frame}
\frametitle{xxx1 \thesection}
\end{frame}
\makeatletter
\beamer@tocsectionnumber=24
\makeatother
\section{section two/twenty-five}
\begin{frame}
\frametitle{xxx2 \thesection}
\end{frame}
\end{document}