Wenn ich Präsentationen halte, organisiere ich meine Frames normalerweise folgendermaßen:
- Ich erstelle einen Rahmen zu einem Thema, das im Titel gezeigt wird
- Innerhalb dieses Rahmens erstelle ich für jedes Unterthema eine Folie mit dem
only
Befehl - In jede Unterthema-Folie füge ich normalerweise eine animierte
itemize
Liste ein mit\item<N->
Um das Stellen von Fragen zu den einzelnen Folien zu vereinfachen, möchte ich die Folien folgendermaßen nummerieren:
- Die Zählung sollte für jeden Frame fortschreiten
- Jede Folie des Unterthemas des Rahmens sollte wie folgt nummeriert werden:
Nframe.Nslide
Wenn ich beispielsweise die dritte Folie des zweiten Frames anzeige, möchte ich, dass der Zähler anzeigt 2.3
.
Zur Nummerierung gibt es meines Wissens zwei Möglichkeiten:
- Framenummer (was bei mir nicht funktioniert, da der Zähler bei den Unterthemen-Folien nicht hochzählt)
- Seitenzahl (was in meinem Fall nicht funktioniert, da auch die Animationen in den
itemize
Listen mitgezählt werden).
Hier ist ein Beispiel mit dem gewünschten Verhalten, das in die Folie geschrieben ist:
\documentclass{beamer}
\usepackage[utf8]{inputenc}
\usetheme{Dresden}
\setbeamersize{text margin left=.3cm,text margin right=.5cm}
\setbeamertemplate{itemize items}[triangles]
\title[]{Title}
\author[]{Author}
\date{date}
\setbeamercovered{transparent}
\setbeamertemplate{page number in head/foot}[totalpagenumber]
%1 titolo
\begin{document}
\beamertemplatenavigationsymbolsempty
\begin{frame}
\maketitle
\end{frame}
\begin{frame}{Frame 1}
Frame 1, slide 1\\
Should be numbered as slide 1
\end{frame}
\begin{frame}{Frame 2}
\only<1-2>{
\framesubtitle{Frame 2, slide 1}
Should be numbered as slide 2.1
\begin{itemize}
\item <1-> Even if I use itemize
\item <2-> With animations
\end{itemize}
}
\only<3>{
\framesubtitle{Frame 2, slide 2}
Should be numbered as slide 2.2
}
\end{frame}
\begin{frame}{Frame 3}
Frame 3, slide 1\\
Should be numbered as slide 3
\end{frame}
\end{document}
Dank im Voraus :)
Antwort1
Im Hintergrund \item<>
wird derselbe Mechanismus wie verwendet \only<>
. Es wird kompliziert sein, sie zu entwirren.
Stattdessen könnten Sie Ihre Präsentation anders organisieren: Verwenden Sie für jedes Thema einen Abschnitt, Unterabschnitt oder Unterunterabschnitt, für jedes Unterthema einen Rahmen und innerhalb des Rahmens so viele Animationen, wie Sie möchten:
\documentclass{beamer}
\usepackage[utf8]{inputenc}
\usetheme{Dresden}
\setbeamersize{text margin left=.3cm,text margin right=.5cm}
\setbeamertemplate{itemize items}[triangles]
\title[]{Title}
\author[]{Author}
\date{date}
\setbeamercovered{transparent}
% total number of sections %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usepackage{totcount}
\newcounter{totalsection}
\regtotcounter{totalsection}
\AtBeginDocument{%
\pretocmd{\section}{\refstepcounter{totalsection}}{}{}%
}%
% fix for xcntperchap from https://topanswers.xyz/tex?q=1987#a2230
\ExplSyntaxOn % fix xcntperchap
\cs_set_eq:NN \c_zero \c_zero_int
\ExplSyntaxOff
\usepackage{xcntperchap}
\RegisterCounters{section}{framenumber}
\newcounter{FrameInSection}
\AtBeginEnvironment{frame}{
\ifnum\thesection>0
\setcounter{FrameInSection}{\ObtainTrackedValueExp[\thesection]{section}{framenumber}}
\fi
}
\setbeamertemplate{page number in head/foot}{%
\insertsectionnumber
\ifnum\theFrameInSection>1
.\insertframenumber
\fi
}
\AtBeginSection{\setcounter{framenumber}{0}}
\setbeamertemplate{headline}{}
%1 titolo
\begin{document}
\beamertemplatenavigationsymbolsempty
\begin{frame}[noframenumbering,plain]
\maketitle
\end{frame}
\section{Topic 1}
\begin{frame}
\frametitle{Topic 1}
Frame 1, slide 1
Should be numbered as slide 1
\end{frame}
\section{Topic 2}
\begin{frame}
\frametitle{Topic 2}
\framesubtitle{Frame 2, slide 1}
Should be numbered as slide 2.1
\begin{itemize}
\item <1-> Even if I use itemize
\item <2-> With animations
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Topic 2}
\framesubtitle{Topic 2, slide 2}
Should be numbered as slide 2.2
\end{frame}
\section{Topic 3}
\begin{frame}
\frametitle{Topic 3}
Frame 3, slide 1
Should be numbered as slide 3
\end{frame}
\end{document}