Als Folge meinervorherige Fragezum Thema der Generierung eines Inhaltsverzeichnisses für jeden Unterabschnitt möchte ich die folgende Herausforderung ansprechen.
Erstellen Sie lokale und globale Inhaltsverzeichnisse, sodass in einer Zeile mit den Organisationseinheiten des Dokuments (Abschnitt, Unterabschnitt, Unterunterabschnitt) die Gesamtzahl der darin enthaltenen Absätze angegeben wird.
Dank und Bitte um Fehlerbehebung
Vielen Dank anAbonnierenfür seine ausführliche und kluge Antwort. Die kryptische Namensherausforderung in seiner Antwort hat viele Stunden meiner Zeit gekostet, aber ich habe es geschafft, Rahmen in Unterabsätze umzuwandeln (dafür gibt es einen guten Grund, da das Dokument Absätze enthalten kann, die keine Rahmen sind). Allerdings konnte ich nicht die vollständigen Inhaltsverzeichnisse erstellen, wie ich sie wollte.
Ich habe das Problem bei der Verwendung auf den Fall eingegrenzt, in dem einige der Inhaltsverzeichnisse leer sind.
Hier ist ein MWE nach dem Vorbild von jfbuAbonnierenarbeiten.
\documentclass{article}
\usepackage{beamerarticle}
\usepackage{etoc}
\usepackage{etoc}
% Override action when frame title is encountered:
\setbeamertemplate{frametitle}{\relax
% Similar to \hrule but above the base line
\def\Hrulefill{\leavevmode\leaders\hrule height 0.8ex depth -0.6ex\hfill\kern0pt}
\def\frameTitle{\relax
\itshape
\small
\bfseries
\protect\(\cdot\protect\)\insertframenumber.~\insertframetitle
\space
\footnotesize \mdseries
\insertframesubtitle
}%
\typeout{after defs}\relax
\Hrulefill
\typeout{after hrule}\relax
\fbox{\begin{minipage}{0.7\linewidth}\frameTitle\end{minipage}}%\relax
\typeout{after title}\relax
\addcontentsline{toc}{subparagraph}{\frameTitle}\relax
\Hrulefill
\typeout{after hrulefill}\relax
\par\noindent
\typeout{after par no indent}\relax
}
\newcounter{parinsection}
\newcounter{parinsubsection}
\newcounter{parinsubsubsection}
\makeatletter % cf etoc manual "another compatibility mode"
\let\orig@lsection\l@section
\let\orig@lsubsection\l@subsection
\let\orig@lsubsubsection\l@subsubsection
%
\etocsetstyle{section}
{}
{\typeout{prefix in section}}
{\typeout{item is section}\orig@lsection {\numberline{\etocnumber}\etocname{}
(\Yossi frames)}{\etocpage}}
{}
\etocsetstyle{subsection}
{\typeout{begin of SUBSECTION}}
{\typeout{prefix in subsection}}
{\typeout{item in susection}\orig@lsubsection {\numberline{\etocnumber}\etocname{}
\typeout{before frames count}(\Yossi frames)}{\etocpage}}
{\typeout{end of SUBSECTION}}
\etocsetstyle{subsubsection}
{\typeout{Begin SUBSUBSECTION}}
{\typeout{prefix sub sub section}}
{\relax
\typeout{item in sub sub section}\relax
\orig@lsubsubsection
{\etocname{} (\Yossi frames)}{\etocpage}
}
{\typeout{End SUBSUBSECTION}}
\etocsetstyle {subparagraph}
{\typeout{BEGIN SUBPARAGRAPH}}
{}
{\stepcounter{parinsection}%
\stepcounter{parinsubsection}%
\stepcounter{parinsubsubsection}}
{\typeout{END SUBPARAGRAPH}\xdef\yossic{\yossic{\arabic{parinsubsubsection}}}}
\newcommand\yossia {}
\newcommand\yossib {}
\newcommand\yossic {}
\newcommand\Yossi {\expandafter\Yossi@ \yossia\@nil}
\def\Yossi@ #1#2\@nil {\gdef\yossia{#2}#1 }
\makeatother
\newcommand{\CountFramesFor}[1]{%
\begingroup % first pass
\etocsetstyle {section}
{}
{}%
{\setcounter{parinsection}{0}}
{}%
\etocsetstyle {subsection}
{\xdef\yossib{}}
{}
{\setcounter{parinsubsection}{0}}
{\xdef\yossia{\yossia{\arabic{parinsection}}\yossib}}%
\etocsetstyle {subsubsection}
{\xdef\yossic{}}
{}
{\setcounter{parinsubsubsection}{0}}
{\xdef\yossib{\yossib{\arabic{parinsubsection}}\yossic}}%
\gdef\yossia{}\gdef\yossib{}\gdef\yossic{}%
\etocsettocstyle {}{}%
\etocsetnexttocdepth {subparagraph}%
#1%
\endgroup
}%
\newcommand{\GlobalTOC}{%
\typeout{before counting}\relax
\CountFramesFor\tableofcontents
\typeout{after counting}\relax
\etocsetnexttocdepth{subsubsection}%
\typeout{after set next toc depth}\relax
\tableofcontents
\typeout{after toc}\relax
}
\newcommand{\SectionTOC}{%
\CountFramesFor\localtableofcontents
\let\yossia\yossib
\begingroup
\etocsetstyle{subsubsection}{}{}{\setbox0\hbox{\Yossi}}{}%
\etocsetnexttocdepth{subsubsection}%
\etocsettocstyle {\noindent Contents:\par}{}%
\localtableofcontents
\endgroup
}
\newcommand{\SubSectionTOC}{%
\CountFramesFor\localtableofcontents
\let\yossia\yossic
\etocsetnexttocdepth{subsubsection}%
\etocsettocstyle {\noindent Contents:\par}{}%
\localtableofcontents
}
\newcommand{\listOfFramesInSubSubSection}{%
\begingroup
\etocsetlevel {subparagraph}{2}%
\etocsetlevel {subsubsection}{1}%
\etocsetlevel {subsection}{6}%
\etocsetlevel {section}{6}%
\etocsetlevel {paragraph}{6}%
\etocsettocstyle {\noindent\emph{Frames:}}{}%
\etocsetnexttocdepth {subparagraph}%
\etocdefaultlines
\etocsetstyle{subsection}
{\begingroup}
{\footnotesize}
{\etocname~\space}%
{\endgroup}
\localtableofcontents
\endgroup
}
\newcommand{\listOfFramesInSubSection}{%
\begingroup
\etocsetlevel {subparagraph}{3}%
\etocsetlevel {subsubsection}{2}%
\etocsetlevel {subsection}{1}%
\etocsetlevel {subsection}{6}%
\etocsetlevel {section}{6}%
\etocsetlevel {paragraph}{6}%
\etocsettocstyle {\noindent\emph{Frames:}\par}{}%
\etocsetnexttocdepth {subparagraph}%
\etocdefaultlines
\localtableofcontents
\endgroup
}
\begin{document}
\etocsettocdepth {subparagraph}
\GlobalTOC
\section{My First Section}\SectionTOC
\begin{frame}{My First Frame} has a bit of contents \end{frame}
\subsection{Subsection [A] in My First Section}
\SubSectionTOC
\listOfFramesInSubSection
\begin{frame}{My 2nd Frame} has another bit of contents \end{frame}
\subsection{Sububsection [I] in subsection [A] in My First Section}
\listOfFramesInSubSubSection
\begin{frame}{My THIRD Frame} has one bit and another bit of contents in it \end{frame}
\end{document}
Antwort1
AKTUALISIEREN
Da geklärt wurde, dass Unterunterabschnitte keine Rahmen haben dürfen, dass Unterabschnitte keine Unterunterabschnitte haben dürfen, dass Abschnitte keine Unterabschnitte haben dürfen, stelle ich einen überarbeiteten Code bereit (siehe unten), der diese Dinge handhaben kann. Beachten Sie jedoch, dass wir keinen Unterunterabschnitt in einem Abschnitt ohne dazwischenliegenden Unterabschnitt möchten.
Hier ist eine Adaption derAntwort auf die verlinkte Frage, fügt es die Zählung der Absätze hinzu. Dies geschieht à laetoc, d. h. die Verwendung eines unsichtbaren Inhaltsverzeichnisses für diese Aufgabe.
Aktualisierung gemäß Kommentar, der genauer beschreibt, was beabsichtigt war. Es wird angenommen, dass sich zwischen einem Abschnitt und einem Unterabschnitt immer ein Unterabschnitt oder zwischen einem Unterabschnitt und einem Absatz ein Unterunterabschnitt befindet. Hier erstellen Rahmenumgebungen Absätze und es gibt keine anderen Absätze.
Die erste Antwort steht ganz unten. Das Codebeispiel für das Update besteht aus vier Seiten, von denen hier nur die ersten beiden angezeigt werden.
\documentclass{article}
\usepackage{beamerarticle}
\usepackage{etoc}
% Override action when frame title is encountered: (Code by Yossi Gil)
\setbeamertemplate{frametitle}{%
\paragraph{\insertframenumber.~\insertframetitle}\\
\noindent\emph{\insertframesubtitle}\par
}
\newcounter{parinsection}
\newcounter{parinsubsection}
\newcounter{parinsubsubsection}
\makeatletter % cf etoc manual "another compatibility mode"
\let\orig@lsection\l@section
\let\orig@lsubsection\l@subsection
\let\orig@lsubsubsection\l@subsubsection
%
\etocsetstyle{section}
{}
{}
{\orig@lsection {\numberline{\etocnumber}\etocname{}
(\Yossi frames)}{\etocpage}}
{}
\etocsetstyle{subsection}
{}
{}
{\orig@lsubsection {\numberline{\etocnumber}\etocname{}
(\Yossi frames)}{\etocpage}}
{}
\etocsetstyle{subsubsection}
{}
{}
{\orig@lsubsubsection {\numberline{\etocnumber}\etocname{}
(\Yossi frames)}{\etocpage}}
{}
\etocsetstyle {paragraph}
{}
{}
{\stepcounter{parinsection}%
\stepcounter{parinsubsection}%
\stepcounter{parinsubsubsection}}
{\xdef\yossic{\yossic{\arabic{parinsubsubsection}}}}
\newcommand\yossia {}
\newcommand\yossib {}
\newcommand\yossic {}
\newcommand\Yossi {\expandafter\Yossi@ \yossia\@nil}
\def\Yossi@ #1#2\@nil {\gdef\yossia{#2}#1 }
\makeatother
\newcommand{\CountFramesFor}[1]{%
\begingroup % first pass
\etocsetstyle {section}
{}
{}%
{\setcounter{parinsection}{0}}
{}%
\etocsetstyle {subsection}
{\xdef\yossib{}}
{}
{\setcounter{parinsubsection}{0}}
{\xdef\yossia{\yossia{\arabic{parinsection}}\yossib}}%
\etocsetstyle {subsubsection}
{\xdef\yossic{}}
{}
{\setcounter{parinsubsubsection}{0}}
{\xdef\yossib{\yossib{\arabic{parinsubsection}}\yossic}}%
\gdef\yossia{}\gdef\yossib{}\gdef\yossic{}%
\etocsettocstyle {}{}%
\etocsetnexttocdepth {paragraph}%
#1%
\endgroup
}%
\newcommand{\GlobalToc}{%
\CountFramesFor\tableofcontents
% to suppress subsubsections:
%\begingroup
% \etocsetstyle{subsubsection}{}{}{\setbox0\hbox{\Yossi}}{}%
% to also suppress subsections
% \etocsetstyle{subsection}{}{}{\setbox0\hbox{\Yossi}}{}%
\etocsetnexttocdepth{subsubsection}%
\tableofcontents
%\endgroup
}
\newcommand{\SectionToc}{%
\CountFramesFor\localtableofcontents
\let\yossia\yossib
% to suppress subsubsections:
\begingroup
\etocsetstyle{subsubsection}{}{}{\setbox0\hbox{\Yossi}}{}%
\etocsetnexttocdepth{subsubsection}%
\etocsettocstyle {\noindent Contents:\par}{}%
\localtableofcontents
\endgroup
}
\newcommand{\SubsectionToc}{%
\CountFramesFor\localtableofcontents
\let\yossia\yossic
\etocsetnexttocdepth{subsubsection}%
\etocsettocstyle {\noindent Contents:\par}{}%
\localtableofcontents
}
\newcommand{\Listofframes}{%
\begingroup
\etocsetlevel {paragraph}{2}%
\etocsetlevel {subsubsection}{1}%
\etocsetlevel {subsection}{6}%
\etocsetlevel {section}{6}%
\etocsettocstyle {\noindent List of frames in this subsubsection\par}{}%
%\etocsetnexttocdepth {paragraph}%
\etocdefaultlines
\localtableofcontents
\endgroup
}
\begin{document}
\etocsettocdepth {paragraph}
\GlobalToc
\section{Some frames}
\SectionToc
\subsection {first subsection}
\SubsectionToc
\subsubsection{first subsubsection}
\Listofframes
\begin{frame}\frametitle{AHK}
Ah Ah
\end{frame}
\begin{frame}\frametitle{AHJ}
Oh Oh
\end{frame}
\begin{frame}\frametitle{AHM}
Ah Ah
\end{frame}
\subsubsection{second subsubsection}
\Listofframes
\begin{frame}\frametitle{AHN}
Oh Oh
\end{frame}
\subsection {second subsection}
\SubsectionToc
\subsubsection {subsubsection}
\Listofframes
\begin{frame}\frametitle{HBZ}
Ah Ah
\end{frame}
\subsubsection {subsubsection}
\Listofframes
\begin{frame}\frametitle{HBW}
Oh Oh
\end{frame}
\begin{frame}\frametitle{HBT}
Oh Oh
\end{frame}
\begin{frame}\frametitle{HBR}
Oh Oh
\end{frame}
\section{More frames}
\SectionToc
\subsection {third subsection}
\SubsectionToc
\subsubsection {subsubsection}
\Listofframes
\begin{frame}\frametitle{BHK}
Ah Ah
\end{frame}
\begin{frame}\frametitle{BHJ}
Oh Oh
\end{frame}
\begin{frame}\frametitle{BBZ}
Ah Ah
\end{frame}
\subsubsection {subsubsection}
\Listofframes
\begin{frame}\frametitle{BBW}
Oh Oh
\end{frame}
\begin{frame}\frametitle{BBU}
Oh Oh
\end{frame}
\subsection {fourth subsection}
\SubsectionToc
\subsubsection {subsubsection}
\Listofframes
\begin{frame}\frametitle{YHK}
Ah Ah
\end{frame}
\subsubsection {subsubsection}
\Listofframes
\begin{frame}\frametitle{YHJ}
Oh Oh
\end{frame}
\begin{frame}\frametitle{YYZ}
Ah Ah
\end{frame}
\begin{frame}\frametitle{YYW}
Oh Oh
\end{frame}
\end{document}
Erste Antwort:
\documentclass{article}
\usepackage{beamerarticle}
\usepackage{etoc}
% section=1, subsection=2, subsubsection=3
\etocsettocdepth {all}
%Override action when frame title is encountered: (Code by Yossi Gil)
\setbeamertemplate{frametitle}{%
\paragraph{\insertframenumber.~\insertframetitle}\\
\noindent\emph{\insertframesubtitle}\par
}
\newcounter {mycountofframes}
\newcommand {\listofsubsectionswithframecount}{\begingroup
%%%%% count frames by executing an invisible table of contents
\setcounter {mycountofframes}{0}%
\etocsetnexttocdepth {paragraph}%
\etocsetstyle {subsection}{}{}{}{}%
\etocsetstyle {paragraph}{}{\stepcounter{mycountofframes}}{}{}%
\etocsettocstyle {}{}%
\localtableofcontents % invisible, just to count paragraphs (=frames)
%%%%%
%%%%% now list subsections
\etocsettocstyle
{\noindent Dear reader, there are in total \arabic{mycountofframes}
frames in this section.\par\medskip }
{}%
\etocsetnexttocdepth {subsection}%
\etocstandardlines % undoes the \etocsetstyle above,
% switches to class default for TOC lines
\localtableofcontents % Print the table of contents
\endgroup
}
\newcommand {\listofframesinthissubsection}{\begingroup
%%%%% count frames by executing an invisible table of contents
\setcounter {mycountofframes}{0}%
\etocsetnexttocdepth {paragraph}%
\etocsetstyle {paragraph}{}{\stepcounter{mycountofframes}}{}{}%
\etocnopar % says not to do \par, but doesn't matter here
\etocsettocstyle {}{}%
\localtableofcontents % just to count paragraphs (=frames)
%%%%%
%%%%% now list the paragraphs
\etocsetlevel {subsection}{1}% artificially pretending subsections are
% sections one up the level
\etocsetlevel {paragraph}{2}% pretending paragraphs are subsections
\etocdefaultlines % undoes the \etocsetstyle above, switches to package
% default for the TOC lines
\etocsettocstyle {\noindent The \arabic{mycountofframes}
frames in this subsection:\par\smallskip}{}%
\etocsetnexttocdepth {paragraph}%
\localtableofcontents
\endgroup % undo all our mess
}
\begin{document}
\etocsetnexttocdepth {subsection}
\tableofcontents
\section{Some frames}
\listofsubsectionswithframecount
\subsection {first subsection}
\listofframesinthissubsection
\begin{frame}\frametitle{AHK}
Ah Ah
\end{frame}
\begin{frame}\frametitle{AHJ}
Oh Oh
\end{frame}
\begin{frame}\frametitle{AHM}
Ah Ah
\end{frame}
\begin{frame}\frametitle{AHN}
Oh Oh
\end{frame}
\subsection {second subsection}
\listofframesinthissubsection
\begin{frame}\frametitle{HBZ}
Ah Ah
\end{frame}
\begin{frame}\frametitle{HBW}
Oh Oh
\end{frame}
\begin{frame}\frametitle{HBT}
Oh Oh
\end{frame}
\section{More frames}
\listofsubsectionswithframecount
\subsection {third subsection}
\listofframesinthissubsection
\begin{frame}\frametitle{BHK}
Ah Ah
\end{frame}
\begin{frame}\frametitle{BHJ}
Oh Oh
\end{frame}
\subsection {fourth subsection}
\listofframesinthissubsection
\begin{frame}\frametitle{BBZ}
Ah Ah
\end{frame}
\begin{frame}\frametitle{BBW}
Oh Oh
\end{frame}
\begin{frame}\frametitle{BBU}
Oh Oh
\end{frame}
\end{document}
Aktualisierter Code zum Verarbeiten fehlender Frames
\documentclass{article}
\usepackage{beamerarticle}
\usepackage{etoc}
% % Override action when frame title is encountered: (Code by Yossi Gil)
\def\Hrulefill
{\leavevmode\leaders\hrule height 0.8ex depth -0.6ex\hfill\kern0pt }
\def\frameTitle{%
\itshape
\small
\bfseries
$\cdot$\insertframenumber.~\insertframetitle
\space
\footnotesize \mdseries
\insertframesubtitle
}%
\setbeamertemplate{frametitle}{\relax
% Similar to \hrule but above the base line
\noindent\Hrulefill
\addcontentsline{toc}{paragraph}{\frameTitle}%
\fbox{\begin{minipage}{0.7\linewidth}\frameTitle\end{minipage}}%
\Hrulefill\par
}
\newcounter{parinsection}
\newcounter{parinsubsection}
\newcounter{parinsubsubsection}
\makeatletter % cf etoc manual "another compatibility mode"
\let\orig@lsection\l@section
\let\orig@lsubsection\l@subsection
\let\orig@lsubsubsection\l@subsubsection
%
\etocsetstyle{section}
{}
{}
{\orig@lsection {\numberline{\etocnumber}\etocname{}
(\Yossi)}{\etocpage}}
{}
\etocsetstyle{subsection}
{}
{}
{\orig@lsubsection {\numberline{\etocnumber}\etocname{}
(\Yossi)}{\etocpage}}
{}
\etocsetstyle{subsubsection}
{}
{}
{\orig@lsubsubsection {\numberline{\etocnumber}\etocname{}
(\Yossi)}{\etocpage}}
{}
\etocsetstyle {paragraph}
{}
{}
{\stepcounter{parinsection}%
\stepcounter{parinsubsection}%
\stepcounter{parinsubsubsection}}
{}
\newcommand\yossia {}
\newcommand\yossib {}
\newcommand\yossic {}
\newcommand\Yossi {\expandafter\Yossi@ \yossia\@nil}
\def\Yossi@ #1#2\@nil {\gdef\yossia{#2}\begingroup\color{blue}%
\ifcase #1
no frame%
\or
1 frame%
\else #1 frames%
\fi\endgroup}%
\makeatother
\newcommand{\CountFramesFor}[1]{%
\begingroup % first pass
\etocsetstyle {section}
{\def\yossia{}\def\yossib{}%
\setcounter{parinsection}{0}%
\etocskipfirstprefix
}
{\edef\yossia{\yossia% earlier sec, sub and subsub
\arabic{parinsection}% add previous
% section
\yossib % and all sub and subsub therein
}%
}
{\setcounter{parinsection}{0}\def\yossib{}}
{\edef\yossia{\yossia% earlier sec, sub and subsub
\arabic{parinsection}% add last
% section
\yossib % and all sub and subsub therein
}%
}%
%
\etocsetstyle {subsection}
{\def\yossib{}\def\yossic{}%
\setcounter{parinsubsection}{0}%
\etocskipfirstprefix
}
{\edef\yossib{\yossib% previous sub and subsub
\arabic{parinsubsection}% add previous
% subsection
\yossic % and all subsub therein
}%
}
{\setcounter{parinsubsection}{0}\def\yossic{}}
{\edef\yossib{\yossib% previous sub and subsub
\arabic{parinsubsection}% add last
% subsection
\yossic % and all subsub therein
}%
}%
%
\etocsetstyle {subsubsection}
{\def\yossic{}%
\setcounter{parinsubsubsection}{0}%
\etocskipfirstprefix
}
{\edef\yossic{\yossic\arabic{parinsubsubsection}}}%
{\setcounter{parinsubsubsection}{0}}
{\edef\yossic{\yossic\arabic{parinsubsubsection}}}%
%
\etocsettocstyle {}{\global\let\yossia\yossia
\global\let\yossib\yossib
\global\let\yossic\yossic}%
\etocsetnexttocdepth {paragraph}%
#1%
\endgroup
}%
\newcommand{\GlobalToc}{%
\CountFramesFor\tableofcontents
% to suppress subsubsections:
%\begingroup
% \etocsetstyle{subsubsection}{}{}{\setbox0\hbox{\Yossi}}{}%
% to also suppress subsections
% \etocsetstyle{subsection}{}{}{\setbox0\hbox{\Yossi}}{}%
\etocsetnexttocdepth{subsubsection}%
\tableofcontents
%\endgroup
}
\newcommand{\SectionToc}{%
\CountFramesFor\localtableofcontents
\let\yossia\yossib
% this is to suppress listing subsubsections in the Section TOC:
\begingroup
\etocsetstyle{subsubsection}{}{}{\setbox0\hbox{\Yossi}}{}%
\etocsetnexttocdepth{subsubsection}%
\etocsettocstyle {\noindent Contents:\par}{}%
\localtableofcontents
\endgroup
}
\newcommand{\SubsectionToc}{%
\CountFramesFor\localtableofcontents
\let\yossia\yossic
\etocsetnexttocdepth{subsubsection}%
\etocsettocstyle {\noindent Contents:\par}{}%
\localtableofcontents
}
\newcommand{\Listofframes}{%
\begingroup
\etocsetlevel {paragraph}{2}%
\etocsetlevel {subsubsection}{1}%
\etocsetlevel {subsection}{6}%
\etocsetlevel {section}{6}%
\etocsettocstyle {\noindent List of frames in this subsubsection\par}{}%
\etocdefaultlines
\localtableofcontents
\endgroup
}
\begin{document}
\etocsettocdepth {paragraph}
\GlobalToc
\section{Section A}
\SectionToc
\subsection {subsection}
\SubsectionToc
\subsubsection{subsubsection}
% \Listofframes % don't use \listofframes in a subsubsection
No frames here.
\subsubsection{subsubsection}
\Listofframes
\begin{frame}\frametitle{AHN}
Oh Oh
\end{frame}
\begin{frame}\frametitle{BHN}
Oh Oh
\end{frame}
\subsection {subsection with no subsubsection}
There are no subsubsections here.
\section{Section B}
\SectionToc
\subsection {subsection}
\SubsectionToc
\subsubsection {subsubsection}
\Listofframes
\begin{frame}\frametitle{BHK}
Ah Ah
\end{frame}
\begin{frame}\frametitle{BHJ}
Oh Oh
\end{frame}
\begin{frame}\frametitle{BBZ}
Ah Ah
\end{frame}
\subsubsection {subsubsection}
\Listofframes
\begin{frame}\frametitle{BBW}
Oh Oh
\end{frame}
\begin{frame}\frametitle{BBU}
Oh Oh
\end{frame}
\subsubsection {subsubsection}
No frames here.
\subsection {subsection with no subsubsection}
Nothing here.
\subsection {subsection}
\SubsectionToc
\subsubsection {subsubsection}
\Listofframes
\begin{frame}\frametitle{YHK}
Ah Ah
\end{frame}
\subsubsection {subsubsection}
No frames here.
\subsubsection {subsubsection}
\Listofframes
\begin{frame}\frametitle{YHJ}
Oh Oh
\end{frame}
\begin{frame}\frametitle{YYZ}
Ah Ah
\end{frame}
\begin{frame}\frametitle{YYW}
Oh Oh
\end{frame}
\subsection {subsection}
\SubsectionToc
\subsubsection {subsubsection }
No frame.
\subsubsection {subsubsection }
No frame.
\end{document}